1、dsp实验报告5数字信号处理实验报告姓名:实验五 快速傅里叶变换一、实验仪器:PC机一台、JQ-SOPC开发系统实验箱及辅助软件(DSP Builder、Matlab/Simulink、Quartus II、Modelsim)二、实验目的:(1)了解快速傅里叶变换的基本结构组成。(2)学习使用DSP Builder设计FFT。三、实验原理:(1)FFT的原理:快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的一种高效运算方法,它大大简化了DFT 的运算过程,使运算时间缩短几个数量级。FFT 算法可以分为按时间抽取(DIT)和按频率抽取(DIF)两类,输入也可分为实数和复数两种情况。八点时间抽
2、取基-2FFT算法信号流图如图1示:图1 8点基-2 DIT-FFT信号流图(2) DSP Builder设计流程图2显示了利用DSP Builder设计FFT的流程。图2 DSP Builder设计流程下面部分将以N=8点实数输入基-2DIT-FFT为例介绍用DSP Builder实现FFT的详细过程。四、实验步骤:(1)在Matlab/Simulink环境下调用Altera DSP Builder Blockset和Simulink库内的基本模块(block)搭建FFT模型如图3所示,假设模型名为my_fft_8。图3 FFT模型图FFT可分为输入、蝶形运算、输出三个功能模块,分别对应图三
3、中的subsystem、subsystem1、subsystem2。每个功能模块的详图分别如图4、图5和图6所示。图4 输入模块详图LUT0LUT7存储的输入数据分别为2.0,1.1,5.6,10.2,4.02.0,5.0,5.0,15.3,10.54.0,10.5,15.8,18.1,15.67,15.3,20.4,20.3,20.33,20.2,25.2,24.2,25.25,25.7,35.1,30.0,35.75,30.6,40.2,35.2,40.58,40.1,45.0,42.3,45.0(2)在Matlab/Simulink环境下对my_fft_8.mdl文件进行仿真参数设置,点
4、击菜单栏的simulation选项,选择下拉菜单中的configuration parameters项,在弹出的对话框里的simulation time一栏下设置仿真开始时间和结束时间,这里可分别设为0、100.0。在solver option一栏下type和solver项分别设为variable-step和discrete.其他选项默认即可。图5 蝶形运算模块详图(3)点击菜单栏中simulation选项下的start或工具栏黑色斜三角按钮即可开始系统级simulink仿真,以验证该模型的正确性。在仿真进行过程中分别将三个输入控制开关打到000、001、010、011、100以选择五组输入数
5、据进行FFT运算。当开关打到000时选择第一组数据2.0,2.0,4.0,7.0,3.0,5.0,5.0,8.0,其运算结果应为36、-2.41+3.84i、-4+8i、0.4219+1.844i、-8、0.4102-1.84i、-4-8i、-2.422-3.844i。当开关打到001时选择第二组数据1.1,5.0,10.5,15.3,20.2,25.7,30.6,40.1,其运算结果应该为148.5、-16.1+52.35i、-19.8+24.7i、-22.02+12.25i、-23.7、-22.1-12.15i、-19.8-24.7i、-16.9-52.45i。当开关打到010时选择第三组
6、数据5.6,5.0,15.8,20.4,25.2,35.1,40.2,45.0,其运算结果结果应该为192.3、-23.39+63.19i、-25.2+25.3i、-15.69+14.49i、-18.7、-15.81-14.39i、-25.2-25.3i、-23.51-63.29i。当开关打到011选择第四组数据10.2,15.3,18.1,20.3,24.2,30.0,35.2,42.3,其运算结果应该为195.6、-8.755+43.11i、-18.9+17.3i、-19.19+8.992i、-20.2、-19.25-8.906i、-18.9-17.3i、-8.812-43.2i。当开关打
7、到100选择第五组数据4.0,10.5,15.6,20.3,25.2,35.7,40.5,45.0,其运算结果应该为196.8、-21.45+60.28i、-26.9+19.1i、-20.85+10.58i、-26.2、-20.94-10.48i、-26.9-19.1i、-21.55-60.38i。图6 输出模块详图(4)双击模型图中的Testbench模块弹出类似如图7所示对话框。依次单击Generate HDL、Run Simulink、Run Modelsim三个选项。其中Run Modelsim选项后的Launch GUI前的选项框一定要选,这样可以观看modelsimRTL级仿真结果
8、。(5)双击模型图中的SignalComplier模块弹出类似如图8所示对话框。在parameters栏下的family选项选择cyclone II ,device选项选择默认的auto,然后点击simple下的complie,编译完后再对advanced栏的Create project、synthesis、Fitter进行操作即可生成my_fft_8.qpf工程文件。图7 Testbench对话框图8 SignalComplier对话框图9 指定项目路径、创建项目目录(6)双击桌面上的Quartus II图标,进入quartus环境。打开“File”菜单,选择“New Project Wiz
9、ard.”,弹出如图9所示的对话框。在对话框第一栏内键入盘符、子目录和项目目录。这里可设为D:altera72quartusmyprj.在对话框第二栏内键入项目名称,第三栏内会自动出现与项目名同名的顶层设计文件名。这里可设为my_fft_8.点击“next”,如果项目目录不存在,则弹出提示框,提醒是否要创建这个目录。点击“是”按钮,QuartusII会自动创建新目录,并弹出图10所示的添加文件选项框。如果需要导入其他路径下已存在的源文件或用户库,可点击“File name”栏旁的浏览按钮进行查找选择。图10 添加设计文件、用户库这里在“File name”栏添加(4)(5)步骤生成的工程文件、
10、my_fft_8_add.tcl和my_fft_8_example.vhdl文件。(7)点击“next”,弹出如图11所示的选项框,其右方适配参数“Filters”下 3个约束选项框均可选默认项“Any”。在Family栏选择cycloneii,Available device选择EP2C35F672C6.(8)点击“next”,出现第三方EDA工具的选项框。这里选择默认项直接点击“Finish”,项目创建完成。(9)单击菜单栏下的Assignments选项下的settings出现对话框,在下面的General选项里设置顶层实体为my_fft_8。(10)单击所示的第一个斜三角按钮进行全编译,
11、编译完会弹出报告如图12所示。如没有出现错误,则可进行下一步。图11 选择目标器件和型号图12 全编译报告(11)单击中第一个新建按钮,在弹出的对话框里选择other files类型,创建一个vector waveform file的文件,并将其保存在D:altera72quartusmyprj中。(12)打开上一步中创建的vector waveform file文件,左方为节点列表区,右方为波形显示区,如图13所示。图13 QuartusII波形文件编辑(13)在打开的vector waveform file文件窗口中添加要观察的输入节点clock、aclr、input2、input1、in
12、put0和输出XR0XI7。在下拉主菜单编辑选项“Edit”,选择“Insert Node or Bus.”项,弹出如图14所示的对话框。在此对话框中点击右方的“Node Finder”按钮,出现如图15所示的节点查找窗口。图14 Insert Node or Bus对话框图15 节点列表(14)在Node Finder窗口中,首先在上方的“Look in”栏中确定设计源文件名my_fft_8,然后下拉过滤栏选择节点属性这里选择“pins:all”。选择搜索条件后点击按钮“List”。项目节点列表如图15示。(15)点击节点查找窗口中的按钮,所选节点即显示在右边所选节点栏内。(16)在启动仿真
13、之前,必须设置矢量波形文件中的输入节点的状态。利用仿真平台的快捷工具对输入信号进行编辑,编辑后的矢量波形文件如图16所示。(17)在主菜单Assignments下拉菜单中选择Settings选项下的simulator settings。在如图17的仿真工具窗口中下拉simulation mode栏选择“Function”。点击主菜单Processing下拉菜单中的Generate functional simulation netlist,根据项目顶层设计文件产生功能仿真的电路网表以及编译报告文件“compilation report”,完成后弹出仿真成功提示框,点击“确定”按钮退回仿真工具窗
14、。图16 矢量波形文件编辑图(18)点击中最后一个按钮进行时序仿真。仿真结果如图18所示。(19)在设计源文件执行主菜单“Assignments”Back-Annote Assignments”命令,弹出如图19的分配注释信息返回选项框。在选项框中间“Assignments to Back-Annote ”栏中选择第二项,点击“ok”按钮,端口分配信息被返回到项目文件my_fft_8.qsf,设计源文件中个端口立即显示被自动分配的端口编号。(20)在主菜单Assignments下拉菜单中选择Assignment Editor,在弹出的如图20的对话框内添加XR0XI7 16个输出端口,并修改输
15、入节点和此16个输出接点的管脚分配信息。Clock对应PIN_D13,aclr对应PIN_AE14,input2input0分别对应PIN_N25、PIN_N26、PIN_P25,16个输出接点分别对应扩展接口的GPIO_00-GPIO_015即PIN_D25PIN_G25。保存该分配信息。图17 仿真设置窗口图18 时序仿真结果图图19 返回分配信息选项框图20 Assignment Editor对话框(21)在Quartus II环境下建立一个新文件,文件类型为oter files中的SignaltapIIfile,弹出如图21所示的菜单。实例默认名为“auto_signaltap_0”图21 SignaltapII的实例重命名和JTAG链配置连接JQ-SOPC开发板,假设驱动已安装,打开电源,若菜单中JTAG Chain Configuration栏中出现“No device is selected”,下拉其下方的Hardware栏,选择开发板所用的JTAG接口模式,如图21右方所示。然后点击Device右方的“Scan Chain ,SignatapII”,Quaetus会自动扫描开发装置识别FPGA器件,在JTAG Cha
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1