第一范文网 - 专业文章范例文档资料分享平台

DSP-快速傅立叶变换(FFT)算法实验

来源:用户分享 时间:2025/9/25 17:11:43 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

10.源代码(C语言)

#include \

#include \#include \#include

#define PI 3.1415926

#define SAMPLENUMBER 128

void InitForFFT(); void MakeWave();

int INPUT[SAMPLENUMBER],DATA[SAMPLENUMBER];

float fWaveR[SAMPLENUMBER],fWaveI[SAMPLENUMBER],w[SAMPLENUMBER]; float sin_tab[SAMPLENUMBER],cos_tab[SAMPLENUMBER]; main() {

int i;

InitForFFT();

MakeWave();

for ( i=0;i

}

{ }

fWaveR[i]=INPUT[i]; fWaveI[i]=0.0f; w[i]=0.0f;

FFT(fWaveR,fWaveI);

for ( i=0;i

// break point

DATA[i]=w[i];

void FFT(float dataR[SAMPLENUMBER],float dataI[SAMPLENUMBER]) {

int x0,x1,x2,x3,x4,x5,x6,xx; int i,j,k,b,p,L; float TR,TI,temp;

for ( i=0;i

x0=x1=x2=x3=x4=x5=x6=0; x0=i&0x01; x1=(i/2)&0x01; x2=(i/4)&0x01; x3=(i/8)&0x01;x4=(i/16)&0x01; x5=(i/32)&0x01; x6=(i/64)&0x01; xx=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6;

}

dataI[xx]=dataR[i];

for ( i=0;i

for ( L=1;L<=7;L++ ) { /* for(1) */

b=1; i=L-1; while ( i>0 ) {

b=b*2; i--; } /* b= 2^(L-1) */

for ( j=0;j<=b-1;j++ ) /* for (2) */ {

p=1; i=7-L;

while ( i>0 ) /* p=pow(2,7-L)*j; */ {

p=p*2; i--;

}

p=p*j;

for ( k=j;k<128;k=k+2*b ) /* for (3) */ { TR=dataR[k]; TI=dataI[k]; temp=dataR[k+b];

dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p]; dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p]; dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p];

dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*cos_tab[p];

} /* END for (3) */

} /* END for (2) */

} /* END for (1) */

for ( i=0;i

{

w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]);

}

} /* END FFT */

void InitForFFT() { int i;

for ( i=0;i

}

}

void MakeWave() { int i;

for ( i=0;i

}

}

(二)第二部分

1.程序参数说明

extern void InitC5402(void) extern void OpenMcBSP(void) extern void CloseMcBSP(void) extern void READAD50(void) extern void WRITEAD50(void) void kfft(pr,pi,n,k,fr,fi,l,il):

基2快速傅立叶变换子程序,n为变换点数,应满足2的整数次幂,k为幂次(正整数);

数组x :输入信号数组,数据存放于地址为3000H~307FH存储 器中,转为浮点型后,生成x数组,长度128;

数组mo:FFT变换输出数组,长度128,浮点型,整型后,写入存储器中。 2.子程序流程图:

初始化输入数组排序计算第一层中间值计算层数计算对应层步长计算计算各层中间结果N计算层数=0?Y计算结果输出

搜索更多关于: DSP-快速傅立叶变换(FFT)算法实验 的文档
DSP-快速傅立叶变换(FFT)算法实验.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9vfvy09ncw8az813iusa_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top