ImageVerifierCode 换一换
格式:DOC , 页数:51 ,大小:2.08MB ,
资源ID:3869333      下载积分:16 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3869333.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(用VHDL语言编程实现FIR滤波器复习课程.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

用VHDL语言编程实现FIR滤波器复习课程.doc

1、 用VHDL语言编程实现FIR滤波器 精品资料 摘要 本课题是基于VHDL的数字滤波器的设计与实现,要求完成数字滤波器的VHDL语言的模块描述,通过MAX+PLUSII进行各模块及顶层的仿真,并下载实现数字滤波器功能。本设计采用窗函数法实现线性FIR数字滤波器的设计,并以一个十六阶低通FIR数字滤波器的实现为例说明了设计过程。首先,根据FIR数字滤波器的基本原理设计出系统总体框图;其次,用窗函数法计算出特性参数;接着用VHDL语言编写各模块的程序并仿真;最后,按照系统总体框图连接各模块实现数字滤波器的功能。实现滤波器的关键——乘加运算,给出了将乘加运算转化为移位相加的算

2、法,并采用了CSD码与并行加法结构来提高速度。设计的电路通过软件进行了验证,结果表明:电路工作正确可靠,速度快,能满足设计要求。 关键词:FIR滤波器,VHDL,窗函数,CSD码 Abstract This subject is design and realization of digital filter based on VHDL. It requires to complete the description of digital filter module which is based on VHDL language , simulate each module an

3、d the top layer using MAX+PLUSII and download to realize function of digital filter. This design uses window function method to realize the design of linear FIR digital filter and illustrate the design process according to the realization of a 16 steps low pass FIR digital filter. Firstly, design th

4、e total system diagram according to the basic principle of FIR digital filter; Secondly, use window function method to calculate characteristic parameters; Then compile and simulate the program of each module using VHDL language; Finally, connect the modules according to the whole system diagram to

5、realize function of digital filter. The key of realizing FIR filter——multiply and add operation, an operation of changing multiply and add operation to shift add will be given, besides, canonic signal digital and parallel add structure will be adopted to increase speed. The circuit that is designed

6、is proved through the software. The result shows that the circuit works correctly, reliably and quickly, meeting the designing requirement. Keywords: FIR digital filter, VHDL, Window Function, Canonic Signal Digital (CSD) 目录 第一章 绪论 1 一、 课题的提出 1 (一) 课题的任务及内容 1 (二) 课题实现的可行性 1 二、国内外的研究情况 2 第二章

7、课题的初步设计 4 一、FIR滤波器的基本原理 4 (一) FIR滤波器的概述与结构 4 (二) FIR滤波器的线性相位条件 5 (三) FIR滤波器的幅度特性 6 (四) FIR滤波器的零点特性 8 二、窗函数设计法 8 三、系统框图 13 四、设计特点 13 第三章 用VHDL语言编程实现FIR滤波器 16 一、参数设计 16 二、CSD码 19 (一) 传统的CSD码介绍 19 (二) 本设计中所使用的CSD码 20 三、设计框图 21 第四章 程序实现及调试过程 24 一、MAX+PLUSII软件介绍 24 二、VHDL语言介绍 24 三、VHDL的

8、实现及各模块仿真结果 25 (一) VHDL的实现 25 (二) 各模块仿真结果 25 第五章 结果分析 28 第六章 结论及改进 32 致谢 33 参考文献 34 附录 35 仅供学习与交流,如有侵权请联系网站删除 谢谢48 第一章 绪论 一、 课题的提出 (一) 课题的任务及内容 本课题的任务是完成数字滤波器的VHDL语言的模块描述,并通过MAX+PLUSII进行各模块及顶层的仿真,并下载实现数字滤波器功能。 主要内容有:(1)完成基于VHDL的并行FIR数字滤波器的设计。 (2)用MAX-PLUSII编程实现。

9、 (3)完成数字滤波器算法的仿真。 (二) 课题实现的可行性 数字滤波器在需要进行数字信号处理的许多系统中起着重要作用,实际上,语音处理设备、图像处理设备和数字通信系统中都使用数字滤波器。数字滤波器能满足对幅度和相位特性的严格要求,避免了模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。模拟滤波器是数字滤波器的基础,而现在,更多的利用数字滤波器代替模拟滤波器作为频率选择性滤波器。从滤波器的单位冲激响应来看,滤波器可分为无限长单位冲激响应的IIR滤波器和有限长单位冲激响应的FIR滤波器。有限冲激响应(FIR)滤波器能在设计任何频率特性的同时保证严格的线性特性相位。 目前FIR滤波器的实

10、现方法有三种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要。使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度必然不快。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。但长期以来,FPGA一直被用于系统逻辑或时序控制上,很少有信号处理方面的应用,其原因主要是因为在FPGA中缺乏实现乘法运算的有效结构。现在这个问题得到了解决,使FPGA在数字信号处理方面有了长足的发展。 当今社会是数字化的社会,是数字

11、集成电路广泛应用的社会。数字集成电路本身在不断地进行更新换代。随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。是现代电子工程师的必备工具。 现场可编程门阵列FPGA(Field Programmable Gate Array) 是一种常见的高密集度可编程逻辑器件,它的特点是速度快

12、功耗低,通用性好,适应性强,不仅可以代替传统的数字集成电路,而且还可以代替一般的PLD器件和半定制的ASIC,特别是用于复杂系统的设计。使用FPGA可以非常大的减小硬件规模,降低设计成本,缩短设计周期,提高系统的可靠性、灵活性和保密性。FPGA已经成功的用于计算机硬件、工业控制、遥感遥测、雷达声纳、数据处理、智能仪表、广播电视和医疗电子等领域中。在现代通信中,FPGA已经成功的用作程控交换、数字复接、编码译码和调制解调等。 ALTERA公司的FLEX10K是工业界第一个嵌入式的PLD,具有高密度、低成本、低功率等优点。器件的主要结构特点是除主要的逻辑阵列块(LAB)之外,首次采用了嵌入阵列

13、块(EAB),每个阵列块包含8个逻辑单元(LE)和一个局部互连。嵌入阵列块(EAB)是FLEX10K系列器件在结构设计上的一个重要部件,它是一个输入端口和输出端口都带有寄存器的一种灵活的RAM块,嵌入阵列块(EAB)组成的规模和灵活性对比较多的内存是合宜的。功能包括乘法器、向量的标准和误差校正电路等。在应用中,这些功能又能够联合完成数字滤波器和微控制器的功能。 二、国内外的研究情况 FIR滤波器的实现方法有三种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。 在国际上,用FPGA实现FIR滤波器的方法也有很多种,如用传统的乘累加结构、DA(分布式)算法、查表法、位串行法

14、等等。当FIR滤波器的阶数为N时,传统的累加结构需要进行N次乘法和N-1次加法操作来实现累加之和,可以发现,当N很大时,每计算一个点,则需要很长的延迟时间。由于FPGA具有查找表结构,分布式算法在滤波器的设计方面显出了很高的效率,可大大提高信号的处理效率,对于位宽较小的数据来说,分布式算法的执行速度远高于乘累加运算,但是如果抽头系数N过多,则DA表的规模将十分庞大,这是因为LUT的规模随着地址空间的变化(也就是N的增加)而呈指数增加,当N过大时,一个FPGA器件就不够用了。一种巧妙利用FPGA的查找表,将乘法转化为查找表的DA算法,并用ALTERA的FLEX10K器件分别实现了一个8位16阶的

15、穿行于并行FIR滤波器,系统频率分别达到63MHz与101MHz,采样速度分别达到7MSPS与101MSPS。而DSP实现的FIR滤波器只能达到5MSPS,明显低于FPGA。用传统的位串行方法实现的一个8阶8位FIR滤波器,也只能达到5MSPS,明显低于串行式DA方法。如果利用整数的CSD的表示和最优表示,可以用较小的代价和与加法器级数无关的处理速度实现整数乘法运算,能比DA方法用更少的逻辑资源实现FIR滤波器。随着FPGA集成规模的不断提高,许多复杂的数字运算已经可以用FPGA实现系统的设想即将变为现实。 第二章 课题的初步设计 一、FIR滤波器的基本原理 (一) FIR滤波器的概述与

16、结构 从滤波器的单位冲激响应来看,滤波器可以分为无限长单位冲激响应的IIR滤波器和有限长单位冲激响应FIR滤波器。由于IIR滤波器的传递函数存在零之外的零点,所以单位冲激响应是无限持续的。而有限长单位脉冲响应(FIR)滤波器的系统函数只有零点,除原点外,没有极点,因而FIR滤波器总是稳定的。如果它的有限长单位脉冲响应是非因果的,总能够方便的通过适当的移位得到因果的单位脉冲响应,所以FIR滤波器不存在稳定性和是否可实现的问底题。它的另一个突出的优点,是在满足一定的对称条件下,可以实现严格的线性相位,这一点IIR滤波器是难以做到的。由于线性相位特性在工程实际中具有非常重要的意义,如在数据通信、图

17、像处理等应用领域,往往要求信号在传输和处理过程中不能有明显的相位失真,因而线性相位FIR滤波器得到了广泛的应用。 IIR滤波器设计中可以利用模拟滤波器的设计结果,采用各种变换法,这些对FIR滤波器设计是不适用的,这是因为IIR滤波器的系数函数是有理分式的形式,而FIR滤波器的系统函数只是Z-1的多项式。 FIR滤波器的单位冲激响应h(n)是一个有限长序列。它的传递函数和差分方程有如下形式: (2-1) (2-2) 有限长冲

18、激响应(FIR)滤波器有以下特点: (1) 系统的单位冲激响应h(n)在有限个n值处不为零; (2) 系统函数H(z)在|z|>0处收敛,极点全部在z=0处(稳定系统); (3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。 FIR滤波器实现的基本结构有:       (1) FIR滤波器的直接型结构;      (2) FIR滤波器的级联型结构;     (3) FIR滤波器的频率抽样型结构;     (4) FIR滤波器的快速卷积型结构; 滤波器最简单的构成方法就是图2.1所示的直接型结构。图中Z-1表示信号延迟

19、一个采样周期的单位延迟元件。x(n)是滤波器的输入,y(n)滤波器的输出。 图2.1 FIR数字滤波器的直接型结构 (二) FIR滤波器的线性相位条件 FIR滤波器的单位脉冲响应h(n)是有限长的(0≤n≤N-1),其Z变换为 (2-3) 这是z-1的(N-1)阶多项式,在有限Z平面上有(N-1)个极点都位于Z平面原点z=0处。 FIR滤波器的DTFT为 (2-4) 式中H(ω)是正或负的实函数。φ(ω)是的相频特性,如果φ(ω)满足线性相位的条件,即 φ(ω)=-αω, -π

20、≤ω≤π (2-5) 这里的α是一常数,则将(2-5)式代入(2-4)式得 (2-6) 显然,等式中间和等式右边的实部与虚部应当各自相等,同样实部与虚部的比值应当相等,从而得到 (2-7) 将上式两边交叉相乘,再将等式右边各项移到左边,应用三角函数的恒等关系,得 (2-8) 满足上式的条件是 (2-9) 式(2-9)说明: (1) 对于任何N值可以获得相位延迟为的线性相位特性,α

21、为单位脉冲响应的中点; (2) h(n)必须以此中点呈偶对称特性。 另外一种情况是,除了上述的线性相位外,还有一附加的相位, (2-10) 利用(2-8)式类似的关系,可以得出新的解答为 (2-11) 满足(2-11)式条件的滤波器,它的单位脉冲响应将奇对称于中点。 (三) FIR滤波器的幅度特性 下面分四种情况分别讨论H(ω)的特点。 (1) 当h(n)偶对称,N为奇数时: (2-12) 幅度函数的特点:H(ω)对ω = 0, π, 2π呈偶对称。

22、2) 当h(n)偶对称,N为偶数时: (2-13) 幅度函数的特点: 当ω=π时,H(π)在z=-1处有一个零点,H(ω)对ω=π呈奇对称; 如果滤波器在ω=π处幅度不为零(如高通滤波器), 则不能用这种滤波器。 (3) 当h(n)奇对称,N为奇数时: 在这种情况下h(n)的中间项 必须为零。 (2-14) 幅度函数的特点: H(ω)在ω=0, π, 2π处都为零,也就是H(z)在Z=+1处为零; H(ω)对ω=0, π, 2π都呈奇对称。 (4) 当h(n)奇对称,N为偶数时: (2-15)

23、幅度函数的特点: H(ω)在ω=0,2π处为零,即H(z)在z=1处为零点; H(ω)对ω=0,2π呈奇对称,对ω=π呈偶对称。 (四) FIR滤波器的零点特性 由于线性相位FIR滤波器的单位脉冲响应具有对称特性,即h(n)=+h(N-1-n) 则 (2-16) (其中m=N-1-n) 因此,线性相位FIR滤波器的系统函数具有以下特点: (2-17)  可见,若是H(z)的零点,则也一定是H(z)的零点。又由于当是实数时,的零点必成共轭对出现,所以及也一定是H(z)的零点。因而

24、线性相位FIR滤波器的零点必是互为倒数的共轭对。 Zi的位置有四种可能的情况: (1) Zi既不在实轴上,也不在单位圆上,则零点是互为倒数的两组共轭对。 (2) Zi不在实轴上,但是在单位圆上,则共轭对的倒数是它们本身,故只有一组共轭对。 (3) Zi在实轴上而不在单位圆上,只有倒数部分,无复共轭部分。 (4) Zi既在实轴上又在单位圆上,有两种可能,z=1或z=-1。 二、窗函数设计法 一般设计过程是先给定所要求的理想滤波器频率响应,然后设计一个FIR滤波器,它的频率响应用它来逼近理想的。这种逼近中最直接的方法是在时域中,用FIR滤波器的单位脉冲响应h(n)去逼近理想的单位脉冲

25、响。因而,先由的IDTFT导出 (2-18) 由于是矩形频率特性,故一定是无限长的序列,且是非因果的。然而我们要设计的是有限长的FIR滤波器,所以要用有限长序列h(n)来逼近无限长序列。 常用的方法是用有限长度的窗函数ω(n)来截取,即 (2-19) 这里以一个截止频率为的线性相位理想低通滤波器为例,设低通相位特性的常系数为α,即 (2-20) 则 (2-21) 它是中心在α的偶对称的无限长非因果序列.要

26、得到有限长的序列,,最简单的办法,就是以α为对称中心截取一段长度为N的序列,为了保证h(n)是因果序列,可以选择 (2-22) 这种直接截取好比是用一个矩形窗去和相乘,即 (2-23) 这里窗函数就是矩形序列,加窗以后对理想低通滤波器的频率响应将产生什么样的影响呢?根据在时域是相乘关系,在频域则是卷积关系: (2-24) 其中, 为矩形窗谱,是FIR滤波器频率响应。 则实际FIR滤波器的幅度函数H(ω)为 (

27、2-25) 可见对实际FIR滤波器频率响应的幅度函数H(ω)起影响的是窗函数频率响应的幅度函数,通过频域卷积过程看的幅度函数H(ω)的起伏现象,可知,理想滤波器的单位脉冲响应经窗函数加权后,对幅度特性产生的主要影响有: (1) 理想的在通带截止频率处的间断点变成了连续曲线,从而使H(ω)出现一个过渡带,其宽度等于窗函数的主瓣宽度。 (2) 由于窗函数旁瓣的作用,使幅频特性出现波动。旁瓣所包围的面积越大,通带波动增加,阻带衰减减少。 (3) 增加截取长度N,则在主瓣附近的窗的频率响应为 (2-26) 可见,改变N,只能改变窗谱的主瓣宽度,改变

28、ω坐标的比例以及改变的绝对值大小,但不能改变主瓣与旁瓣的相对比例,这个相对比例由来决定,或者说由窗函数的形状来决定。因而截取长度增加时,只会减小过渡带宽度,因而不会改变肩峰的相对值。 矩形窗截断产生的肩峰,增加了通带内的波动和减少了阻带的衰减。怎样才能改善这两项指标呢?这只能着手于改变窗口函数的形状。 从以上讨论中看到,一般希望窗口函数满足两项要求: (1) 主瓣宽度要小,以获得较陡的过渡带。 (2) 与主瓣的幅度相比,旁瓣应尽可能的小,以减小带内、带外波动的最大振幅。 一般来说,以上两点很难同时满足。当选取主瓣宽度很窄时,旁瓣的分量势必增加,从而带内带外的波动也增加了;当选取最小的

29、旁瓣幅度时,降低了带内带外的波动,但过渡带的陡度减小。所以,实际采用的窗函数其特性往往是它们的折衷,即在保证主瓣宽度达到一定要求的前提下,适当牺牲主瓣宽度来换取旁瓣波动的减小。 常用的几种窗函数及比较 下面讨论几种常用的窗口函数。 1) 矩形窗 (2-27) 2) 汉宁窗(Hanning),又称升余弦窗 (2-28) 利用DTFT的调制特性并代入三角函数的欧拉公式,得 (2-29) 当N>>1时,N-1≈N,因此幅度函数近似为

30、 (2-30) 这三部分之和,使旁瓣相互抵消,能量集中在主瓣,但代价是主瓣宽度比矩形窗的主瓣宽度增加一倍。 3)汉明窗(hamming),又称改进的升余弦窗 将汉宁窗改进,可以得到旁瓣更小的汉明窗,形式为 (2-31) 其频率响应的幅度函数为 (2-32) 结果可将99.963%的能量集中在窗谱的主瓣内。与汉宁窗相比,主瓣宽度相同为,但旁瓣幅度更小,旁瓣峰值小于主瓣分峰值的1%。 4)布莱克曼窗(Blackman),又称二阶升余弦窗 为了更进一步抑制旁瓣,可再加上余弦的二次谐波分量,得到布莱克曼窗:

31、 (2-33) 其频谱的幅度函数为 (2-34) 这样可以得到更低的旁瓣,但是主瓣宽度却不得不进一步加宽到矩形窗的三倍。 5)凯塞窗 以上四种窗函数,都是以增加主瓣宽度为代价来降低旁瓣。凯塞窗则可以在主瓣宽度与旁瓣衰减之间自由的选择。 凯塞窗是由零阶贝塞尔函数构成的 (2-35) β是一可以自由选择的参数,β越大,则ω(n)窗越窄,而频谱的旁瓣越小,但主瓣宽度也相应增加。因而改变β值就可以对主瓣宽度和旁瓣衰减进行选择,β=0相当于矩形窗。 几种窗函数的比较 图2.2给出了四种窗函数的序列包络形状。 图2.2 四种常用的窗函数

32、 (1) 矩形窗;(2) 汉宁窗;(3) 汉明窗;(4) 布莱克曼窗 图2.3 窗口函数频谱(N=51,A=20lg|W(ω)/W(0)|) 从(a)→(d),旁瓣的衰减逐步增加,主瓣相应加宽(用对数可放大小旁瓣)。 图2.4 在同一指标下用四种窗口设计的LP滤波器频率特性(N=51,wc=0.8π) 可见,矩形窗设计的过渡带最窄,但阻带最小衰减也最差,仅-21dB;布莱克曼窗设计的阻带最小衰减最好,达-74dB,但过渡带最宽,约为矩形窗设计的三倍。几种窗口函数的具体性能比较见表2.1。 表2.1. 几种窗口函数的具体性能比较 窗函数 主瓣宽度 旁瓣峰值衰减(dB)

33、 阻带最小衰减(dB) 矩   形 4π/N -13 -21 汉   宁 8π/N -31 -44 汉   明 8π/N -41 -53 布莱克曼 12π/N -57 -74 三、系统框图 根据上面的关于FIR滤波器结构的介绍,采用直接型结构,可以画出滤波器的系统框图,如图2.5。 图2.5 系统框图 四、设计特点 FIR滤波器被称为有限长脉冲响应滤波器,它的单位脉冲响应h(n)只有有限个数据点。输入信号经过线性时不变系统输出的过程是一个输入信号与单位脉冲响应进行线性卷积的过程,即: (2-36) 式中,x(n)是

34、输入信号,y(n)是卷积输出,h(n)是系统的单位脉冲响应。可以看出,每次采样y(n)需要进行N次乘法和N-1次加法操作实现乘累加之和,其中N是滤波器单位脉冲响应h(n)的长度。 本课题是要设计一个16阶8系数的FIR滤波器,则N=16,x(n),h(n)均用8位二进制数表示。也就是说每次采样y(n)需要进行16次乘法和15次加法。 假设有16个数据x0,x1,x2,……,x14,x15,每个数据都用8位二进制数表示,现要将这16个数相加。如果用传统的累加结构,就需要15个加法器。如果每次加法都用一个时钟信号触发的话,就需要15个时钟周期。而且,每计算一次加法需要一定的时间,则15次加法需

35、要很长的延迟时间,这不利于提高信号的处理效率。传统的累加结构如图2.6所示: 图2.6 传统的累加结构 但是,如果先将16个数据分为8组,x0与x1,x2与x3……x14与x15。这样的话,8组数据就可以同时进行加法,只需要一个时钟周期。再将上一步所计算得到的8个数据分组,分为四组,进行加法。以此类推,直到算完为止,这样就需要15个加法器,但只需4个时钟周期。与传统累加结构相比,并行加法结构大大减少了计算时间,提高了计算速度。并行加法结构如图2.7所示: 图2.7 并行加法结构 在本次设计中,另一个特点就是将FIR的系数用CSD码表示,将乘法运算转化为移位相加运算。由于两个

36、8位二进制数相乘,所需要的时间及硬件资源较多,不利于提高运算的速度,因此,用移位相加运算来代替乘法运算。 通常情况下,一个数可以表示为2的整数次方的和或者差的形式,采用这种方法表示的数叫做SD数(Signed-Digit Number)。虽然一个数的表示形式不唯一,但是存在一种最小权重的表示形式,这种表示形式叫做CSD(Canonical Signed-Digit)。一个给定的数的CSD表示形式是唯一的。CSD表示相对于标准二进制表示的改进在于引入了负的符号位,从而降低了非零位个数,大大降低了逻辑资源的占用。CSD可以用较小的代价和与加法器级数无关的处理速度实现整数乘法运算。 第三章 用V

37、HDL语言编程实现FIR滤波器 一、参数设计 (一) 设计指标 下面以一个十六阶FIR低通滤波器为例说明设计方法和过程。 滤波器类型:FIR滤波器 类 型:低通 阶 数:16阶 采样频率:100kHz,精度<=+1 截止频率:5kHz 输入数据宽度:8位 输出数据宽度:8位 (二) 参数计算 采用窗函数设计法来计算FIR的系数。 设计过程是先给定所要求的理想低通滤波器频率响应,然后设计一个FIR滤波器,用它的频率响应来逼近理想的。这种逼近中最直接的方法是在时域中,用FIR滤波器的单位脉冲响应出h(n)去逼近理想的单位脉冲响。因而,先由的IDTFT导出

38、 (3-1) 由于是矩形频率特性,故一定是无限长的序列,且是非因果的。然而我们要设计的是有限长的FIR滤波器,所以要用有限长序列h(n)来逼近无限长序列。常用的方法是用有限长度的窗函数ω(n)来截取,即 (3-2) ω(n)是有限长序列,当n>N-1及n<0时ω(n)=0。 这里仅以冲激响应对称,即h(n)=h(N-1-n),n=0,1,……N-1,时进行说明。 低通滤波器的频率响应如下式所示: (3-3) 其中ω为对抽样频率归一化的频率,ωc为归一化截

39、止频率。(由设计指标可知,采样频率为100KHz,截止频率为5KHz,将采样频率归一化为2π,则截止频率归一化为0.1π,即:ωc=0.1π) 利用反傅立叶变换公式求出与式(3.3)对应的冲激响应,如式(3.4) 所示: (3-4) 由于要求设计一个16阶的FIR,则N=16。 根据式(3-4)可计算得如下: (0)=(15)=0.030025765 (4)=(11)=0.081074297 (1)=(14)=0.04365539 (5)=(10)=0.090077296 (2)=(13)=0.057190986 (6)=(9)=0

40、096388641 (3)=(12)=0.069900094 (7)=(8)=0.099639786 在本次设计中我使用的窗函数为汉宁窗,根据第二章第二节的内容可知,汉宁窗的表达式为: (3-5) 由于要求设计一个16阶的FIR,则N=16。可计算出汉宁窗的系数如下: ω(0)= ω(15)=0 ω(4)= ω(11)=0.552264231 ω(1)= ω(14)=0.043227271 ω(5)= ω(10)=0.75 ω(2)= ω(13)=0.165434696 ω(6)= ω(9)=0.904508497 ω

41、3)= ω(12)=0.345491502 ω(7)= ω(8)=0.9890738 根据,可计算出的符合设计指标的线性相位16阶FIR数字低通滤波器的特性参数如下: h(0)=h(15)=0 h(4)= h(11)=0.044774434 h(1)=h(14)=0.001887103 h(5)= h(10)=0.067557972 h(2)=h(13)=0.009461373 h(6)= h(9)=0.087184344 h(3)=h(12)=0.024149888 h(7)= h(8)=0.098551101 为了设计的方便,可将上述数据扩大,由于滤波器输出

42、若h(n)扩大1000倍,则y(n)也扩大1000倍,最后只要将y(n)除以1000即可,但要计算y(n)除以1000十分复杂,因此,可将h(n)扩大1024倍,即,这样只需将y(n)除以1024,即右移10位即可。 将h(n)乘以1024,得到以下数据 h(0)=h(15)=0 h(4)= h(11)=45.84902042 h(1)=h(14)=1.932393472 h(5)= h(10)=69.17936333 h(2)=h(13)=9.688445952 h(6)= h(9)=89.27676826 h(3)=h(12)=24.72948531 h(7)=

43、 h(8)=100.9163274 将上述数据取整后 h(0)=h(15)=0 h(4)= h(11)=46 h(1)=h(14)=2 h(5)= h(10)=69 h(2)=h(13)=10 h(6)= h(9)=89 h(3)=h(12)=25 h(7)= h(8)=101 将其化为二进制数(8位) h(0)=h(15)=00000000 h(4)= h(11)=00101110 h(1)=h(14)=00000010 h(5)= h(10)=01000101 h(2)=h(13)=00001010 h(6)= h(9)=01011001 h(3)

44、h(12)=00011001 h(7)= h(8)=01100101 二、CSD码 (一) 传统的CSD码介绍 通常情况下,一个数可以表示为2的整数次方的和或者差的形式,采用这种方法表示的数叫做SD数(Signed-Digit Number)。一个绝对值小于1的数x可以表示成如下的形式: (3-6) 其中,。通常一个数的表示形式并不唯一。例如0.375可以有以下几种表示形式: 0.375 =2-2+2-3 (3-7) 0.375 =2-1-2-3

45、 (3-8) 0.375 =20-2-1-2-3 (3-9) 0.375 =20-2-1-2-2+2-3 (3-10) 式(3-7),(3-8),(3-9),(3-10)的权重分别为2,2,3,4。 虽然一个数的表示形式不唯一,但是存在一种最小权重的表示形式,这种表示形式叫做CSD(Canonical Signed-Digit)。 数的CSD表示是一种三元数值系统,即将数用(-1, 0, 1)来进行表示,对于任

46、一具有最少-1和1比特位数的二进制数CSD编码表示具有其唯一形式。因此,CSD编码的主要应用是在乘法运算中减少部分积的乘积项,从而减少所用加法器/减法器的数量,一个n-bit的乘法运算的加/减和移位的操作次数不会超过n/2,随着字长的增加其平均数减少到n/3[4,5]。  一个数,如果对于所有,= 0,1,or-1且对于所有 ,满足,则称为的CSD编码表示。例如,=-102=-010-010(-代表-1)为-102的CSD编码表示,而=0--0 -010则为的非CSD编码表示。 由于一个数的CSD表示中的非0比特位总是不相邻的,如果用一个2-bit的二进制数表示一个CSD码中的非0比特数

47、01代表+1,11代表-1(最高位通过符号位扩展实现),则可以将一个数的CSD编码表示转换为二进制CSD编码(BCSD)表示。例如,一个CSD表示数=- 010- 010(-代表-1),其对应的BCSD编码表示为=11 01 11 010。二者具有一一对应关系,因此,如果得到了一个二进制补码数的BCSD编码表示,则可以通过上面的逆过程求得对应数的CSD表示。根据上述原理,一种将二进制补码数变换得到其CSD编码表示的过程描述为:首先将二进制补码表示转换为称为BCSD编码的表示,然后转换BCSD编码得到数的CSD编码表示。 (二) 本设计中所使用的CSD码 一个整数X与另一整数Y的乘积的二进

48、制表示可以写成: (3-11) 对于标准二进制,由于时的对应项Y并不参与累加运算,所以可以用另一种表示方法使非零元素的数量降低,从而使加法器的数目减少,降低硬件规模。有符号数字量(SD)有三重值{0,-1,+1},如果任意两个非零位均不相邻,即为标准有符号数字量(CSD)。 可以证明CSD表示对给定数是唯一的并且是最少非零位的。CSD表示相对于标准二进制表示的改进在于引入了负的符号位,从而降低了非零位个数,大大降低了逻辑资源的占用(大约平均降低33%的逻辑资源)。当用硬件实现时,常常限制系数位数,即每个系数与N个正(负)2的幂次之和近似。标准二进制数在整

49、数轴上是紧密和均匀分布的,而CSD码是非均匀分布的,其对实系数的量化误差比标准二进制大,虽然增加N可以减小量化误差,但是会增大逻辑资源的消耗;而且CSD表示无法应用流水线结构,从而降低处理速度。 那如何将一个整数转化为CSD码?首先,将这个整数化为二进数X。 将一个二进制数(8位)转化为CSD码的算法如下: (1) 判断该二进数是否有连续3个或3个以上的1。如果有,则可将其化为CSD码;如果没有,则不必将其化为CSD码。 (2) 设该二进数,如果X有连续3个或3个以上的1,即, ,则X的CSD码等于X加2i。 在上节中已将FIR滤波器的特性参数计算出来了,可见只有h(4)与h(1

50、1)具有3个连续的1,可将其化为CSD码: h(4)=h(11)=00101110+2=00101110+00000100=00110010 图3.1 h(4)的二进制与CSD实现 由图3.1可以看出,对于h(4)或者h(11)来说,当用二进制数表示时需要3个加法器,而用CSD码则只需要2个加法器,减少了加法器的个数。 三、设计框图 根据FIR滤波器的特性参数,可画出H1、H2……H7的框图如下图3.2至图3.8 图3.2 H1(H14)的结构图 图3.3 H2(H13)的结构图 图3.4 H3(H12)的结构图 图3.5 H4(

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服