查看: 993|回复: 0
打印 上一主题 下一主题

信号数据的FFT变换

[复制链接]
跳转到指定楼层
沙发
发表于 2015-4-23 20:35:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>
#include <absacc.h>
#include <stdio.h>
#include <math.h>
#define uint unsigned int
#define uchar unsigned char
uint x0,x1,x2,x3,x4,x5,x6;
int L,i,j,k,b,p;
uchar w[3];
uint TR,TIs,temp;

void FFT(int dataR[],int dataI[])
{
// 以下是数据掉头功能
for(i=0;i<128;i++)
{
//CHANGE();
}
for(i=0;i<128;i++)
{
dataR[i]=dataI[i]; dataI[i]=0;
}
// FFT算法
for(L=1;L<=7;L++)                                                 // 第一层循环
{
b=1; i=L-1;
while(i>0)
{
b=b*2; i--;
}
for(j=0;j<=b-1;j++)                                                 // 第二层循环
{
p=1; i=7-L;
while(i>0)                                       
{p=p*2; i--;}
p=p*j;
for(k=j;k<128;k=k+2*b)                                 // 第三层循环
{
FFT(dataR,dataI);
}
}
}
for(i=0;i<32;i++)                                                         // 32次以下的谐波分析
{
w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]);
w[i]=w[i]/64;
}
w[0]=w[0]/2;
}  


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表