版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 编号 XXXXXX 职业技术学院职业技术学院 毕毕业业论论文文 题 目FIR 低通滤波器 学生姓名 学 号 系 部信息与通信工程系 专 业电子信息工程技术 班 级 指导教师 二一年六月 摘摘 要要 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进 行数学处理来达到频域滤波的目的。根据其单位冲激响应函数的时域特性可分 为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。与 IIR 滤 波器相比,FIR 的实现是非递归的,它总是稳定的,更重要的是,FIR 滤波器在 满足幅频响应要求的同时,可以获得严格的线性相位特性。因此,它在高保真 的信号处理,如数字音频、图像处
2、理、数据传输以及生物医学等领域得到广泛 应用。然而,数字滤波器的应用场合大部分都要求实时处理,有的还要进行复 杂运算,在处理速度方面,FPGA 表现出了特有的优势。在运算上采用了分布式 算法,极大地减少硬件电路规模,提高电路的执行速度。通过 VHDL 语言对各 模块电路及整个电路进行功能的实现,并进行波形仿真。 关键词关键词:FIR 滤波器,FPGA,分布式算法,VHDL 语言 目目 录录 摘摘 要要.I 目目 录录.II 第一章第一章FIR 数字滤波器理论简述数字滤波器理论简述.1 第二章第二章 设计方案设计方案.4 2.1 FIR 滤波器的结构.4 2.2 FIR 数字滤波器的设计方案.4
3、 第三章第三章 模块电路设计模块电路设计.10 3.1 寄存器.10 3.1.1 寄存器原理.10 3.1.2 寄存器要求实现的功能.10 3.1.3 寄存器的 VHDL 语言实现(8 位).10 3.1.4 寄存器的模块图.11 3.1.5 寄存器的波形仿真.11 3.2 加法器.11 3.2.1 加法器的原理.11 3.2.2 加法器要求实现的功能.12 3.2.3 加法器的 VHDL 语言实现.12 3.2.4 加法器的模块图.12 3.2.5 加法器的波形仿真.13 3.3 减法器.13 3.3.1 减法器的原理.13 3.3.2 减法器要求实现的功能.13 3.3.3 减法器的 VH
4、DL 语言实现.13 3.3.4 减法器的模块图.14 3.3.5 减法器的波形仿真.14 3.4 乘法器.15 3.4.1 乘法器的原理.15 3.4.2 乘法器要求实现的功能.15 3.4.3 乘法器的 VHDL 语言实现.15 3.4.4 乘法器的模块图.16 3.4.5 乘法器的波形仿真.16 第四章第四章 FIR 滤波器整体电路滤波器整体电路.17 第五章第五章 FIR 滤波器整体电路仿真结果滤波器整体电路仿真结果.18 5.1 设定输入信号.18 5.2 输出信号理论值.18 第六章第六章 总结总结.19 结论.19 总结.20 致致 谢谢.22 参考文献参考文献.23 第一章第一
5、章FIRFIR 数字滤波器理论简述数字滤波器理论简述 有限冲激响应(FIR)数字滤波器和无限冲激响应(IIR)数字滤波器广泛应 用于数字信号处理系统中。IIR 数字滤波器方便简单,但它相位的非线性,要求 采用全通网络进行相位校正,且稳定性难以保障。FIR 滤波器具有很好的线性相 位特性,使得它越来越受到广泛的重视。 有限冲击响应(FIR)滤波器的特点: 1 既具有严格的线性相位,又具有任意的幅度; 2 FIR 滤波器的单位抽样响应是有限长的,因而滤波器性能稳定; 3 只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列, 因而能用因果系统来实现; 4 FIR 滤波器由于单位冲击响应
6、是有限长的,因而可用快速傅里叶变换 (FFT)算法来实现过滤信号,可大大提高运算效率。 5 FIR 也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对 实时的信号处理很重要。 6 FIR 滤波器比较大的缺点就是阶次相对于 IIR 滤波器来说要大很多。 FIR 数字滤波器是一个线性时不变系统(LTI) ,N 阶因果有限冲激响应滤波器 可以用传输函数 H(z)来描述, * MERGEFORMAT 1(0.1) 0 ( )( ) N k k H zh k z 在时域中,上述有限冲激响应滤波器的输入输出关系如下: * MERGEFORMAT 0 N k y nx nh nx k h nk 2
7、(0.2) 其中,xn和 yn分别是输入和输出序列。 N 阶有限冲激响应滤波器要用 N1 个系数描述,通常要用 N+1 个乘法器和 N 个两输入加法器来实现。乘法器的系数正好是传递函数的系数,因此这种结 构称为直接型结构,可通过式(1.2)来实现,如图 1-1。 图 1-1 当冲击响应满足下列条件时, FIR 滤波器具有对称结构,为线性相位滤波 器: (1.3) 这种对称性,可使得乘法器数量减半:对 n 价滤波器,当 n 为偶数时,乘法器 的个数为 n/2 个;当 n 为奇数时,乘法器的个数为(n+1)/2 个。在电路实现中, 乘法器占用的逻辑单元数较多。乘法器的增加,意味着电路成本增加,另外
8、对 电路的工作速度也有影响。 N 阶线性相位的因果 FIR 系统的单位冲激响应滤波器可用对称冲激响应 * h nh Nn h nh Nn MERGEFORMAT 3(0.3) 或者反对称冲激响应 * MERGEFORMAT h nh Nn h nh Nn 4(0.4) 来描述。 具有对称冲激响应的 FIR 传输函数的冲激响应可写成如下形式: 当 N 为偶数时 * 1 2 () 2 00 ( ) ()() 2 N N N nnN n nn N H zh n zh n zzhz MERGEFORMAT 5(0.5) 当 N 为奇数时 * 1 1 2 () 00 ( ) () N N nnN n n
9、n H zh n zh n zz MERGEFORMAT 6(0.6) 则 FIR 线性相位系统的结构可转化成如图 1-2 和图 1-3 所示。 )1()(nNhnh 图 1-2 N 为奇数 图 1-3 N 为偶数 第二章第二章 设计方案设计方案 随着数字技术日益广泛的应用,以现场可编程门阵列(FPGA)为代表的 ASIC 器件得到了迅速普及和发展,器件集成度和速度都在高速增长。FPGA 既 具有门阵列的高逻辑密度和高可靠性,又具有可编码逻辑器件的用户可编程特 性,可以减少系统设计和维护的风险,降低产品成本,缩短设计周期。 分布式算法是一种以实现乘加运算为目的的运算方法。它与传统算法实现 乘加
10、运算的不同在于执行部分积运算的先后顺序不同。简单地说,分布式算法 在完成乘加功能时是通过将各输入数据每一对应位产生的部分积预先进相加形 成相应部分积,然后在对各部门积进行累加形成最终结果,而传统算法是等到 所有乘积产生之后再进行相加来完成乘加运算的。与传统算法相比,分布式算 法可极大地减少硬件电路规模,很容易实现流水线处理,提高电路的执行速度。 FPGA 有着规整的内部逻辑块阵列和丰富的连线资源,特别适合细粒度和高 并行度结构特点的数字信号处理任务,如 FIR、FFT 等。利用 FPGA 实现 FIR 滤 波器的设计过程,并且对设计中的关键技术分布式算法进行详细描述。 2.12.1 FIRFI
11、R 滤波器的结构滤波器的结构 FIR 滤波器的结构主要是非递归结构,没有输出到输入的反馈。并且 FIR 滤 波器很容易获得严格的线性相位特性,避免被处理信号产生相位失真。而线性 相位体现在时域中仅仅是 h(n)在时间上的延迟,这个特点在图像信号处理、数据 传输等波形传递系统中是非常重要的。此外,他不会发生阻塞现象,能避免强 信号淹没弱信号,因此特别适合信号强弱相差悬殊的情况。 2.22.2 FIRFIR 数字滤波器的设计方案数字滤波器的设计方案 通常采用窗函数设计 FIR 滤波器方法简单,但是这些滤波器的设计还不是 最优的。首先通带和阻带的波动基本上相等,另外对于大部分窗函数来说,通 带内或阻
12、带内的波动不是均匀的,通常离开过渡带时会减小。若允许波动在整 个通带内均匀分布,就会产生较小的峰值波动。 因此考虑通过某种方法,对滤波器的结构进行优化。 对于线性相位因果 FIR 滤波器,它的系列具有中心对称特性,即 h(i)=h(N- 1-i)。令 s(i)=x(i) x(N-1-i),对于偶对称,代入式(1)可得: (2.1) 根据要求,要设计一个输入 8 位,输出 8 位的 17 阶线性相位 FIR 滤波器, 所以采用图 2(a)的方式,其中输入信号范围为:99,0,0,0, 70,0,0,0, 99,0,0,0, 70,此滤波器 Fs 为 44kHz,Fc 为 10.4kHz。MATL
13、AB 设计计算滤波器系数过程如下: FIR 滤波器参数设置,因为是 17 阶,所以 Specify order 处填 16,h(0)=0. 图 2-1 FIR 滤波器的幅频响应 图 2-2 FIR 滤波器的相频响应 图 2-3 FIR 滤波器的冲激响应 图 2-4 FIR 滤波器系数 图 2-5 对 FIR 滤波器的系数进行调整,整数化 图 2-6 可得 FIR 滤波器的参数为-12 -18 13 29 -13 -52 14 162 242 14 -52 -13 29 13 -18 -12 根据以上所说的该思路,可以将 FIR 滤波器的原理图设计如下: 图 2-7 下面对各加法器乘法器的输出位
14、数进行分析,对第一级加法器,输入全为 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 输出为 16 位。对剩余加法器进行分析,对输入序列进行 分析,99,0,0,0, 70,0,0,0, 99,0,0,0, 70,周期 为 8,经分析当总值最大时,总输出应为 99*18+70*29+50*70+99*162=17
15、82+2030+3640+16038=23490,2 的 15 次方为 32768,再加上一位符号位,所以输出应为 16 位,由此类推,12、18 乘法器输 出之和为 13 位,13、19 乘法器输出之和应为 13 位,总输出为 14 位。另一支路 上,13、52 乘法器输出之和为 14 位,14、162 乘法器输出之和为 16 位,其总 输出之和为 16 位,最后这两路输出之和为 16 位。将后 8 位舍去,加上由乘法 器 242 输出舍取得倒的 8 位,总输出为 8 位。至此,所有器件的输入输出都可 判定。下面进入模块设计阶段。 第三章第三章 模块电路设计模块电路设计 设计的 FIR 滤波
16、器由 19 个小 VHD 文件和一个总体 BDF 文件组成,VHD 文件可以分为以下四种模块:寄存器、加法器、减法器、乘法器。 3.13.1 寄存器寄存器 3.1.13.1.1 寄存器原理寄存器原理 寄存器用于寄存一组二值代码,对寄存器的触发器只要求它们具有置 1、置 0 的功能即可,因而本设计中用 D 触发器组成寄存器,实现寄存功能。 3.1.23.1.2 寄存器要求实现的功能寄存器要求实现的功能 在 CP 正跳沿前接受输入信号,正跳沿时触发翻转,正跳沿后输入即被封锁。 3.1.33.1.3 寄存器的寄存器的 VHDLVHDL 语言实现(语言实现(8 8 位)位) LIBRARY IEEE;
17、 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 THEN Dout=; ELSIF clear=0 THEN IF(clkEVENT AND
18、clk=1) THEN Dout = Din; END IF; END IF; END PROCESS; END a; 其中,clear 为复位信号。 3.1.43.1.4 寄存器的模块图寄存器的模块图 图 3-1-1 3.1.53.1.5 寄存器的波形仿真寄存器的波形仿真 图 3-1-2 完全符合设计要求。 3.23.2 加法器加法器 3.2.13.2.1 加法器的原理加法器的原理 在将两个多位二进制数相加时,除了最低位以外,每一位都应该考虑来自 低位的进位,即将两个对应位的加数和来自低位的进位 3 个数相加。这种运算 称为全加,所用的电路称为全加器。 多位加法器的构成有两种方式:并行进位和
19、串行进位。并行进位加法器设 有进位产生逻辑,预算速度较快;串行进位方式是将全加器级联构成多位加法 器。并行进位加法器通常比串行级联加法器占用更多的资源。随着为数的增加, 相同位数的并行加法器与串行加法器的资源占用差距也越来越大,因此,在工 程中使用加法器时,要在速度和容量之间寻找平衡点。 本次设计采用的是并行加法器方式。 3.2.23.2.2 加法器要求实现的功能加法器要求实现的功能 实现两个二进制数字的相加运算。当到达时钟上升沿时,将两数输入,运 算,输出结果。 3.2.33.2.3 加法器的加法器的 VHDLVHDL 语言实现语言实现 (以下以 12 位数加 16 位数生成 16 位数的加
20、法器为例) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_arith.ALL; ENTITY add is PORT(clk : in STD_LOGIC; Din1 :in signed (11 downto 0); Din2 :in signed (15 downto 0); Dout:out signed (15 downto 0); END add; ARCHITECTURE a of add is SIGNAL s1: signed(15 downto 0); BEGIN s1=(Din1(11) PROC
21、ESS(Din1,Din2,clk) BEGIN if clkevent and clk=1 then Dout=s1+Din2; end if; end process; end a; 3.2.43.2.4 加法器的模块图加法器的模块图 图 3-2-1 3.2.53.2.5 加法器的波形仿真加法器的波形仿真 图 3-2-2 完全符合设计要求。 3.33.3 减法器减法器 3.3.13.3.1 减法器的原理减法器的原理 减法器的原理与加法器类似,尤其是并行式的减法器也加法器的区别仅仅 在于最后的和数为两数相减。如: Dout=Din2-s1; 3.3.23.3.2 减法器要求实现的功能减法器要
22、求实现的功能 由上面简化电路的需要,当乘法器常系数为负数的,可以取该数的模来作 为乘法器的输入,其输出作为一个减法器的输入即可。故减法器要实现两个二 进制数相减的运算。当到达时钟上升沿时,将两数输入,运算,输出结果。 3.3.33.3.3 减法器的减法器的 VHDLVHDL 语言实现语言实现 (以下以 16 位数减去 14 位数输出 16 位数的减法器为例) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_arith.ALL; ENTITY sub is PORT(clk : in STD_LOGIC; Din1 :i
23、n signed (13 downto 0); Din2 :in signed (15 downto 0); Dout :out signed(15 downto 0); END sub; ARCHITECTURE a of sub is SIGNAL s1: signed(15 downto 0); BEGIN s1=(Din1(13) PROCESS(Din1,Din2,clk) BEGIN if clkevent and clk=1 then Dout=Din2-s1; end if; end process; end a; 3.3.43.3.4 减法器的模块图减法器的模块图 图 3-3
24、-1 3.3.53.3.5 减法器的波形仿真减法器的波形仿真 图 3-3-2 完全符合设计要求。 3.43.4 乘法器乘法器 3.4.13.4.1 乘法器的原理乘法器的原理 从资源和速度考虑,常系数乘法运算可用移位相加来实现。将常系数分解 成几个 2 的幂的和形式。 下例为乘 18 电路设计,算法:18=16+2 3.4.23.4.2 乘法器要求实现的功能乘法器要求实现的功能 实现输入带符号数据与固定数据两个二进制数的乘法运算。当到达时钟上 升沿时,将两数输入,运算,输出结果。 3.4.33.4.3 乘法器的乘法器的 VHDLVHDL 语言实现语言实现 LIBRARY ieee; USE ie
25、ee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY mult18 is PORT ( clk : IN STD_LOGIC; Din : IN SIGNED (8 DOWNTO 0); Dout : OUT SIGNED (12 DOWNTO 0); END mult18; ARCHITECTURE a OF mult18 IS SIGNAL s1 : SIGNED (12 DOWNTO 0); SIGNAL s2 : SIGNED (9 DOWNTO 0); SIGNAL s3 : SIGNED (12 DOWNTO 0);
26、 BEGIN P1:process(Din) BEGIN s1(12 DOWNTO 4)=Din; s1( 3 DOWNTO 0)=0000; s2(9 DOWNTO 1)=Din; s2(0)=0; if Din(8)=0 then s3=(0 else s3=(1 end if; end process; P2: PROCESS(clk) BEGIN if clkevent and clk=1 then Dout=s3; end if; END PROCESS; END a; 3.4.43.4.4 乘法器的模块图乘法器的模块图 图 3-4-1 3.4.53.4.5 乘法器的波形仿真乘法器的
27、波形仿真 图 3-4-2 完全符合设计要求。 第四章第四章 FIRFIR 滤波器整体电路滤波器整体电路 FIR 滤波器的整体电路基本与其原理图类似。整体电路如下图所示: 图 4-1 (限于篇幅,将整体电路缩小如上,详见电子版源程序框图 fir1.bdf。 ) 第五章第五章 FIRFIR 滤波器整体电路仿真结果滤波器整体电路仿真结果 5.15.1 设定输入信号设定输入信号 根据设计要求,输入信号范围是: 99,0,0,0, 70,0,0,0, 99,0,0,0, 70, 我们任意设定输入信号为: X99,0,0,0,70,0,0,0,99,0,0,0,70,0,0,0,99,0,0,0 ,70,
28、0,0,0,99,0,0,0,70,0,0,0 5.25.2 输出信号理论值输出信号理论值 由 FIR 数字滤波器的公式 (5.1) 图 5-1 第六章第六章 总结总结 结论结论 理论值仿真结果 MATLAB 卷积值/512经仿真器仿真 -2.3203-3 -3.4805-4 2.51372 5.60745 -4.1543-5 -12.516-13 4.48444 35.28935 42.69541 20.73420 7.13487 17.70117 26.41826 15.2415 8.91218 输出结果 yn 24.69924 y038.59837 y124.69924 y28.9121
29、8 y315.2415 y424.77724 y515.2415 y68.91218 y724.69924 y838.59837 y924.69924 y108.91218 y1115.2415 y1224.77724 y1315.2415 y148.91218 y1524.69924 y1638.59837 y1724.69924 表格 6-1 由上面仿真波形可以读出结果。 经比较,仿真结果与输出信号理论值完全吻合。 且波形基本没有毛刺,实验完全符合设计要求。 总结总结 第一遍设计时,原本 d8 信号是直接进入乘法器 242,这样输出为 15 位,再 经过四个延时器与左边加起来的信号同步,最
30、后在进入一个加法器,此加法器 输入信号为左边来的 16 位信号,和乘法器 242 输出的信号 15 位,各取前 8 位 信号相加,输出最后结果。理论上,无论是输入输出信号的位数,还是考虑延 时同步,还是舍去的位数多少都没有问题,所以我认为这种设计是可行的。 到了仿真模拟结果的时候,粗略一看,好像和 MATLAB 计算出的卷积结果 差不多,但是仔细一看发现虽然大部分结果都差不多,但有几位数几乎扩大了 一倍: 图 6-1 仔细看,可以发现有 88,84,87 出现,其他位上出入不大。 为了解决这个问题我想可能是乘法器 242 的问题,虽然理论上说的通,但 是毕竟左边和右边的原理图在位数和经过延时器
31、顺序上有了出入,也许问题就 出在这。于是重新修改了乘法器 mult242.,输入 9 位输出 16 位;修改了最后的 加法器 add888,输入都为 16 位输出为 8 位;增加一个延时器 dff89,接在 d8 信号 后面,输入 8 位输出 9 位,相当于右边电路的第一级加法器产生的效果。修改 了延时器 dff15,由原来的 15 位改成了现在的 16 位。 这样相当于 d8 信号先经过延时器 dff89 输出 9 位信号,进入乘法器 242 输 出 16 位信号,再经过 3 次延时器 dff15,达到和右边信号同步的目的,最后进入 加法器 add888,取前 8 位和右边得到的数据相加输出结果。 果然这样,再看最后的数据就正确了。另
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肌筋膜疼痛综合征的推拿理疗
- 大连理工大学出版社说课稿-2025-2026学年中职中职专业课电子商务类73 财经商贸大类
- 品质异常处理SOP|从发现到关闭
- 血液透析中的抗凝治疗与护理
- 初中2025年说课稿学习主题班会
- 上海音乐学院《安装工程计价》2025-2026学年第一学期期末试卷(B卷)
- 2025年动力电池回收产业链金融风险案例与防范
- 上海音乐学院《Android 移动平台开发》2025-2026学年第一学期期末试卷(A卷)
- 上海震旦职业学院《安全经济原理与实践》2025-2026学年第一学期期末试卷(B卷)
- 初中科技创新展示主题班会2025说课稿
- 2026中国疾病预防控制中心人事处招聘工作人员笔试备考试题及答案
- 2025年内蒙古鄂尔多斯市康巴什区事业单位考试题及答案解析
- 培训餐厅服务员
- 心脏外科患者伤口护理
- 2026年工业无人机焊接技术报告
- 《城市体检工作手册》(试行)下载
- 2025年甘肃钢铁职业技术学院辅导员考试真题
- 屋顶光伏施工技术规范
- 2025年国家义务教育质量监测小学四年级劳动教育国测模拟测试题及答案
- 第节深圳市中考英语听说考试概述
- 2026年山东省菏泽一中自主招生物理试卷试题(含答案详解)
评论
0/150
提交评论