📄 fft.c
字号:
#include <math.h>
#include <tms320.h>
#include <dsplib.h>
/*-------------------------------------*/
int ser0inrdcnt,ser0outwrcnt; /*Bsp0 Receive Buffer Read Pointer,Transmit Buffer Writer Pointer */
int ser0inwrcnt,ser0outrdcnt; /*Bsp0 Receive Buffer Writer Pointer,Transmit Buffer Read Pointer */
int ser0inbuf[40],ser0outbuf[40]; /*Bsp0 Receive Buffer And Transmit Buffer */
int ser0flag,int0flag,timeflag,hpirecflag; /*Define Some Global Variable */
extern int ad_samp_freq; /*To Decide The AIC Sample Frequency*/
/*-------------------------------------*/
DATA fftbuf[256];
#pragma DATA_SECTION(fftbuf,".dbuffer1024")
void main()
{
char fftcount = 0;
char fftnum;
char ffti;
DATA sqrtin[1],sqrtout[1];
ad_samp_freq = 1026;
c54_init();
ser0inwrcnt = 1 ;
ser0outrdcnt = 5 ;
ser0inrdcnt = 5 ;
ser0outwrcnt = 1;
ser0flag = 0;
for (;;){
if (ser0flag >= 1){
ser0inrdcnt = (ser0inrdcnt+1)%40;
ser0outwrcnt =(ser0outwrcnt+1)%40;
ser0outbuf[ser0outwrcnt] =ser0inbuf[ser0inrdcnt] ;
fftbuf[fftcount] = ser0inbuf[ser0inrdcnt] ;
ser0outbuf[ser0outwrcnt] = ser0inbuf[ser0inrdcnt] ;
fftcount = fftcount + 1 ;
if (fftcount == 256)
cbrev(fftbuf,fftbuf,fftnum/2);
if (fftnum == 32)
rfft(fftbuf,32,1);
if (fftnum == 64)
rfft(fftbuf,64,1);
if (fftnum == 128)
rfft(fftbuf,128,1);
for (ffti=0;ffti<fftnum/2;ffti++){
sqrtin[0]=fftbuf[2*ffti]*fftbuf[2*ffti] + fftbuf[2*ffti+1]*fftbuf[2*ffti+1];
sqrt_16(sqrtin,sqrtout,1);
fftbuf[ffti] = sqrtout[0];
}
fftcount = 0 ;
ser0flag = 0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -