8阶fir带阻数字滤波器设计

上传人:第*** 文档编号:34590625 上传时间:2018-02-26 格式:DOC 页数:14 大小:247.10KB
返回 下载 相关 举报
8阶fir带阻数字滤波器设计_第1页
第1页 / 共14页
8阶fir带阻数字滤波器设计_第2页
第2页 / 共14页
8阶fir带阻数字滤波器设计_第3页
第3页 / 共14页
8阶fir带阻数字滤波器设计_第4页
第4页 / 共14页
8阶fir带阻数字滤波器设计_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《8阶fir带阻数字滤波器设计》由会员分享,可在线阅读,更多相关《8阶fir带阻数字滤波器设计(14页珍藏版)》请在金锄头文库上搜索。

1、 1基于 VHDL 的数字滤波器设计一、概述有限冲激响应(FIR )数字滤波器和无限冲激响应(IIR)数字滤波器广泛应用于数字信号处理系统中。IIR 数字滤波器方便简单,但它相位的非线性,要求采用全通网络进行相位校正,且稳定性难以保障。FIR 滤波器具有很好的线性相位特性,使得它越来越受到广泛的重视。有限冲击响应(FIR )滤波器的特点:1 .既具有严格的线性相位,又具有任意的幅度;2. FIR 滤波器的单位抽样响应是有限长的,因而滤波器性能稳定;3.只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,因而能用因果系统来实现;4 . FIR 滤波器由于单位冲击响应是有限长的,因而

2、可用快速傅里叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。5. FIR 也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。6. FIR 滤波器比较大的缺点就是阶次相对于 IIR 滤波器来说要大很多。FIR 数字滤波器是一个线性时不变系统(LTI), N 阶因果有限冲激响应滤波器可以用传输函数 H(z)来描述,* MERGEFORMAT 1(0.1)0()()Nkkzh在时域中,上述有限冲激响应滤波器的输入输出关系如下:* MERGEFORMAT 2(0.2)0Nkynxxnk其中,xn和 yn分别是输入和输出序列。N 阶有限冲激响应滤波器要用 N1 个

3、系数描述,通常要用 N+1 个乘法器和 N 个两输入加法器来实现。乘法器的系数正好是传递函数的系数,因此这种结构称为直接型结构,可通过式(1.2)来实现,如图 1。图 1当冲击响应满足下列条件时, FIR 滤波器具有对称结构,为线性相位滤波器:(1.3)()nNhn这种对称性,可使得乘法器数量减半:对 n 价滤波器,当 n 为偶数时,乘 1法器的个数为 n/2 个;当 n 为奇数时,乘法器的个数为 (n+1)/2 个。在电路实现中,乘法器占用的逻辑单元数较多。乘法器的增加,意味着电路成本增加,另外对电路的工作速度也有影响。N 阶线性相位的因果 FIR 系统的单位冲激响应滤波器可用对称冲激响应*

4、 MERGEFORMAT 3(0.3)hnhnN或者反对称冲激响应* MERGEFORMAT 4(0.4)n来描述。具有对称冲激响应的 FIR 传输函数的冲激响应可写成如下形式:当 N 为偶数时* 12()200()NNNnnNnnHzhzzhz MERGEFORMAT 5(0.5)当 N 为奇数时* MERGEFORMAT 6(0.6)12()00()NnnNnnzhzhz则 FIR 线性相位系统的结构可转化成如图 2(a)和图 2(b)所示。图 2(a) N 为奇数图 2(b) N 为偶数 1二、设计方案随着数字技术日益广泛的应用,以现场可编程门阵列(FPGA)为代表的ASIC 器件得到了

5、迅速普及和发展,器件集成度和速度都在高速增长。FPGA 有着规整的内部逻辑块阵列和丰富的连线资源,特别适合细粒度和高并行度结构特点的数字信号处理任务,如 FIR、FFT 等。1.FIR 滤波器的结构FIR 滤波器的结构主要是非递归结构,没有输出到输入的反馈。并且 FIR滤波器很容易获得严格的线性相位特性,避免被处理信号产生相位失真。而线性相位体现在时域中仅仅是 h(n)在时间上的延迟,这个特点在图像信号处理、数据传输等波形传递系统中是非常重要的。此外,他不会发生阻塞现象,能避免强信号淹没弱信号,因此特别适合信号强弱相差悬殊的情况。2.FIR 数字滤波器的设计方案:通常采用窗函数设计 FIR 滤

6、波器方法简单,但是这些滤波器的设计还不是最优的。首先通带和阻带的波动基本上相等,另外对于大部分窗函数来说,通带内或阻带内的波动不是均匀的,通常离开过渡带时会减小。若允许波动在整个通带内均匀分布,就会产生较小的峰值波动。对于线性相位因果 FIR 滤波器,它的系列具有中心对称特性,即。令 ,对于偶对称,代入式(1)可得:)1()iNhi)()(iNxis1012/0)()()(i iinshnhny根据要求,设计一个基于 VHDL 的数字滤波器。我们假设滤波器要求是输入 8 位,输出 8 位的 17 阶线性相位 FIR 滤波器,这里采用图 2(a)的方式,其中输入信号范围为:99,0,0,0, 7

7、0,0, 0,0, 99,0,0,0, 70, ,此滤波器采样频率 Fs 为 44kHz,截止频率 Fc 为 10.4kHz。整个过程的设计环境:WIN Xp+MATLAB7.1+QuartusII8.0首先计算滤波器系数:在 MATLAB 的命令窗口中输入 fdatool,开启 Filter Design&Analysis Tool界面。如图 3 所示。 1图 3 Filter Design & Analysis Tool 工具界面由于滤波器的是 17 阶,所以 Specify order 处填 16,h(0)=0.如图 4 所示。图 4 滤波器的参数设置完成后点击 Design Filte

8、r 按钮,FIR 滤波器的幅频响应如图 5 所示 1图 5 FIR 滤波器的帧频响应FIR 滤波器的相频响应FIR 滤波器的冲激响应FIR 滤波器系数对 FIR 滤波器的系数进行调整,整数化 Numerator=-0.023683271368922305 -0.035814778123825552 0.025205336264718343 0.056545856173748361 -0.026338218116276707 -0.10174451652903346 0.027036716306747251 0.3168418949741163 0.47272727272727272 0.316

9、8418949741163 0.027036716306747251 -0.10174451652903346 -0.026338218116276707 0.056545856173748361 0.025205336264718343 -0.035814778123825552 -0.023683271368922305; round(Numerator*(29)ans =Columns 1 through 11 -12 -18 13 29 -13 -52 14 162 242 162 14 1Columns 12 through 17 -52 -13 29 13 -18 -12可得 FI

10、R 滤波器的参数为 -12 -18 13 29 -13 -52 14 162 242 162 14 -52 -13 29 13 -18 -12根据以上所说的该思路,可以将 FIR 滤波器的原理图设计如下:下面对各加法器乘法器的输出位数进行分析,对第一级加法器,输入全为8 位,输出统一为 9 位。对各个乘法器进行分析,12=8+4,8 为 2 的 3 次方,向左移了 3 位,输出为 12 位;18=16+2,16 为 2 的 4 次方,向左移了 4 位,输出为 13 位;以此类推,13 乘法器输出为 12 位,29 输出为 13 位,52 输出为 14位,162 输出为 16 位,242 输出为

11、 16 位。对剩余加法器进行分析,对输入序列进行分析, 99,0,0,0, 70,0,0,0, 99,0,0,0, 70,周期为 8,经分析当总值最大时,总输出应为 99*18+70*29+50*70+99*162 = 1782 + 2030 + 3640 + 16038 = 23490,2 的 15 次方为 32768,再加上一位符号位,所以输出应为 16 位,由此类推,12、18 乘法器输出之和为 13 位,13、19 乘法器输出之和应为 13 位,总输出为 14 位。另一支路上,13、52 乘法器输出之和为 14 位,14、162 乘法器输出之和为 16 位,其总输出之和为 16 位,最

12、后这两路输出之和为 16 位。将后 8 位舍去,加上由乘法器 242 输出舍取得倒的 8 位,总输出为 8 位。至此,所有器件的输入输出都可判定。下面进入模块设计阶段。 1三、模块电路设计设计的 FIR 滤波器由 19 个小 VHD 文件和一个总体 BDF 文件组成,VHD文件可以分为以下四种模块:寄存器、加法器、减法器、乘法器。31 寄存器3.1.1 寄存器原理寄存器用于寄存一组二值代码,对寄存器的触发器只要求它们具有置 1、置 0 的功能即可,因而本设计中用 D 触发器组成寄存器,实现寄存功能。3.1.2 寄存器要求实现的功能在 CP 正跳沿前接受输入信号,正跳沿时触发翻转,正跳沿后输入即

13、被封锁。3.1.3 寄存器的 VHDL 语言实现(8 位)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff8 IS PORT( clk : IN STD_LOGIC;clear : IN STD_LOGIC;Din : IN STD_LOGIC_VECTOR(7 DOWNTO 0); Dout : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END dff8; ARCHITECTURE a OF dff8 IS BEGIN PROCESS(clk,clear) BEGIN IF clear=1 THENDout=

14、00000000;ELSIF clear=0 THENIF(clkEVENT AND clk=1) THENDout = Din;END IF; END IF; END PROCESS; END a;其中,clear 为复位信号。3.1.4 寄存器的模块图 13.1.5 寄存器的波形仿真完全符合设计要求。32 加法器3.2.1 加法器的原理在将两个多位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位 3 个数相加。这种运算称为全加,所用的电路称为全加器。多位加法器的构成有两种方式:并行进位和串行进位。并行进位加法器设有进位产生逻辑,预算速度较

15、快;串行进位方式是将全加器级联构成多位加法器。并行进位加法器通常比串行级联加法器占用更多的资源。随着为数的增加,相同位数的并行加法器与串行加法器的资源占用差距也越来越大,因此,在工程中使用加法器时,要在速度和容量之间寻找平衡点。本次设计采用的是并行加法器方式。3.2.2 加法器要求实现的功能实现两个二进制数字的相加运算。当到达时钟上升沿时,将两数输入,运算,输出结果。3.2.3 加法器的 VHDL 语言实现(以下以 12 位数加 16 位数生成 16 位数的加法器为例)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_arith.ALL;ENTITY add121616 isPORT(clk : in STD_LOGIC;Din1 :in signed (11 downto 0);Din2 :in signed (15 downto 0);Dout:out signed (15 downto 0);END add121616; 1ARCHITECTURE a of add121616 isSIGNAL s1: signed(15 downto 0);BEGINs1=(Din1(11)PROCESS(Din1,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号