实验报告实验名称FFT的实现FIR数字滤波器的实现课程名称高速DSP原理与应用任课老师刘建国姓名魏文鹏学号2009300827班级03040901日期2012年5月1一、实验目的学习和掌握FFT的定点DSP实现原理及C28X编程的技巧,并通过CCS的图形显示工具,观察输入/输出信号波形以及它们的频谱变化。二、实验要求在CCS环境中用汇编语言,编写实现FFT的程序及连接器命令文件,编译调试程序,并通过CCS的图形显示工具观察输入/输出信号波形以及频谱变化。三、实验原理(1)位反转在DIF-FFT蝶形运算结构中,输出X(k)按正常顺序存放在存储单元中,即按X(0)、X(1)、X(2)、…X(6)、X(7)的顺序排列,输入x(n)是按x(0)、x(4)、x(2)…x(3)、x(7)的顺序进行寻址。反转实现用“*BR0++”寻址方式即可。(2)蝶形运算如果蝶形运算的两个输入相距B个点,应用原位运算,则式中,第L级的旋转因子指数,,L=1,2,…,M=log2N,B=(3)基2DIT-FFT运算流图2(3)算法流程图四、实验环境软件环境:CCS3.1硬件环境:无五、实验过程、数据记录、处理及结论1、实验步骤本实验需要使用C28X汇编语言来实现FFT,并通过CCS的图形显示工具观察输入\输出信号波形以频谱的变化。实验步骤如下:(1)启动CCS,通过project创建工程文件。(2)编写CMD文件和汇编源程序。(3)编译、连接、单步执行,检查程序的语法错误,检查程序逻辑错误。3(4)完成编译、连接。然后选择File/LoadProgram命令将OUT文件装入。点RUN启动程序运行。(5)借助view/Graph设置观察波形,并记录。2、波形记录输入单频正弦波,起始地址FirstIn。波形图一所示,他的频谱如图二所示图一4图二输出单频正弦波频谱,起始地址VAR_FIRST,波形如图三所示图三3、实验结论输入单频正弦波结果输出脉冲波形很好的验证了FFT程序的逻辑和代码编程的正确性。六、讨论通过这次编程实验,我进一步掌握了FFT的算法。它具有原位运算、蝶形运算、位倒序的特点。编程中发现了自己对DSP编码并不熟练,且存在许多问题,错误。完成后,自我感觉学到了很多,也有一种成就感。七.附录(原程序代码);;fft.asm文件.sect".xn"var_x:;输入X矩阵VAR_FIRST和VARZ_END5.copy"VAR.asm".data.globalmystart,_c_int00M:.byte00hL:.byte9hB:.word00hJ:.word00hp1:.word00hK:.word00hSAVE_Y:;FirstIn和LastIn分别为输入的起始值和终止值.copy"FFT_Input.txt"YINZI:;旋转因子矩阵XZ为起始值.copy"YINZI.txt".text_c_int00:mystart:C28OBJC28ADDR.c28_amodeN.set1024YZ.set512;movwdp,#Fir...