基于FPGA的FIR滤波器设计66.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA的FIR滤波器设计66

数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置。数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。在数字信号处理中,FIR数字滤波器是最常用的单元之一。它用于将输入信号x[n]的频率特性进行特定的修改,转换成另外的输出序列y[n]。FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。 (FIR)FIR滤波器总是稳定的。如果他的单位脉冲响应是非因果的,总能够方便的通过适当的移位得到因果的单位脉冲响应,所以FIR滤波器不存在稳定性和是否可实现的问题。它的另一个突出的优点是在满足一定的对称条件时,可以实现严格的线性相位。由于线性相位滤波器不会改变输入信号的形状,而只是在时域上使信号延时,因此线性相位特性在工程实际中具有非常重要的意义,如在数据通信、图像处理等应用领域,往往要求信号在传输和处理过程中不能有明显的相位失真,因而线性相位FIR滤波器得到了广泛的应用。 长度为M的因果有限冲激响应滤波器由传输函数H(z) 它是次数为M-1的z-1的一个多项式。在时域中上述有限冲激响应输入输出关系为: 其中y(n)x(n)M的有限冲激响应滤波器由M个系数描述,并且需要M个乘法器和(M-1)个双输入加法器来实现。 直接型 寄存器模块 寄存器用于寄存一组二值代码,只要求它们具有置1、0的功能即可。在本设计中用D触发器组成寄存器,实现寄存功能。本设计中使用带异步复位rst端的D触发器,当rst=1时,输出信号q=0,当rst=0且上升沿脉冲到达时q=d。 程序如下: LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY ieee; USE ieee.std_logic_1164.all; ARCHITECTURE dff16 OF dff16 IS BEGIN PROCESS (rst,clk) BEGIN IF(rst=1)THEN q=(OTHERS=0); ELSIF(clkEVENT AND clk=1)THEN q=d; END IF; END PROCESS; END dff16; 仿真结果如图所示: 图 寄存器仿真结果 加法器模块 实现两个有符号数的相加运算。即将输入的两数,在时钟脉冲到来时相加运算,输出结果。 在本设计中共有8个两个10位有符号数相加产生一个11位有符号数的加法器、一个18位和19位有符号数相加产生20位有符号数的加法器、一个两个20位有符号数相加产生一个21位有符号数的加法器、一个两个19位有符号数相加产生一个20位有符号位数的加法器、一个20位和21位有符号数相加产生22位有符号数的加法器,以及一个20位和22位有符号数相加产生23位有符号数的加法器电路。 其中一个20位和22位有符号数相加产生23位有符号数的加法器电路为最后一级,所以在加法器电路中在引入低位舍去功能只保留最终10位输出,最终保留10位输出采用了直接取输出23位数的高十位的方法,因此在输出中近似等于除掉了2^13即8192以后的结果。 10位有符号数相加产生一个11位有符号数的加法器设计: LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY sum101011 IS PORT(a,b: IN SIGNED(9 DOWNTO 0); clk: IN STD_LOGIC; s:OUT SIGNED(10 DOWNTO 0)); END SUM101011; ARCHITECTURE sum101011 OF sum101011 IS BEGIN PROCESS(clk) BEGIN IF(clkEVENT AND clk=1)THEN s=(a(9)a)+(b(9)b); END IF; END PROCESS; END sum101011; 仿真结果如图15所示: 图15 两10位相加产生11位加法器仿真结果 18位和19位有符号数相加产生20位有符号数的加法器

文档评论(0)

ipad0a + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档