版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字信号处理实验报告姓名:实验六 16阶FIR滤波器一、实验仪器:PC机一台,JQ-NIOS-2C35实验箱一台及辅助软件(DSP Builder、Matlab/Simulink、Quartus II、Modelsim)。二、实验目的:1初步了解JQ-NIOS-2C35实验箱的基本结构;2学习和熟悉基于DSP Builder开发数字信号处理实验的流程。3学习和熟悉DSP Builder层次化的设计方法。三、实验原理:1FIR滤波器基础FIR滤波器具有直接型、级联型和频率抽样型三种基本结构14。由于在DSP Builder模型设计中采用了直接型结构,我们只对直接型结构进行讨论。这种结构也被称为抽
2、头延迟线结构,或横向滤波器结构1516。图1显示的是直接型结构的示意图,从图中可以看出,每个抽头上的加权值,分别等于滤波器的单位冲击响应。输入与抽头加权值的乘积的和就是输出。图1 FIR滤波器直接型结构示意图 转置定理定义为,如果将上图中的所有支路倒转,并将输入x(n)和输出y(n)的位置调换,则其冲击响应不变。将转置定理应用于上图,则得到FIR滤波器的转置结构,如图2所示。图2 转置型FIR滤波器结构示意图2具有线性相位的FIR滤波器结构若一个FIR滤波器具有线性相位,且其单位冲击响应h(n)全为实数,则h(n)具有如下特性:当N为偶数时,h(n)=h(M-n);当N为奇数时,h(n)=-h
3、(M-n)。所谓线性相位特性是指滤波器对不同频率的正弦波产生的相移和正弦波的频率成直线关系。在本次试验设计中采用的是N为偶数的结构,图3显示的是N为偶数时线性相位滤波器的结构。图3 线性相位滤波器结构示意图(N为偶数) 3FIR滤波器的设计方法FIR滤波器的设计方法主要有窗函数法、频率抽样法和切比雪夫逼近法三种。其中窗函数法是设计FIR滤波器最基本的方法。在本次实验设计中,采用的方法也是窗函数法,接下来我们主要讨论用窗函数法设计FIR滤波器。 窗函数设计的基本思想是要选择一种合适的理想频率选择性滤波器,然后将它的冲击响应截短以获得一个具有线性相位和因果的FIR滤波器。因此这种方法的关键是选取某
4、种好的窗函数和一种理想滤波器,在滤波器性能参数给定的情况下,应尽量选择主瓣尽可能窄,边瓣峰值进可能小的窗函数。在了解了FIR滤波器的原理及设计方法后,基于DSP Builder设计FIR滤波器的第一项工作就是滤波器参数的选取。这一工作是借助于Matlab提供的设计滤波器专用的工具箱FDAtool来完成的。在启动FDAtool前先确定所要设计的FIR滤波器的要求,在这里,我们将用凯撒窗设计一个16阶的低通滤波器,截止频率为10800Hz,采样频率为50000HZ。四、实验步骤: 本实验的操作步骤如下:1.在Matlab的命令窗口中输入fdatool命令,启动fdatool,启动后的fdatool
5、界面如图4所示。图4 fda tool界面2. 如图4示设置参数:在滤波器类型选择低通,设计方法选择凯撒窗函数法,滤波器阶数为15,采样频率为50000hz,截止频率为10800hz。3. 点击图4中fdatool界面下方的Design Filter按钮,弹出如图5所示的界面,点击菜单栏中的Analysis->Filter Coefficients,调出系数Numerator,可看出系数是一系列的小数。再点击图5中左侧的按钮,设置量化参数将弹出如图6的图5 设置完参数后的fdatool界面的界面。在图中Filter arithmetic选项中选择Fixed-point在弹出的界面中分别设
6、置Coefficients和Input/Output选项的参数,filter precision设为specify all。对Coefficients,设置Numerator word length为9,Numerator frac.length为8,对Input/Output选项,设置Input word length为9,Input fraction length为 8,Output word length为17,Output fraction length为16。最后点击Apply按钮,再点击菜单File->Export将系数导出到Workspace空间,在matlab命令窗口输入
7、命令Num*(28),导出的优化后系数如下:-7 7 13 -3 -23 -8 48 101 101 48 -8 -23 -3 13 7 -7图6 设置量化参数界面图7 Matlab启动界面4.点击桌面上的Matlab图标,进入Matlab主界面,并将工作目录设为Matlab安装目录下的work文件夹,如图7所示。5.点击菜单栏中的File->New->Model,新建一个模型,在Matlab命令窗口中输入simulink命令,调出simulink工具栏,如图8所示。6.在新建的模型中按照图9所示搭建模型,可以看出,该模型与正弦发生器模型相似,不同之处在于Output模块被替换为A
8、ltbus模块。7.按住鼠标左键,框住全部的模块及连接,单击鼠标右键,选择Create Subsystem,建立输入子系统。单击子系统下的文本命名为Input1_Subsystem图8 新建模型图9 Fir输入子系统模型8.按照图10中的形式添加模块至模型,这里有一个小技巧,按住CTRL+R可以对模块进行旋转,以便于连接。9.按照步骤7的方式,创建Fir子系统。即按住鼠标左键,框住步骤8中搭建的模块和连接,单击鼠标右键,选择Create Subsystem,单击子系统下的文本命名为Fir_SubSystem。10.按照图11中的形式搭建模型,其中左边两个子系统相同,可以复制步骤7建立的子系统,
9、命名为Input2_Subsystem,四个Output模块来自simulink工具栏中的Altera DSP Builder中的IO&Bus库,Scope模块来自simulink工具栏中Simulink下的Sinks库。 11.对搭建好的模型进行参数设置。双击Input1子系统,对其中的模块参数进行设置。其中Increment Decrement模块的Bus Type设为Signed Integer,number of bits设为8,在Specify Clock选项前打勾,并在下面的对话框中输入Clock;LUT模块Address Width 设为8,Data Type设为Sign
10、ed Integer,number of bits 设为8,MATLAB Array设为127*sin(2*(16000/50000)*pi*(1:28),Step模块Step Time设为2e-4,Initial value设为0,Final value设为1,Sample time 设为1/50000。Altbus模块Bus Type设为Signed Integer,number of bits设为9。对Input2子系统也采用类似方式进行设置,其余模块参数都相同,不同之处在于LUT模块的MATLAB Array设为127*sin(2*(8000/50000)*pi*(1:28)。图10
11、Fir子系统12.四个Output模块中,与Fir模块相连的两个Output模块的Bus Type设为Signed Integer,number of bits设为17,与Input模块相连的两个Output模块的Bus Type设为Signed Integer,number of bits设为9。13.双击simulink工具栏中的Altera DSP Builder中的AltLab库,找到其中的Clock、Signal Compiler和TestBenchOn模块,选中它们并按住鼠标左键将其拖到新建的模型文件中,双击Clock模块,打开模块参数设置界面,Real-World Clock P
12、eriod设为20,Period Units设为ns,Simulink Sample Time 设为1/50000,Reset Type设为Active Low。执行File->Save 保存文件,将其命名为fir.mdl。 图11 Fir模型 14.执行File->Configuration Parameters,将solver设为discrete,Type设为Fixed-step,Stop Time设为0.005。 15.点击菜单栏中的黑色小三角,启动simulation,simulation结束后,双击Scope模块,打开波形观察界面,在波形上点击鼠标右键,选择Autosca
13、le,即可观察simulation后的波形。 16.点击TestBenchOn模块,打开模块参数界面,在Advanced选项卡中,点选Lauch GUI,并依次点击Generate HDL,Run Simulink和Run Modelsim,启动RTL级仿真。 17.随后显示的界面即为Modelsim RTL级仿真的波形图。选中tb_fir/dut/output信号,点击鼠标右键,选中Propertyties选项,选择Format为analog,将Height设为100,Scale设为0.1,点击【OK】确认。同样的方法,选中tb_fir/dut/output1信号,点击鼠标右键,选中Prop
14、ertyties选项,选择Format为analog,将Height设为100,Scale设为0.2;选中tb_fir/dut/output2信号,点击鼠标右键,选中Propertyties选项,选择Format为analog,将Height设为100,Scale设为0.3;选中tb_fir/dut/output3信号,点击鼠标右键,选中Propertyties选项,选择Format为analog,将Height设为100,Scale设为0.4;最后,在波形界面单击鼠标右键,选择Zoom Full,即可观察到RTL级仿真波形。18.点击Signal Compiler模块,打开参数设置页面,点击
15、compile,结束后,关闭该页面。19.点击桌面上的 Quartus 图标,执行File->New Project Wizard,创建新的工程,对project命名为fir。点击next,添加文件,这一栏可以忽略,点击next,在器件family中选择Cyclone ,选择下拉菜单中的EP2C35F672C6.,点击finish。20.在Quartus tcl Console窗口中输入如下命令:source <路径名>/sinwave_add.tcl,回车。其中路径名是fir_add.tcl存放的路径名,该文件在Matlab安装路径的work文件夹下。需要注意的是 Quar
16、tus 不能识别,需要将路径名中的改为/。21.点击菜单栏中的紫色小三角,对创建的文件进行编译。22.编译成功后执行File->New->Vector Waveform File,点击【OK】确认。23.执行Edit->Insert->Time Node or Bus,在弹出的对话框中选择Node Finder,再点击List,从左边弹出的管脚名中选择Clock,aclr,Input1_Subsystem_Input、Input2_Subsystem_Input、Output、Output1、Output2、Output3添加到右边,点击【OK】确认。 24.选中acl
17、r信号,选择左边工具栏的图标,选中Input1和Input2信号,同样设为。选中Clock信号,点击,对弹出的对话框点击【OK】确认。保存该文件,将其命名为fir。 25. 执行Assignmets->Settings,选择Simulator Settings,Simulation mode选为Functional,在右边的对话框中将保存的波形文件添加到Simulation Input中,点击【OK】确认。执行菜单栏的Processing->Generate Functional Simulation Netlists进行功能仿真。 26.执行菜单栏Assignmets->S
18、ettings,选择Simulator Settings,Simulation mode选为Timing,在右边的对话框中将保存的波形文件添加到Simulation Input中,点击【OK】确认。点击工具栏中的图标,对工程进行时序仿真。仿真完成后,选中Output信号,单击鼠标右键,选择Display Format中的Analog Waveform,若弹出对话框询问是否覆盖原文件,选择Yes。再次选中Output信号,单击鼠标右键,选择Display Format中的Analog Waveform,将Display Style设为Step,Display Height设为4,点击【OK】确认
19、。同样的方法对Output1信号、Output2信号和Output3信号进行设置即可观察到时序仿真波形。 27.执行Assignmets->Assignment Editor,将Category设为Pin,按照实验箱中的用户指南28页中的图4-5所示将aclr、Input1_SubSystem_Input、Input2_SubSystem_Input分配给开关,按照37页图4-8将Clock分配为PIN_N2管脚,按照52页图4-10将Output总管脚及其如Output0Output8的分管脚进行分配,同样的方法对Output1总管脚及其如Output10Output18的分管脚、Ou
20、tput2总管脚及其如Output20Output28的分管脚和Output3总管脚及其如Output30Output38的分管脚进行分配,并保存。 28.执行Tools->SignalTap Logic Analyzer,在Data窗口中的空白处双击,在弹出的对话框中将Fiter设为all®isters:post fittings,点击List,将Output、Output1、Output2和Output3添加至右边的窗口中,点击【OK】确认。29.在右边的对话框中将Clock设为Clock信号,Sample depth设为2K,点选Trigger in,Source设为
21、Clock信号,Pattern设为Rising edge。保存,若弹出对话框询问是否将文件添加至工程,选择Yes。点击菜单栏中的,重新对工程进行编译。 30.打开实验箱,接入电源,用USB Blaster线将电脑和实验箱连接起来,选择菜单栏中的图标。 31.点击Hardware Setup,选择USB-0,点击【OK】确认。选中fir.sof文件,点击Start,将文件下载到实验板上。在Signaltap II界面点击Hardware右边的Setup,将其设为USB-BlasterUSB-0。 32.将实验箱上的事先分配的aclr、Input1_Subsystem_Input、Input2_S
22、ubsystem_Input开关拨至高电平,点击工具栏的图标,启动数据采集,一段时间后点击图标停止数据采集,点击SignalTap中的data窗口,即可看到硬件实现的波形。如图12所示:图12 fir硬件实现结果五、实验结果: Simulink仿真波形与RTL级仿真波形以及时序仿真波形和硬件实现结果都应相同,且结果为16000Hz的正弦波被滤去,8000Hz的正弦波得以保留。六、注意事项: 应该先将电源接上再用USB电缆将电脑和实验箱相连。实验结束,先拔掉USB与PC机的连接线,再拔电源。实验七 IIR滤波器一、实验仪器:PC机一台,JQ-NIOS-2C35实验箱一台及辅助软件(DSP Bui
23、lder、Matlab/Simulink、Quartus II、Modelsim)二、实验目的:1.初步了解JQ-NIOS-2C35实验箱的基本结构。2、学习和熟悉基于DSP Builder开发数字信号处理实验的流程。3、理解IIR滤波器设计的原理和方法。三、实验原理:IIR(Infinite Impulse Response)滤波器,即无限冲击响应滤波器,其冲击响应是无限长的。IIR滤波器一般采用递归式方法来实现。也就是说,滤波器当前输出y(n)是输入序列x(n)和以前各输出值y(n1) 、y(n2) 的函数,这可以用下列差分方程来表示: (4-1)其中,N是IIR滤波器的阶数。相应地,II
24、R滤波器的系统函数可以表示为: (4-2)IIR滤波器除了具有极点之外,一般还存在零点。由于极点的存在,IIR滤波器用递归结构来实现较为简单。实现IIR滤波器的基本结构共有三种:直接型、级联型和并联型。下面简单介绍前两种IIR滤波器的结构。1、直接型 利用公式(4-2)可以直接导出I型的IIR滤波器结构,可用下式表示: (4-3)由此可得,和反馈环节中的延时单元不能共用,需要M+N个延时单元。为了减少延时单元,对于线性系统,公式(4-3)也可以写成: (4-4)由此可以导出直接II型的滤波器结构。图4-1表示了一个直接II型IIR滤波器的结构,该滤波器的阶数是四阶,共存在四个反馈环节。图4-2
25、1 直接II型IIR滤波器结构 2、级联型对公式(4-4)的分子、分母进行因式分解,由于H(z)中的系数都为实数,H(z)的极、零点只可能是实数或者复共轭对,对于复共轭对因子,可以复合成二阶因子: (4-18)式中的系数都为实数。如果把实数因子(一阶因子)看成是二阶项系数为0的二阶因子,则上式可以写成: (4-19)其中 由此可见,是一个2阶的IIR滤波器,N阶IIR滤波器可以看成是由多个2阶IIR滤波器级联而成的。四、实验步骤: 本实验的操作步骤如下:1、点击桌面上的Matlab图标,进入Matlab主界面,并将工作目录设为Matlab安装目录下的work文件夹。点击菜单栏中的File-&g
26、t;New->Model,新建一个模型,在Matlab命令窗口中输入simulink命令,调出simulink工具栏,并执行File->Save 保存文件,将其命名为IIR。 2、在Altera DSP Builder Blockset中的IO&Bus下选择Altbus模块将其添加到文件中。打开模块参数对话框,将Bus Type设置为Signed Integer,number of Bits设置为16,然后单击【OK】按钮确认。3、重复步骤2,添加1个Altbus模块。设置number of Bits设置为16,命名为“Altbus1”。4、在Altera DSP Buil
27、der Blockset中的IO&Bus下选择Bus conversion模块将其添加到文件中。打开模块对话框,将Bus Type设置为Signed Integer,Input设置为32,output设置为16,Input Bit Connected to Output LSB设置为16,然后点击【OK】确认。5、在Altera DSP Builder Blockset中的Storage下选择LUT模块将其添加到文件中。将Data Type设置为Signed Integer;number of bits设置为12;LUT Address Width设置为10;MATLAB Array查
28、找表中存储数据的内容,设置为511*sin(2*pi*2e4/5e4*(0:1:212),然后点击【OK】确认。6、重复步骤5,将LUT1添加到文件中。Data Type设置为Signed Integer;number of bits设置为12;LUT Address Width设置为10;MATLAB Array查找表中存储数据的内容,设置为511*sin(2*pi*1e3/5e4*(0:1:212),然后点击【OK】确认。7、在Altera DSP Builder Blockset中的IO&Bus下选择Output添加到模型文件中。设置Bus Type为Signed Integer
29、;设置number of bits.为24;其它参数设置不变;然后点击【OK】确认。8、在Altera DSP Builder Blockset中的Arithmetic下选择添加Increment Decrement到模型文件中。设置Bus Type为Signed Integer;设置number of bits.为10;勾选Specify Clock,并在Clock下写入“Clock”,然后点击【OK】确认。9、重复步骤8,将Increment Decrement1添加到文件中,其它设置保持不变。10、在Altera DSP Builder Blockset中的Arithmetic下选择Pa
30、rallel Adder Subtractor模块,添加到IIR文件中。设置:Number of Inputs改为2,保持其他的参数不变,点击【OK】按钮确认。11、重复步骤10,添加3个Parallel Adder Subtractor模块到IIR文件中。Parallel Adder Subtractor1:Number of Inputs设置为4;Parallel Adder Subtractor2:Number of Inputs设置为5;Parallel Adder Subtractor3:Number of Inputs设置为2;其它设置保持不变。12、在Altera DSP Bui
31、lder Blockset中的Storage下选择Delay模块将其添加到文件中,随后依次将Delay1、Delay2、Delay3添加至模块,保持参数设置不变。13、在Altera DSP Builder Blockset中的Arithmetic下选择Gain模块将其添加到文件中。设置为Signed Integer;Number of Inputs设置为12;Gain Value设置为-1213,并命名为A1。同时A2的Gain Value设置为1185;A3:-540;A4:96、B0:2;B1:10;B2:15;B3:10;B4:2.,其它设置不变。而A5设置为SignedFractio
32、nal,小数点左边位数为2,右边位数为10,Gain Value为1/512。14、在Altera DSP Builder Blockset中的AltLab下选择Signal Compiler模块和TestBench模块将其添加到文件中。15、在Altera DSP Builder Blockset中的Rate Change下选择Clock模块将其添加到文件中。将Simulink Sample Time设置为2e-5,其它参数保持不变,然后点击【OK】确认。16、在Simulink中的Sinks下选择Scope模块添加到文件中。17、IIR系统的总体设计如图4-2所示图4-2 IIR系统总体图
33、18、IIR滤波器子系统如图4-3所示。图4-3 IIR滤波器子系统设计19、执行File->Configuration Parameters,将solver设为discrete,Type设为Fixed-step,Tasking mode for periodic sample times设为:Single Tasking,Stop Time设为1e-2。20、点击菜单栏中的黑色小三角,启动simulation,simulation结束后,双击Scope模块,打开波形观察界面,在波形上点击鼠标右键,选择Autoscale,即可观察simulation后的IIR滤波器的仿真波形。21、 点
34、击Signal Compiler模块,打开参数设置页面,点击compile,结束后,关闭该页面。22、点击TestBenchOn模块,打开模块参数界面,在Advanced选项卡中,点选Lauch GUI,并依次点击Generate HDL,Run Simulink和Run Modelsim,启动RTL级仿真。23、随后显示的界面即为Modelsim RTL级仿真的波形图。点击wave-default中的unlock 按钮选中tb_IIR/dut/output信号,点击鼠标右键,选中Propertyties选项,选择Format的Analog,将Height设为100,Scale设为0.2,点击
35、【OK】确认。观察波形。24、再次选中Propertyties选项,选择Format的Literal,并在View下的Radix下选择Decimal,观察数字波形。25、点击桌面上的 Quartus 图标,执行File->New Project Wizard,创建新的工程,对project命名为IIR。点击next,添加文件,这一栏可以忽略,点击next,在器件family中选择Cyclone ,选择下拉菜单中的EP2C35F672C6.,点击Finish。26、在Quartus tcl Console窗口中输入如下命令:source <路径名>/IIR_add.tcl,回车
36、。其中路径名是IIR_add.tcl存放的路径名,该文件在Matlab安装路径的work文件夹下。需要注意的是 Quartus 不能识别,需要将路径名中的改为/。27、点击菜单栏中的紫色小三角,对创建的文件进行编译。28、编译成功后执行File->New->Vector Waveform File,点击【OK】确认。29、执行Edit->Insert->Time Node or Bus,在弹出的对话框中选择Node Finder,再点击List,从左边弹出的管脚名中选择Clock,aclr和Output添加到右边,点击【OK】确认。30、选中aclr信号,选择左边工具栏
37、的图标;选中Clock信号,点击,将周期设置为20ns,然后对弹出的对话框点击【OK】确认;同时在EditEnd Time设置为10us,点击【OK】确认;最后保存该文件,将其命名为IIR。31、执行Assignmets->Settings,选择Simulator Settings,Simulation mode选为Functional,在右边的对话框中将保存的波形文件添加到Simulation Input中,点击【OK】确认。执行菜单栏的Processing->Generate Functional Simulation Netlists进行功能仿真。32、执行菜单栏Assign
38、mets->Settings,选择Simulator Settings,Simulation mode选为Timing,在右边的对话框中将保存的波形文件添加到Simulation Input中,点击【OK】确认。点击菜单工具栏中的图标,对工程进行时序仿真。仿真完成后,选中Output信号,单击鼠标右键,可观察到时序仿真波形。对比Modelsim的仿真数字波形。33、执行Assignmets->Assignment Editor,将Category设为Pin,按照表4-1对引脚进行设置,并保存。表4-1 IIR滤波器引脚分配Node NameLocationNode NameLocationaclr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保专项施工方案
- 2025年宁夏公安面试真题及答案
- 绥化市中医院应对飞行检查与资质评审的准备工作评估
- 合肥市人民医院紧急气道管理技能考核
- 徐州市中医院新药临床试验GCP规范考核
- 合肥市人民医院甲状腺结节良恶性鉴别诊断思维考核
- 莆田市中医院护理敏感指标管理考核
- 嘉兴市人民医院胆道手术护理配合考核
- 烟台市中医院颈椎感染病灶清除术操作规范考核
- 上饶市中医院护理管理影响力建设考核
- 2025年B站OTT大屏营销通案
- 2025年公司法考试试题及答案
- 2024-2030全球AI驱动的智能文档处理 (IDP)行业调研及趋势分析报告
- 医用化学(第三版)课件 -第14章 醇酚醚
- 《聚乙烯聚合工艺》课件
- 《关税政策对进口影响》课件
- 《思想道德与法治》课件-第三章 继承优良传统 弘扬中国精神
- 第10课 多民族政权并立与元朝的统一【课件】-2024-2025学年中职高一上学期高教版(2023)中国历史全一册
- 大型仪器共享协议书
- 大学生综合服务中心施工组织设计方案
- 设备维护保养制度及考核标准
评论
0/150
提交评论