FIR(有限冲激响应)滤波器培训讲学_第1页
FIR(有限冲激响应)滤波器培训讲学_第2页
FIR(有限冲激响应)滤波器培训讲学_第3页
FIR(有限冲激响应)滤波器培训讲学_第4页
FIR(有限冲激响应)滤波器培训讲学_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、Good is good, but better carries it.精益求精,善益求善。FIR(有限冲激响应)滤波器-实验3:设计FIR(有限冲激响应)滤波器针对Spartan-3E开发套件介绍在这个实验里,将向你展示通过系统发生器的FIR和FDATool模块来指定、模拟和实现FIR滤波器的方法.FDATool模块被用来定义滤波器的阶数和系数,FIR模块被用作Simulink模拟以及在FPGA中用XilinxISE来实现设计.你也可以通过实际硬件来运行它以验证这个设计的功能.注意:在c:xupdsp_flowlabslabsolutionslab3目录下有完整的例子.目标在完成这个试验后,

2、你将能够:用FDATool模块输入你的滤波器指数,在设计中使用产生的系统或把它储存在工作区使用具有FDATool模块产生的系数的FIR模块,并在Simulink中运行bit-true仿真产生设计并用ResourceEstimator模块和post-map报告估计资源利用量设计描述你是Cyberdyne系统的一个dsp设计者.你的公司正在调查用数字滤波器代替安防检测器中的模拟滤波器,以尝试提高性能和降低整个系统的成本.这将使贵公司可以进一步渗入日益增长的安防市场.一个单频取样滤波器设计如下:SamplingFrequency(Fs)(采样频率)=1.5MHzFstop1=270kHzFpass1

3、=300kHzFpass2=450khzFstop2=480kHzAttenuationonbothsidesofthepassband(双边通频带衰减)=54dBPassbandripple(通频带脉动)=1因为灵活性和上市时间的原因,Cyberdyne已经选择FPGA来实现它.你的HDL设计经验是有限的.因为你对MathWorks的产品比较熟悉,所以SystemGeneratorforDSP会是一个在FPGA中实现滤波器的优秀解决方案.你的经理MilesBooth已经要求你创建一个在即将完成的Spartan-3E原型板上实现的滤波器的原型.这个原型必须尽可能快地完成,这是因为Aggress

4、iveSecurity会议即将来临,这个会议是业界今年最大的会议,我们不能错过它.你的经理已经提供了具有输入源和输出接收端的最初模型.你的设计必须用随机输入源和来自DSPBlockset的chirp信号来仿真.为分析滤波器的输出,输入和输出信号在频谱示波器中显示.频谱示波器用来比较在FPGA中实现的定点FIR滤波器的录放频谱响应.两个不同的输入源用来仿真这个滤波器:chirp信号模块,其扫描频率为6KHz到10KHz,不管其瞬时输出频率随机信号源发生器,它输出范围在1.9到1.9的均匀分布的随机信号.因为均匀信号是有界的,它是驱动定点滤波器的较好的选择.设计流程这个试验由六个主要步骤组成.在步

5、骤1,你将用系统发生器的FDATool模块来产生指定FIR滤波器的系数.在步骤2,你将把这个系数与FIRfilter模块联系起来.步骤3要求你用两个已提供的输入源仿真这个设计并分析系数和输入信号宽度变化的影响.在步骤4,你将要添加一个转换模块以调整输出宽度,添加一个延时模块以提高效率,添加一个资源估计模块以估计资源占用量,从而完成整个设计.在下一步将实现这个设计.在每一步总的指示下面,你会发现手把手的说明和图表,指出了实现总的指示的更多细节.如果你对个别指导有信心,可以略过手把手的说明,跳到下一步的总指示.注意:如果你当时不能完成这个实验,你可以从Xilinx大学计划网站HYPERLINK下载

6、实验文件产生FIR滤波器所需的系数步骤1实验总流程:步骤4:完成整个设计步骤3:仿真滤波器步骤2:把系数与滤波器相关联步骤1:产生滤波器系数Step7:执行HW-in-the-Loop验证Step5:实现设计Step6:估计资源占用量从XilinxBlocksetDSPblockset中添加FDATool模块到包含一个DAFIR滤波器的设计中.按照下列要求用FDATool模块产生FIR滤波器的系数SamplingFrequency(Fs)(采样频率)=1.5MHzFstop1=270KHzFpass1=300KHzFpass2=450KhzFstop2=480KHzAttenuationonb

7、othsidesofthepassband(双边通频带衰减)=54dBPassbandripple(通频带脉动)=1在Matlab中,改变目录为c:/xup/dsp_flow/labs/lab3/:在命令行窗口键入cdc:/xup/dsp_flow/labs/lab3/.从MATLAB控制台窗口打开bandpass_filter.mdl模块从XilinxBlocksetDSP添加FDATool模块到这个设计在FDAToolDesignFilter窗口(图3-1)输入下列滤波器参数ResponseType:BandpassUnits:KHzSamplingFrequency(Fs)=1.5MHz

8、Fstop1=270KHzFpass1=300KHzFpass2=450KhzFstop2=480KHzAttenuationonbothsidesofthepassband=54dB(Astop1andAstop2parameters)Passbandripple=1(Apass)图3-1.在FDATool中设计一个滤波器.点击DesignFilter按钮以确定滤波器指令频谱窗口将被更新并显示如图3-2图3-2.所设计滤波器的幅频响应.?1.基于所定义的技术要求,最小的滤波器阶数是多少?用FileSaveSession来储存fda格式文件coefficients.fda中的系数注意:这是可选

9、的步骤.这些系数对这个设计仍然可以利用.如果你把参数储存在fda-file中,你可以通过FDATool模块参数对话框来加载它们.用FileExport导出工作区中的系数,其Numeratorvariablename为Num(图3-3)注意:这将在你的MATLAB工作区添加Num变量.对于一个FIR滤波器,Numto代表用在滤波器中的系数.因为通过FDATool模块仍能利用这些系数,这也是一可选的步骤图3-3.在工作区中导出系数.在MATLAB控制台窗口键入Num来查看系数列表在MATLAB控制台窗口键入max(Num)以确定指出系数宽度和二进制小数点的最大系数值?2.填入与系数相关的下列信息最

10、大值:_最小值:把系数与FIR滤波器相关联步骤2实验总流程:Step4:CompletetheDesignStep3:SimulatetheFilterStep2:AssociateCoefficientstoFilterStep1:GenerateFilterCoefficientsStep7:PerformHW-in-the-LoopVerificationStep5:ImplementDesignStep6:EstimateResources从XilinxBlocksetDSPlibrary添加FIR滤波器模块并与产生的系数关联从XilinxBlocksetDSPlibrary添加FIR

11、(DAFIRv9_0)滤波器到设计中双击XilinxFIRFilter模块并在模块参数窗口(图3-4)中输入以下参数Coefficients:xlfda_numerator(FDATool)CoefficientStructure:InferredfromCoefficientsNumberofbitsperCoefficients:12BinaryPointforCoefficients:11ProvideValidPorts:unchecked图3-4.FIR滤波器模块参数.点击OK以接受设置如图3-5所示连接设计的各个模块图3-5.设计用来仿真的FIR滤波器模块.在Simulink中仿真

12、FIR滤波器步骤3实验总流程:Step4:CompletetheDesignStep3:SimulatetheFilterStep2:AssociateCoefficientstoFilterStep1:GenerateFilterCoefficientsStep7:PerformHW-in-the-LoopVerificationStep5:ImplementDesignStep6:EstimateResources设置样值输入为FIX_8_6,输入采样周期为1/1500000.利用频谱示波器,研究chirp和noise信号的输出.双击GatewayIn模块并设置格式为FIX_8_6,采样周

13、期为1/1500000选择Chirp信号为输入源并开始仿真如果你收到下列错误,根据消息更新FIR的等待时间,并再次仿真.调出示波器并验证一直衰减的FIR滤波器的输出信号,这些信号应如图3-7和图3-8所示.图3-7.无衰减通频带(频谱示波器).图3-8.禁带衰减(频谱示波器).停止仿真选择RandomSource并运行仿真图3-10.随机信号输入源(频谱示波器).停止仿真完成FIR滤波器设计步骤4实验总流程:Step4:CompletetheDesignStep3:SimulatetheFilterStep2:AssociateCoefficientstoFilterStep1:Generat

14、eFilterCoefficientsStep7:PerformHW-in-the-LoopVerificationStep5:ImplementDesignStep6:EstimateResources加入convert模块以得到FIX_8_6格式的输出,从而降低显示所需的动态量程.加入delay部件以提高性能.利用ResourceEstimator估计设计所需的资源.从XilinxBlocksetBasicElements库中添加一个Convert模块到FIR滤波器的输出以使输出符合FIX_8_6格式并改变quantization为Truncate,Overflow为Wrap从Xilinx

15、BlocksetBasicElements库中添加一个延时部件到输出以实现流水线技术并提高性能,流水线技术会在输出衰减器中得到实现确信FIRsize被设置为FIX_12_11,GatewayInsize被设置为FIX_8_6从XilinxBlocksetIndex库中添加ResourceEstimator模块到设计中注意:注意你的设计应如图3-11所示.图3-11.完成的FIR滤波器设计.实现FIR滤波器步骤5实验总流程:Step4:CompletetheDesignStep3:SimulatetheFilterStep2:AssociateCoefficientstoFilterStep1:

16、GenerateFilterCoefficientsStep7:PerformHW-in-the-LoopVerificationStep5:ImplementDesignStep6:EstimateResources设置FIR硬件过采样率为9,FIR核等待时间为14,然后运行仿真.这将更新采样率为7.407e-008.按照以下技术要求用系统发生器产生代码.在工程向导里打开bandpass_filter.ise工程,综合并执行它.Input:Width=FIX_8_6,Quantization=Truncate,Overflow=WrapOutputWidth:FIX_8_6FIRCoreLa

17、tency:14FIRHardwareOver-SamplingRate:9FIRCoefficients:FIX_12_12Compilation:HDLNetlistPart:Spartan3exc3s500e-4fg320SynthesisTool:XSTTargetDirectory:c:/xup/dsp_flow/labs/lab3/iseCreateTestbench:UncheckedSimulinkSystemPeriod(sec):7.407e-008FPGASystemClockPeriod(ns):20双击FIR模块并设置HardwareOver-SamplingRate

18、为9,latency为14?3.HardwareOver-SamplingRate设置为9后,滤波器的实现结果有何变化?为何要把它设为9而不是8?运行仿真.如果采样率更新窗口出现,接受采样率为7.407e-008并再次运行仿真双击系统发生器符号并设置以下参数Compilation:HDLNetlistPart:Spartan3exc3s500e-4fg320SynthesisTool:XSTTargetDirectory:c:/xup/dsp_flow/labs/lab3/ise(or./ise)CreateTestbench:UncheckedSimulinkSystemPeriod(sec

19、):7.407e-008FPGASystemClockPeriod(ns):20双击Generate按钮以产生设计在资源管理器中双击bandpass_filter_cw.ise以打开ProjectNavigator高亮突出顶层文件并双击执行?4.利用各种报告,回答以下问题Slices的数目:有无定时约束?实际时钟周期:?5.在选择连续执行的情况下,滤波器的实际时钟是多少?用ResourceEstimator估计资源利用率步骤6实验总流程:Step4:CompletetheDesignStep3:SimulatetheFilterStep2:AssociateCoefficientstoFilt

20、erStep1:GenerateFilterCoefficientsStep7:PerformHW-in-the-LoopVerificationStep5:ImplementDesignStep6:EstimateResources用ResourceEstimator模块和post-map报告,估计此设计所用的资源.双击resourceestimator模块从下拉框中选择Post-Map并点击Estimate按钮.ISE将自动通过综合和映射来运行并产生映射报告.?6.资源估计器的报告有什么内容?Slices的数目:FFs的数目:LUTs数目:实现Hardware-in-the-Loop验证步

21、骤7实验总流程:Step4:CompletetheDesignStep3:SimulatetheFilterStep2:AssociateCoefficientstoFilterStep1:GenerateFilterCoefficientsStep7:PerformHW-in-the-LoopVerificationStep5:ImplementDesignStep6:EstimateResources利用系统发生器产生硬件电路并通过硬件电路板来验证设计.通过Simulink仿真这个设计.储存模型为bandpass_filter_hwcosim.mdl双击系统发生器符号并设置以下参数Comp

22、ilation:HardwareCo-simulationxupsp3e_starter_kitSynthesisTool:XSTTargetDirectory:c:/xup/dsp_flow/labs/lab3/sp3e(or./sp3e)CreateTestbench:UncheckedSimulinkSystemPeriod(sec):7.407e-008点击Generate按钮,会出现一个对话框,显示编译处理的过程,如图3-12图312.在命令窗口的编译过程.当发生器成功完成后,一个新的Simulink库窗口将打开,并出现一个具有适当输入输出数的模块.图313.在新的Simulink窗口中打开的被

温馨提示

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

评论

0/150

提交评论