《2022年FPGAFIR滤波器设计方案.docx》由会员分享,可在线阅读,更多相关《2022年FPGAFIR滤波器设计方案.docx(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源封面欢迎下载精品学习资源作者: PanHongliang仅供个人学习数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置;数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到转变信号频谱的目的;数字滤波器是一个离散系统,该系统能对输入的离散信号进行处理,从而猎取所需的有用信息;在数字信号处理中 , FIR 数字滤波器是最常用的欢迎下载精品学习资源单元之一;它用于将输入信号x n的频率特性进行特定的修改 , 转换成另外的输出序列 y n ;FIRFinite Impulse Response滤 波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以
2、在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳固的系统;因此, FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用;有限长脉冲响应( FIR)滤波器的系统函数只有零点,除原点外,没有极点,因而 FIR 滤波器总是稳固的;假如他的单位脉冲响应是非因果的,总能够便利的通过适当的移位得到因果的单位脉冲响应,所以FIR 滤波器不存在稳固性和是否可实现的问题;它的另一个突出的优点是在中意确定的对称条件时,可以实现严格的线性相位;由于线性相位滤波器不会转变输入信号的形状,而只是在时域上使信号延时,因此线性相位特性在工程实际中具有特殊重要的意义,如在
3、数据通信、图像处理等应用领域,往往要求信号在传输和处理过程中不能有明显的相位失真,因而线性相位 FIR 滤波器得到了广泛的应用;长度为 M 的因果有限冲激响应滤波器由传输函数 H(z)描述:它是次数为 M-1 的 z-1 的一个多项式;在时域中上述有限冲激响应输入输出关系为:其中 y(n)和 x(n)分别是输出和输入序列;有限冲激响应滤波器的一种直接型实现,如以下图;通常一个长度为 M 的有限冲激响应滤波器由 M 个系数描述,并且需要 M 个乘法器和 M-1 个双输入加法器来实现;直接型寄存器模块寄存器用于寄存一组二值代码,只要求它们具有置1、置 0 的功能即可;在本设计中用 D 触发器组成寄
4、存器,实现寄存功能;本设计中使用带异步复位rst 端的 D 触发器,当 rst=1 时,输出信号 q=0,当 rst=0 且上升沿脉冲到达时欢迎下载精品学习资源q=d;程序如下:LIBRARY ieee ;USE ieee.std_logic_1164.al;l LIBRARY ieee ;USE ieee.std_logic_1164.al;l ARCHITECTURE dff16 OF dff16 ISBEGINPROCESS rst,clk BEGINIFrst=1THENq0;ELSIFclkEVENT AND clk=1THENq=d;END IF;END PROCESS;END d
5、ff16 ;仿真结果如以下图 :欢迎下载精品学习资源加法器模块图 寄存器仿真结果欢迎下载精品学习资源实现两个有符号数的相加运算;即将输入的两数,在时钟脉冲到来时相加运算,输出结果;在本设计中共有 8 个两个 10 位有符号数相加产生一个11 位有符号数的加法器、一个 18 位和 19 位有符号数相加产生20 位有符号数的加法器、一个两个20 位有符号数相加产生一个 21 位有符号数的加法器、一个两个19 位有符号数相加产生一个 20 位有符号位数的加法器、一个20 位和 21 位有符号数相加产生22 位有符号数的加法器,以及一个20 位和 22 位有符号数相加产生 23 位有符号数的加法器电路
6、;欢迎下载精品学习资源其中一个 20 位和 22 位有符号数相加产生23 位有符号数的加法器电路为最终一级,所以在加法器电路中在引入低位舍去功能只保留最终10 位输出,最终保留 10 位输出接受了直接取输出23 位数的高十位的方法,因此在输出中近似等于除掉了 213 即 8192 以后的结果;10 位有符号数相加产生一个 11 位有符号数的加法器设计: LIBRARY ieee ;USE ieee.std_logic_1164.al;lUSE ieee.std_logic_arith.all;ENTITY sum101011 ISPORTa,b: IN SIGNED9 DOWNTO 0 ;cl
7、k: IN STD_LOGIC ;s:OUT SIGNED10 DOWNTO 0 ;END SUM101011;ARCHITECTURE sum101011 OF sum101011 IS BEGINPROCESSclkBEGINIFclkEVENT AND clk=1THENs=a9&a+b9&b ;END IF;END PROCESS;END sum101011;仿真结果如图 15 所示:图 15 两 10 位相加产生 11 位加法器仿真结果18 位和 19 位有符号数相加产生 20 位有符号数的加法器设计: LIBRARY ieee ;USE ieee.std_logic_1164.al
8、;l USE ieee.std_logic_arith.all;ENTITY sum7023918 IS欢迎下载精品学习资源PORTa: IN SIGNED17 DOWNTO 0 ;b: IN SIGNED18 DOWNTO 0 ;clk: IN STD_LOGIC ;s:OUT SIGNED19 DOWNTO 0 ;END sum7023918;ARCHITECTURE sum7023918 OF sum7023918 IS BEGINPROCESSclk BEGINIFclkEVENT AND clk=1THENs0;BEGINPROCESSDin1,Din2,clk BEGINIF cl
9、kevent and clk=1 THEN Dout0;BEGINPROCESSDin1,Din2,clk BEGINIF clkevent and clk=1 THEN Dout=s2-Din1-s1;END IF;END PROCESS;END sub1065417;仿真结果如图 18 所示:欢迎下载精品学习资源乘法器模块图 18 -106 和-54 减法器的仿真结果欢迎下载精品学习资源从资源和速度考虑,常系数乘法运算可用移位相加来实现;将常系数分解成几个 2 的幂的和形式;滤波器系数分别为-31、-88、-106、-54、70、239、401、499、499、401、239、70、-54
10、、-106、-88、-31;算法:其中带负号数先乘去负号的整数部分,在后面的求和中做减法运算;编码方式如下:31 被编码为 25-20、88 被编码为 26+24+23、106 被编码为 26+25+23+21、54 被编码为 26-23-21 、70 被编码为 26+22+21、239 被编码为 28-24-20、401 被编码为 29-27+24+20、499 被编码为 29-23-22-20;实现输入带符号数据与固定数据两个二进制数的乘法运算;当到达时钟上升沿时,将两数输入,运算并输出结果;乘 31 电路设计:LIBRARY ieee ;USE ieee.std_logic_1164.a
11、l;l USE ieee.std_logic_arith.all;ENTITY mult31 ISPORT clk : IN STD_LOGIC ;欢迎下载精品学习资源Din : IN SIGNED 10 DOWNTO 0 ;Dout : OUT SIGNED 15 DOWNTO 0 ;END mult31 ;ARCHITECTURE mult31 OF mult31 IS SIGNAL s1 : SIGNED 15 DOWNTO 0 ;SIGNAL s2 : SIGNED 10 DOWNTO 0 ;SIGNAL s3 : SIGNED 15 DOWNTO 0 ;BEGINA1:PROCESS
12、Din,s1,s2,s3 BEGINs1=Din&00000 ;s2=Din;IF Din10=0 THENs3=0&s114 downto 0-00000&s210 DOWNTO 0 ;ELSEs3=1&s114 downto 0-11111&s210 DOWNTO 0;END IF;END PROCESS;A2: PROCESSclk,s3 BEGINIF clkEVENT AND clk=1 THENDout=s3;END IF;END PROCESS;END mult31 ;仿真结果如图 19 所示:欢迎下载精品学习资源乘 88 电路设计程序:图 19 乘 31 仿真结果欢迎下载精品学
13、习资源LIBRARY ieee ;USE ieee.std_logic_1164.al;l USE ieee.std_logic_arith.all;ENTITY mult88 ISPORT clk : IN STD_LOGIC ;Din : IN SIGNED 10 DOWNTO 0 ;Dout : OUT SIGNED 17 DOWNTO 0 ;END mult88 ;ARCHITECTURE mult88 OF mult88 IS SIGNAL s1 : SIGNED 16 DOWNTO 0 ;SIGNAL s2 : SIGNED 14 DOWNTO 0 ;SIGNAL s3 : SIG
14、NED 13 DOWNTO 0 ;SIGNAL s4 : SIGNED 17 DOWNTO 0 ;BEGIN A1:PROCESSDin,s1,s2,s3 BEGINs1=Din&000000 ;s2=Din&0000 ;s3=Din&000 ;IF Din10=0 THENs4=0&s116downto0+000&s214DOWNTO0+0000&s313 DOWNTO 0 ;ELSEs4=1&s116 downto 0+111&s214DOWNTO0+1111&s313 DOWNTO 0 ;END IF;END PROCESS;A2: PROCESSclk,s4 BEGINIF clkEV
15、ENT AND clk=1 THEN欢迎下载精品学习资源Dout=s4;END IF;END PROCESS;END mult88 ;乘 106 电路设计: LIBRARY ieee ;USE ieee.std_logic_1164.al;lUSE ieee.std_logic_arith.all;ENTITY mult106 ISPORT clk : IN STD_LOGIC ;Din : IN SIGNED 10 DOWNTO 0 ;Dout : OUT SIGNED 17 DOWNTO 0 ;END mult106;ARCHITECTURE mult106 OF mult106 IS S
16、IGNAL s1 : SIGNED 16 DOWNTO 0 ;SIGNAL s2 : SIGNED 15 DOWNTO 0 ;SIGNAL s3 : SIGNED 13 DOWNTO 0 ;SIGNAL s4 : SIGNED 11 DOWNTO 0 ;SIGNAL s5 : SIGNED 17 DOWNTO 0 ;BEGIN A1:PROCESSDin,s1,s2,s3,s4 BEGINs1=Din&000000 ;s2=Din&00000 ;s3=Din&000 ;s4=Din&0;IF Din10=0 THENs5=0&s116 downto 0+00&s215DOWNTO0+0000&
17、s313 DOWNTO 0+000000&s411 DOWNTO 0 ;ELSE欢迎下载精品学习资源s5=1&s116 downto0+11&s215DOWNTO0+1111&s313 DOWNTO 0+111111&s411 DOWNTO 0 ;END IF;END PROCESS;A2: PROCESSclk,s5 BEGINIF clkEVENT AND clk=1 THENDout=s5;END IF;END PROCESS;END mult106;乘 54 电路设计: LIBRARY ieee ;USE ieee.std_logic_1164.al;lUSE ieee.std_log
18、ic_arith.all;ENTITY mult54 ISPORT clk : IN STD_LOGIC ;Din : IN SIGNED 10 DOWNTO 0 ;Dout : OUT SIGNED 16 DOWNTO 0 ;END mult54 ;ARCHITECTURE mult54 OF mult54 IS SIGNAL s1 : SIGNED 16 DOWNTO 0 ;SIGNAL s2 : SIGNED 13 DOWNTO 0 ;SIGNAL s3 : SIGNED 11 DOWNTO 0 ;SIGNAL s4 : SIGNED 16 DOWNTO 0 ;BEGINA1:PROCE
19、SSDin,s1,s2,s3 BEGIN欢迎下载精品学习资源s1=Din&000000 ;s2=Din&000 ;s3=Din&0;IF Din10=0 THENs4=0&s115 downto0-00&s213DOWNTO0-0000&s311 DOWNTO 0 ;ELSEs4=1&s115downto0-11&s213DOWNTO0-1111&s311 DOWNTO 0 ;END IF;END PROCESS;A2: PROCESSclk,s4 BEGINIF clkEVENT AND clk=1 THENDout=s4;END IF;END PROCESS;END mult54 ; 乘
20、70 电路设计: LIBRARY ieee ;USE ieee.std_logic_1164.al;lUSE ieee.std_logic_arith.all;ENTITY mult70 ISPORT clk : IN STD_LOGIC ;Din : IN SIGNED 10 DOWNTO 0 ;Dout : OUT SIGNED 17 DOWNTO 0 ;END mult70 ;ARCHITECTURE mult70 OF mult70 IS SIGNAL s1 : SIGNED 16 DOWNTO 0 ;欢迎下载精品学习资源SIGNAL s2 : SIGNED 12 DOWNTO 0 ;
21、SIGNAL s3 : SIGNED 11 DOWNTO 0 ;SIGNAL s4 : SIGNED 17 DOWNTO 0 ;BEGINA1:PROCESSDin,s1,s2,s3 BEGINs1=Din&000000 ;s2=Din&00 ;s3=Din&0;IF Din10=0 THENs4=0&s116 downto 0+00000&s212 DOWNTO 0+000000&s311 DOWNTO 0 ;ELSEs4=1&s116 downto 0+11111&s212 DOWNTO 0+111111&s311 DOWNTO 0 ;END IF;END PROCESS;A2: PROC
22、ESSclk,s4 BEGINIF clkEVENT AND clk=1 THENDout=s4;END IF;END PROCESS;END mult70 ;乘 239 电路设计: LIBRARY ieee ;USE ieee.std_logic_1164.al;lUSE ieee.std_logic_arith.all;ENTITY mult239 IS欢迎下载精品学习资源PORT clk : IN STD_LOGIC ;Din : IN SIGNED 10 DOWNTO 0 ;Dout : OUT SIGNED 18 DOWNTO 0 ;END mult239;ARCHITECTURE
23、mult239 OF mult239 IS SIGNAL s1 : SIGNED 18 DOWNTO 0 ;SIGNAL s2 : SIGNED 14 DOWNTO 0 ;SIGNAL s3 : SIGNED 10 DOWNTO 0 ;SIGNAL s4 : SIGNED 18 DOWNTO 0 ;BEGINA1:PROCESSDin,s1,s2,s3 BEGIN s1=Din&00000000;s2=Din&0000 ;s3=Din;IF Din10=0 THENs4=0&s117 downto 0-0000&s214 DOWNTO 0- 00000000&s310 DOWNTO 0 ;EL
24、SEs4=1&s117 downto 0-1111&s214 DOWNTO 0- 11111111&s310 DOWNTO 0;END IF;END PROCESS;A2: PROCESSclk,s4 BEGINIF clkEVENT AND clk=1 THENDout=s4;END IF;END PROCESS;欢迎下载精品学习资源END mult239;仿真我们任意设定输入信号为:Din 99,0, 0,0,70,0, 0,0,99,0, 0,0,70,0,0,0,99, 0, 0,0,70,0,0,0, 99,0,0,0,70,0,0,0图 20 滤波器仿真结果版权申明本文部分内容,包
25、括文字、图片、以及设计等在网上搜集整理;版权为潘宏亮个人全部This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliangs personal ownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益;除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳;Users may use the conte
26、nts or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon欢迎下载精品学习资源the legitimate rights of this website
27、 and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任;Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.欢迎下载
限制150内