用C语言编写FFT算法.doc

上传人:飞****9 文档编号:133805995 上传时间:2020-05-30 格式:DOC 页数:3 大小:62.50KB
返回 下载 相关 举报
用C语言编写FFT算法.doc_第1页
第1页 / 共3页
用C语言编写FFT算法.doc_第2页
第2页 / 共3页
用C语言编写FFT算法.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《用C语言编写FFT算法.doc》由会员分享,可在线阅读,更多相关《用C语言编写FFT算法.doc(3页珍藏版)》请在金锄头文库上搜索。

1、用C语言编写FFT算法用simulink建模的方法实现FFT的问题特别多,还不如手工编写,也不是很复杂。以下是512点的单边谱FFT算法,在TMS320C6713的DSP开发板上调试通过。顺便问一句,有人会编welch功率谱密度的C语言实现程序么?#include math.h#define PI 3.1415926#define SAMPLENUMBER 512void InitForFFT();void MakeWave();void FFT();int INPUTSAMPLENUMBER,DATASAMPLENUMBER;float fWaveRSAMPLENUMBER,fWaveISA

2、MPLENUMBER,wSAMPLENUMBER;float sin_tabSAMPLENUMBER,cos_tabSAMPLENUMBER;main()int i;InitForFFT();MakeWave();for ( i=0;ifWaveRi=INPUTi;fWaveIi=0.0f;wi=0.0f;FFT(fWaveR,fWaveI);for ( i=0;iDATAi=wi;while ( 1 ); / break pointvoid FFT(float dataRSAMPLENUMBER,float dataISAMPLENUMBER)int x0,x1,x2,x3,x4,x5,x6

3、,x7,x8,xx;int i,j,k,b,p,L;float TR,TI,temp;for ( i=0;ix0=x1=x2=x3=x4=x5=x6=x7=x8=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;x7=(i/128)&0x01;x8=(i/256)&0x01;xx=x0*256+x1*128+x2*64+x3*32+x4*16+x5*8+x6*4+x7*2+x8;dataIxx=dataRi;for ( i=0;idata

4、Ri=dataIi; dataIi=0;for ( L=1;L0 )b=b*2; i-;for ( j=0;j0 )p=p*2; i-;p=p*j;for ( k=j;k512;k=k+2*b )TR=dataRk; TI=dataIk; temp=dataRk+b;dataRk=dataRk+dataRk+b*cos_tabp+dataIk+b*sin_tabp;dataIk=dataIk-dataRk+b*sin_tabp+dataIk+b*cos_tabp;dataRk+b=TR-dataRk+b*cos_tabp-dataIk+b*sin_tabp;dataIk+b=TI+temp*sin_tabp-dataIk+b*cos_tabp;for ( i=0;iwi=sqrt(dataRi*dataRi+dataIi*dataIi);void InitForFFT()int i;for ( i=0;isin_tabi=sin(PI*2*i/SAMPLENUMBER);cos_tabi=cos(PI*2*i/SAMPLENUMBER);void MakeWave()int i;for ( i=0;iINPUTi=sin(PI*2*i/SAMPLENUMBER*30)*1024;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号