基于DSP的FFT的实现 - 图文 下载本文

邵阳学院课程设计

致 谢

在这里,要感谢尊敬的李星亮老师,本设计是在他的精心指导和关怀下完成的。李老师在学术上给予我大力帮助和指导,为我创造良好的学习氛围,正是在这种环境下我才能够顺利完成本次设计。从李老师身上,我懂得了做事要严谨认真、脚踏实地、勤于动脑、勤于动手,这些在以后的工作和生活中将是我所要努力做到的。特此向李星亮老师致以最诚挚的谢意!

对我而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!

16

邵阳学院课程设计

附录

Cmd源文件代码: -f 0 -w -stack 500 -sysstack 500 -l rts55.lib MEMORY {

DARAM: o=0x100, l=0x7f00 VECT:o=0x8000, l=0x100 DARAM2:o=0x8100,l=0x7f00 SARAM: o=0x10000,l=0x30000 SDRAM:o=0x40000,l=0x3e0000 } SECTIONS {

.text: {}>DARAM .vectors: {}>VECT .trcinit:{}>DARAM .gblinit:{}>DARAM .frt:{}>DARAM .cinit:{}>DARAM .pinit:{}>DARAM .sysinit:{}>DARAM2 .far:{}>DARAM2 .const:{}>DARAM2 .switch:{}>DARAM2 .sysmem:{}>DARAM2 .cio:{}>DARAM2 .MEM$obj:{}>DARAM2

17

邵阳学院课程设计

.sysheap:{}>DARAM2 .sysstack:{}>DARAM2 .stack:{}>DARAM2 .input:{}>DARAM2 .fftcode:{}>DARAM2 } C文件源码: #include \#define sample_1 256 #define signal_1_f 60 #define signal_2_f 200 #define signal_sample_f 512 #define pi 3.1415926 int input[sample_1];

float fwaver[sample_1],fwavei[sample_1],w[sample_1]; float sin_tab[sample_1]; float cos_tab[sample_1]; void init_fft_tab(); void input_data();

void fft(float datar[sample_1],float datai[sample_1]); void main() { int i; init_fft_tab(); input_data();

for (i=0;i

fwaver[i]=input[i];

fwavei[i]=0.0f; w[i]=0.0f; }

18

邵阳学院课程设计

}

fft(fwaver,fwavei); while(1);

void init_fft_tab() { float wt1; float wt2; int i;

for (i=0;i

wt1=2*pi*i*signal_1_f; wt1=wt1/signal_sample_f; wt2=2*pi*i*signal_2_f; wt2=wt2/signal_sample_f;

input[i]=(cos(wt1)+cos(wt2))/2*32768; }

}

void input_data() { int i;

for(i=0;i

sin_tab[i]=sin(2*pi*i/sample_1); cos_tab[i]=cos(2*pi*i/sample_1); } } {

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

19

void fft(float datar[sample_1],float datai[sample_1])