FIR滤波器设计_第1页
FIR滤波器设计_第2页
FIR滤波器设计_第3页
FIR滤波器设计_第4页
FIR滤波器设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、4FIR数字滤波器的设计与实现4.1FIR数字滤波器在Simulink环境下的仿真本次FIR数字滤波器课题研究设计的简要流程:图4.1FIR设计流程按照此流程图通过一个实例来验证此套方案的可行性即成功滤掉高频信号。实例:让一个50hz的信号与一个500hz的信号相加,让其分别通过带通滤波器和低通滤波器,查看示波器观察滤波器是否成功滤除500hz高频信号。打开matlab,进入simulink界面,找到正弦信号发生模块、加法运算模块、示波器以及滤波器设计工具(FDATOOL)拖进新建的.mdl文档中,按图4.2的方式连好各个模块即可得到示波器图形如图4.3.图4.2 simulink搭建的滤波器

2、图4.3 simulink仿真波形图4.3由上到下依次是50hz正弦波、500hz正弦波、两个正弦波的和信号经过带通滤波器以及两个正弦波的和信号经过低通滤波器后的信号。此图说明我们搭建的Simulink模型是正确的,而且可以明显看出低通滤波器成功滤掉了高频信号。4.2FIR数字滤波器在System generator环境下的仿真上一小节论述了在Simulink环境下的数字滤波器模型搭建并完成仿真验证,接下来要做的就是用System Generator搭建硬件执行程序实现仿真并验证。以下简单介绍所需要的模块以及参数设置。(1)System Generator模块System Generator模

3、块的参数设置里允许用户选择FPGA的硬件目标、系统时钟周期等选项。Simulink和FPGA系统仿真时间可以由System Generator的时钟设置来设置,滤波器模型中有很多小的模型例如信号发生模块、AD/DA模块等,Simulink的采样周期是这些小模块采样周期的最大公因子,这点可由System Generator来设定。而硬件中隐含的采样时间实际上比Simulink中可看到的仿真采样时间要快。基于此我们将FPGA时钟信号设定为10ns,Simulink采样周期设定为1s。(2)信号发生模块信号发生有很多方式,这里采用ROM产生一个500hz的正弦信号,DDS来产生一个50hz的信号。下

4、图分别为其时序电路设计:图4.4信号发生模块 (3)输入输出模块。图4.5输入模块把Simulink的浮点数转换成定点数,送给System generator的FPGA设计,功能相当于信号系统中的ADC定义顶层设计中的输入端口,对应HDL设计中的input ports。图4.6输出模块把System generator的FPGA设计的定点数转换成浮点数送给Simulink,功能相当于信号系统中的DAC;定义顶层设计中的输出端口,对应HDL设计中的output。(4)滤波器模型图4.7FDATOOL图标MATLAB的信号处理工具箱研发出一种编辑者自己设置滤波器参数,系统根据所设定的参数自动生成滤

5、波器的工具即FDATOOL。FDA是Filter Design and Analysis的首字母缩写词,它的中文名称应为滤波器设计与分析工具。FDA工具根据用户指定的滤波器频域响应要求自动设计滤波器阶数和权重系数,操作也很简便,可以用来快速设计与分析滤波器如幅度和相位响应和零极点图等。在Simulink库中找到该模块拖拽进模型设计中。双击进入该参数设置界面。以低通滤波器参数设计为例,各参数设置如下图所示:图4.8FDATOOL选项卡1.Current Filter Information(当前滤波器信息)图4.9当前滤波器信息Structure(结构):表明当前的滤波器结构是离散时间滤波器结构

6、Order(阶数):显示当前滤波器的阶数为124阶Stable(部分):表明这个滤波器是渐近稳定(是的)或不稳定(不是),极点在在单位圆上或圆外滤波器被认为是不稳定的。此时的滤波器设计是稳定地。Source(资源):表明当前滤波器是用FDA Tool设计的(设计)或从另一个资源导进的(导进)。Store filter(储存滤波器):按钮储存当前滤波器的设计到滤波器的管理。Filter Manager(滤波器管理):按钮打开滤波器管理对话框。2.Response Type(响应类型)图4.10相应类型栏3.Filter Order(滤波器的阶数)图4.11滤波器结束栏指定阶数的滤波器(Speci

7、fy order:指定阶数),最小阶滤波器(Minimum Order:最低阶数)。在满足规范要求下,被计算的滤波器拥有最小阶数。在Specify Order中填入所要设计的滤波器的阶数(n阶滤波器,Specify Ordern-1),如果选择Minimum Order则Matlab根据所设定滤波器类型自动采用所设置的最小值。4.Design Method(设计方式)图4.12滤波器设计方式栏选择FIR滤波器并采用等波纹设计法。5.Frequency Specifications(频率说明)图4.13频率采样栏在文本框中指定以下频率单位全部设置为Hz:Fs采样频率 为6250HzFpass(或

8、Wpass)通带截止频率为50HzFstop(或Wstop)阻带截止频率为150HzFrenquency Specifications选项,可以设置频带的各参数,包括采样频率fs和频带的截止频率。它的具体选项由所设计滤波器类型和设计方法决定。例如选择窗函数来设计数字滤波器时,不需要设置阻带参数但必须设置通带截止频率。6.Magnitude Specifications(幅度规格)图4.14幅度调整栏Magnitude Specifications选项,用来设置幅值衰减。图4-14显示通带截止频率处衰减1db,阻带截止频率范围内衰减60db。至此,一个针对此系统的低通滤波器就生成了。为了使生成的

9、能够导入设计中,需要将其滤波器的系数值先通过一个向量导入MATLAB的Workspace中以便调用。此时点击FDA TOOL菜单栏下的File,找到Export选项并单击打开,出现以下界面:图4.15导出数据选项卡通过Export对话框的参数设置即可将所设计的滤波器的系数导入到Workspace中,可以通过打开Matlab 中的Workspace窗口来确认是否成功导入。如图4.16系数B即为Workspace中低通滤波器系数参数。图4.17为其具体数值,由于滤波器阶数124阶所以系数为124+1,+1是因为系统函数中有个常数项,图4.17只截取前13个系数。图4.16workspace滤波器参

10、数图4.17滤波器系数具体数值带通滤波器设置参数导出系数方式和前面所讲的低通滤波器设计方式相同,具体数值见表4.1.模块名称设置选项Response type (滤波器类型)Bandpass (低通)Design method (设计方法)FIR Equiripple(FIR等波纹设计法)Fiter order(滤波器阶数)Minimum orderOptions(选项卡)20Frequency specifications(频率参数设置)Units-Hz;Fs-6250;Fpass-50;Fstop1-200;Fpass1-300;Fpass2-700;Fstop2-800Magnitude

11、 specifications(衰减度)Units-db;Apass-1;Astop1-60;Astop2-60表4.1带通滤波器参数设置其中Fstop1-下阻带截止频率、Fpass1-通带下限截止频率、Fpass2-通带上限截止频率、Fstop2-上阻带截止频率,而设计低通滤波器只需要定义下阻带截止频率、通带下限截止频率。设置好滤波器参数下来面临的问题就是怎样才能将上面的系数应用到设计当中。Xilinx Blockset目录中提供了与FDA TOOL工具的接口FIR Compiler.设计时只需将FDA Tool模块和FIR Compiler5.0模块拉入设计电路图,其中FDA TOOL模块

12、单独放置不用连接其他模块,相当于提供系数导入口,而FIR Compiler5.0模块可以直接用来连接电路功能上等价于一个实际的滤波器。此时由FDA TOOL设计的FIR滤波器系数可以直接传给FIR Compiler5.0模块作为有具体系数的FIR滤波器。这种做法省去了手工设计滤波器冗长而又机械的过程。System Generator库中的FIR Compiler5.0,如下图:图4.18 FIR compiler图标双击打开该模块进行属性设定。在Filter Specification选项卡中的系数向量一栏中会自动生成刚刚用FDA TOOL导出的滤波器系数,它是接受滤波器系数的模块,当然也可以

13、手动将Workspace中生成的系数填写入Coefficient Vector(系数向量的系数向量指定为一个单一的MATLAB行向量。抽头数是从MATLAB行向量的长度推断。前面已经通过使用FDA TOOL工具可以输入这些数据。Hardware Oversampling Rate:硬件采样率,过采样率决定并行度的硬件。硬件过采样格式为硬件过采样率,其值可根据自身要求设定,在此设定为250。其余都保持默认即可,低通滤波器规格选项卡具体设置如下图:图4.19规格选项卡实现选项卡的具体参数如下:Filter Architectura (滤波器结构)选择 Systolic_Multiply_Accum

14、ulate(基于乘法器/Xtreme DSP片级联的MAC架构)。其余参数如图:图4.20实现选项卡Detailed Implementation详细的实施标签具体参数设置如下:图4.21详细设置选项卡同样带通滤波器FIR Compiler5.0参数具体设置如下表:选项卡名称设置选项Coefficient vector(系数矢量)CHardware Oversampling Rate (过采样率)250Filter architecture(滤波器结构)Systolic_multiply_accumulateCoefficient structure(系数结构)Non_symmetricCoe

15、fficient width(系数宽度)16表4.2带通滤波器FIR Compiler5.0参数具体设置其余参数保持默认,这样带通滤波器也就设置完成了。设置好FDA TOOL和FIR Compilier5.0,就可以用System Generator搭建仿真电路。我们在Simulink Library Browser中浏览Xilinx Blockset,选择Basic Elements 选项。在元件窗口将所需要的模块图标拖拽到模型编辑器中。从Simulink目录下的Sources栏找到Constant单元,从同一目录下的Sinks栏目找到Scope单元,均放入电路编辑器。按下图方式连接电路:

16、图4.22System Generator搭建仿真电路示波器仿真出的波形:图4.23 System Generator仿真波形图4.23由上到下依次显示50hz正弦波、500hz正弦波、两个正弦波的和信号经过带通滤波器以及两个正弦波的和信号经过低通滤波器后的信号。由图可以发现用System Generator仿真出来的结果和Similink结果基本一致,不仅说明了滤波器实现了滤波功能也为后期在硬件平台上的验证提供可能。4.3FIR数字滤波器在FPGA上的实现在前面4.2小节中,实现了在System Generator环境下对该滤波器的仿真,这也说明此套方案是可以在FPGA上实现。考虑到Simu

17、link和FPGA输出数据类型有所区别,所以必须在原有System Generator的滤波器模型图的基础上添加DA模块。本次毕设采用了四路DA,下图为其时序电路:图4.24 DA时序电路将DA模块添加到编辑栏中,调整输入输出数据类型即可得到如下数字滤波器的FPGA仿真电路图4.24System Generator完整电路成功编译后通过双击System Generator图标,单击Compilation选择生成Bitstream,点击Generate就可以自动生成比特流文件。XINLIX公司提供的Adept软件可以将生成的比特流文件下载到FPGA中,按图4.25连接硬件电路,如下图所示:图4.

18、25FPGA硬件连接电路下图为示波器仿真图形:图4.26示波器输出波形图4.26由上到下依次显示50hz正弦波、500hz正弦波、两个正弦波的和信号经过带通滤波器后的信号、两个正弦波的和信号经过低通滤波器后的信号。通过比较Simulink、System Generator和FPGA三个仿真图可以得出,此套设计流程是可行的,可以在FPGA上实现了一个FIR数字滤波器的设计。4.4如何优化数字滤波器性能在设计滤波器采用FDA TOOL工具时最大一个优点就是当设定好滤波器参数,例如:通带截止频率、阻带截止频率、通带最大衰减系数、阻带最小衰减系数,设定好参数,点击Design Filter系统会自动计算出合适的滤波器阶数,这也说明,一个滤波器阶数主要由这几个参数来决定。理论上讲阶数N越大,这些参数波动范围就会变小也就是更精

温馨提示

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

评论

0/150

提交评论