DSP_FFT实验报告_第1页
DSP_FFT实验报告_第2页
DSP_FFT实验报告_第3页
DSP_FFT实验报告_第4页
DSP_FFT实验报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP技术课程设计(FFT)作者姓名:钟 欣 专业名称:电子科学与技术指导教师:张 双 目录1、 实验结果31.1 正弦信号输入的结果 31.2 余弦信号输入的结果 4心得5参考文献6附件1 正弦信号程序7A1.1 正弦信号fft.c文件7A1.2 INRAM.cmd文件11附件2 余弦信号程序12A2.1 余弦信号fft.c文件12一、实验结果1.1正弦信号输入的结果1.2余弦信号输入的结果心得通过本次的DSP设计课程,我学会了在CCS软件平台上运用C语言编程来实现傅里叶运算。在课程中老师讲解了的基本原理,以及如何通过运用C语言编程来实现。实验过程中,通过对傅里叶变换的深入了解,以及老师对程序的讲解,我成功的实现了正弦和余弦的傅里叶变换运算,完成了实现要求。这次课程让我对傅里叶变换有了更加深入的了解。在使用CCS软件时,要注意加上rts.lib文件,避免出错; 还有就是func.h文件要放在工程文件夹里,不然要出错,还有就是int 和float之间的区分。我经过此次的学习后,无论是傅里叶变换的原理,还是DSP编程方面,都有了很大的提升。这对以后的课程学习提供了坚实的基础。我也从中获益良多。 参考文献1杨明广. C程序设计教材. 四川科学技术出版社, 2012.2邹彦. DSP原理及应用(修订版). 电子工业出版社, 2002.3吴京. 信号分析与处理(修订版). 电子工业出版社, 2014.附件1 正弦信号程序A1.1 正弦信号fft.c文件/*fft.c*/ include #include #includefunc.h #define PI 3.14159265358979323846#define SAMPLENUMBER 128void FFT();void InitForFFT();void MakeWave();float INPUTSAMPLENUMBER,DATASAMPLENUMBER;float fWaveRSAMPLENUMBER,fWaveISAMPLENUMBER,wSAMPLENUMBER; float sin_tabSAMPLENUMBER,cos_tabSAMPLENUMBER; main()int i;InitForFFT();MakeWave() ;for(i=0;iSAMPLENUMBER;i+ )fWaveRi=INPUTi; fWaveIi=0.0f;wi=0.0f; FFT(fWaveR,fWaveI); for(i=0;iSAMPLENUMBER;i+) DATAi=wi;while(1); void FFT(float dataRSAMPLENUMBER,float dataISAMPLENUMBER)int x0,x1,x2,x3,x4,x5,x6,xx;int i,j,k,b,p,L;float TR,TI,temp; for( i=0;iSAMPLENUMBER;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;dataIxx=dataRi;for( i=0;iSAMPLENUMBER;i+ )dataRi=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;k128;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;iSAMPLENUMBER/2;i+) wi=sqrt(dataRi*dataRi+dataIi*dataIi); void InitForFFT()int i;for(i=0;iSAMPLENUMBER;i+)sin_tabi=sin(PI*2*i/SAMPLENUMBER);cos_tabi=cos(PI*2*i/SAMPLENUMBER);void MakeWave()int i;for(i=0;i PROG1 PAGE 0 .cinit : PROG1 PAGE 0 .switch: PROG1 PAGE 0 .vectors: VECT PAGE 0 .const: DARAM1 PAGE 1 .bss : DARAM1 PAGE 1 .stack : DARAM2 PAGE 1 .system: DARAM2 PAGE 1 .data : DARAM2 PAGE 1 /* End of File */附件2 余弦信号程序A2.1 余弦信号fft.c文件/*fft.c*/ #include #include #includefunc.h #define PI 3.14159265358979323846#define SAMPLENUMBER 128void FFT();void InitForFFT();void MakeWave();float INPUTSAMPLENUMBER,DATASAMPLENUMBER;float fWaveRSAMPLENUMBER,fWaveISAMPLENUMBER,wSAMPLENUMBER; float sin_tabSAMPLENUMBER,cos_tabSAMPLENUMBER; main()int i;InitForFFT();MakeWave() ;for(i=0;iSAMPLENUMBER;i+ )fWaveRi=INPUTi; fWaveIi=0.0f;wi=0.0f; FFT(fWaveR,fWaveI); for(i=0;iSAMPLENUMBER;i+) DATAi=wi;while(1); void FFT(float dataRSAMPLENUMBER,float dataISAMPLENUMBER)int x0,x1,x2,x3,x4,x5,x6,xx;int i,j,k,b,p,L;float TR,TI,temp; for( i=0;iSAMPLENUMBER;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;dataIxx=dataRi;for( i=0;iSAMPLENUMBER;i+ )dataRi=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;k128;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;iSAMPLENUMBER/2;i+) wi=sqrt(dataRi*dataRi+dataIi*dataIi); void InitForFFT()int i;for(i=0;iSAMP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论