版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安徽大学本科毕业论文(设计、创作)题 目用VHDL设计FIR低通数字滤波器学生姓名:学号:院(系):电子信息工程学院专业:电子信息工程入学时间:二九年九月导师姓名:职称/学位:导师所在单位:安徽大学电子信息工程学院完成时间:二一三年六月用VHDL设计FIR低通数字滤波器摘要数字滤波器在语音与图像处理、生物医学信号处理、通信以及电力系统中有着广泛的应用,它在 过滤噪声、提高信噪比等方面有着重要的意义。本文首先分析了几种主要的FIR滤波器的实现方案,经过比较,最终采用了利用单位冲激响应的对称特性的方案。然后根据FIR低通数字滤波器的原理与滤波特性,利用 MATLAB中的FDATOOL工具设计了一定
2、性能的 FIR低通滤波器,获取滤波器的相 应系数并且将其进行量化。最后在MAX+PLUS H环境下运用VHDL语言和原理图混合输入方式实现了 18阶FIR低通数字滤波器,利用 MAX+PLUS H的仿真器对设计进行仿真得到相应的滤波仿真结果, 并与MATLAB计算出来的理论值进行比较。此外,还对理论值与实际值的误差进行了分析。关键词:FIR数字滤波器;MATLAB VHDL语言;MAX+PLUS2Design FIR Low-pass Digital Filter Using VHDLAbstractDigital filter has been widely used in speech a
3、nd image processing, biomedical signal processing, communications and power system, which has important significanee in filtering noise and improving the signal-noise. At first, this paper analyzes several main scheme of the realization of FIR filter, after comparing, fin ally adopts the scheme of u
4、sing the symmetrical characteristic of the unit impulse resp on se. and the n, based on the principle of FIR low pass digital filter and filter characteristics, use FDATOOL of MATLAB tools to design certain properties of the FIR low pass filter, get corresponding filter coefficients and quantify it.
5、 At last, I use VHDL Ianguage and schematic hybrid approach to achieve the 18-order FIR low-pass digital filter in the environment of MAX + PLUS n , and make use of MAX + PLUS n simulators to simulate the design to get the corresp onding filter simulatio n results which are used to compare with the
6、MATLAB calculated theoretical value. Furthermore, the error betwee n the theoretical value and the actual value are an alyzed.Keywords: FIR digital filter ; MATLAB ; VHDL language; MAX+PLUS n1引言11.1 论文背景介绍 11.2论文的主要研究内容 11.3工作平台介绍21.3.1 MATLAB 介绍21.3.2 MAX+PLUSU 22 FIR滤波器22.1 FIR 滤波器的基本概念 22.2 FIR 滤
7、波器的特点 22.3 FIR 滤波器的结构与原理 33方案分析与设计 53.1 FIR 滤波器的设计方案 53.2 FIR 滤波器指标设计 73.2.1 基于MATLAB勺滤波器参数设置 74用VHDI设计FIR低通数字滤波器94.1寄存器104.2加法器模块124.3 乘法器模块 134.4 减法器模块 144.5截取模块155 FIR滤波器仿真166结论17主要参考文献19附录A20附录B21致谢31iii1引言1.1论文背景介绍数字滤波器是数字信号处理系统中一种基本的处理部件,滤波是指依据噪声与有用信 号频谱特性的不同,提取有用的信号,滤除不需要的信号,达到改变输入信号中所含频率 分量的
8、相对比例的目的。数字滤波器是一个离散的系统,该系统应用的对象是离散信号。 若用数字滤波器处理模拟信号,则需要对输入的模拟信号进行限带、抽样、量化和编码等 一系列操作。当离散信号通过特定的数字滤波器时, 滤波器可以提取信号所含有的有用信 息,这就是数字滤波器的功能。从结构上看, 数字滤波器可由数字乘法器、加法器和延时 单元组成。数字滤波器可以从两个方面来划分,按频率响应特性来分,可分为低通、高通、带通、 带阻滤波器;按单位脉冲响应长度来分,可分为有限长单位脉冲响应( FIR)滤波器和无 限长单位脉冲响应(IIR)滤波器10FIR滤波器与IIR滤波器各有特点,在选择时可以从实际应用时的要求出发,从
9、多方 面考虑加以选择20在用FIR滤波器设计和实现某些特定的应用时, 会比IIR滤波器更有 优势,例如用频率抽样设计法设计理想正交变换器、线性调频器等网络,会很灵活。在大多数数字信号处理的场合,数字滤波器被要求具有能对输入的信号实时处理并能 进行复杂的运算等功能,这些需求越来越普遍,也成为某些数字滤波器的性能指标。 在速 度方面,FPGA表现出了特有的优势。FPGA拥有丰富的连线资源和规范完整的内部逻辑 块整列,非常适合用于高并行度结构和细粒度的FIR滤波器的实现,相对于串行运算的通用DSP芯片来说,可扩展性与并行性都更好3】。在效率、性价比、功能和使用灵活性 方面有优势的FPGA数字信号处理
10、器,正在通信、电力系统、图像处理等领域发挥着巨 大的作用。运用分布式算法实现的FPGA滤波器具有运算速度与采样数据的宽度成正比的突出 优点,适合设计高速高阶的FIR滤波器,在节省硬件资源和提高系统运行速度方面有相 当大的优势。另外,可移植性较好,在设计不同参数的滤波器时,只需改变查找表的内容 就可以满足具体的实际需要%因此,这种方法在高速数字信号处理中将有很广的应用 领域。1.2 论文的主要研究内容本文讨论FIR滤波器的多种实现方案并对其进行比较。选择利用具有严格线性FIR滤波器的单位冲激响应的对称特性的方案, 用MATLAB中的FDATOOL工具设计一定性 能的FIR低通数字滤波器,获取滤波
11、器的单位脉冲响应序列,并进行量化。使用VHDL语言设计滤波器的基本结构,例如:延时单元、加法器、乘法器、减法器等;在顶层模块 中采用原理图输入方式实现各元件的互连。用MAX+PLUS U对本设计进行编译仿真,并与MATLAB计算出来的理论值进行对比分析。1.3 工作平台介绍1.3.1 MATLAB 介绍MATLAB (Matrix Laboratory的缩写)是美国 MathWorks公司推出的面向科学计算、 可视化以及交互式程序设计的商业数学软件。如今 ,MATLAB的功能不仅是解决矩阵与数 值计算,它将数值分析、矩阵计算、科学数据可视化、以及非线性动态系统的建模和仿真 等诸多强大功能集成在
12、一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行 有效数值计算的众多科学领域提供一个全面的解决方案,并在很大程度上摆脱了传统非交 互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水 平。由于功能非常强大,很多著作在进行理论验证或说明一些现象时都使用MATLAB作为辅助工具。在高校的推广和应用下,MATLAB已成为很多大学课程,如信号与系统、 数字信号处理等的基本教学工具。1.3.2 MAX+PLUS IIMAX+PLUS I是Altera公司上一代的PLD开发软件,提供FPGA/CPLD开发集成环 境。MAX+PLUS I界面友好,使用方便,被称为
13、业界最易学易用的EDA软件。MAX+PLUS I支持VHDL、原理图和Verilog语言文本文件,以及波形和 EDIF等文件作 为设计输入,并支持这些文件的混合设计,提供的设计环境与结构无关,使设计者能方便 快速地进行设计输入、迅速处理和器件的编程。MAX+PLUS I还拥有门级仿真器,可以进行功能和时序仿真,并产生精确的仿真结果。在适配之后,MAX+PLUS I生成供时序仿真用的VHDL、EDIF和Verilog 3种不同格式的网表文件【MAX+PLUS I具有以下特点:(1) 开放的界面,与结构无关;(2) 完全集成化,丰富的设计库;(3) 设计环境可用户化;(4) 支持各种硬件描述语言(
14、HDL )输入;(5) 具有OpenCore(开放核)特征;2 FIR滤波器2.1 FIR滤波器的基本概念FIR滤波器是数字信号处理系统中最基本的元器件,主要用来实现信号的预处理、带选、防混叠、抽选/插补、滤波和视频卷积等功能,它可以做成具有严格的线性相位的同 时也具有任意的幅频特性。此外,FIR滤波器能用快速傅里叶算法(FFT)来处理信号从而 提高运算效率并且滤波器是稳定的,这些特点与其单位抽样响应是有限长的有关。因此, FIR滤波器在通信、模式识别、图像处理等领域有着非常广泛的应用6o2.2 FIR滤波器的特点FIR数字滤波器可以是稳定的并且可具有良好的线性相位,这些优点是它能广泛应用 于
15、数字信号处理领域的关键。有限冲激响应(FIR)滤波器的特点牛(1) FIR滤波器的单位抽样响应是有限长的,因而滤波器性能稳定;(2) 既可以具有严格的线性相位,又可以具有任意的幅度;(3) 能用因果系统来实现,这是因为任何非因果有限长序列经过一定的延时,都能变 成因果有限长序列;(4) FIR有利于对数字信号的处理,方便编程,计算速度快,便于信号的实时处理;(5) FIR滤波器比较大的缺点就是要取得良好的衰减特性,H(Z)的阶次比IIR滤波器要高;(6) IIR滤波器的各种变换方法不适合FIR滤波器的设计,这是其系统函数决定的。2.3 FIR滤波器的结构与原理FIR数字滤波器是一个线性时不变系
16、统(LTI),其单位冲激响应的z变换为N AH(z)八 h(n)z(1)n=0式(1)系统差分方程为N 1y( n)= x( n) h( n尹 h( m) x( n m)(2)m=0由式(2)可知n时刻滤波器的输出值只决定于 n时刻滤波器的输入值以及过去 N-1个 输入值,画出其网络结构,如图1所示,这种结构称为直接型。对于图1所示的直接型结构,可以知道 N+1个系数才能描述N阶FIR滤波器,N阶 FIR滤波器得用N+1个乘法器和N个两输入加法器来实现。.x(n)1h(1)h(2)fh(3) kihfh(N-2) !9h(N-1)F-1AAh(0)y(n)39图1 :直接型结构如果FIR滤波器
17、的单位冲激响应h(n)满足式(3)所示的对称条件:h(M n) = h(n),n=0,1,M(3)则该因果系统具有严格的线性相位。利用此对称性制作n阶FIR滤波器可减少一半的乘法器:当n为偶数时,需要n/2个乘法器;当n为奇数时,则需要(n+1)/2个乘法器 在实际的电路中要尽可能的减少乘法器的使用, 这是因为电路的制作成本与乘法器的数目 成正相关,电路的运行速度与乘法器的数目成负相关。当M为偶数时,式可化为y(n) - h(l)x(n -I)I -0M/2 丄M八 h(l)x( n I) h(M/2)x( n M/2)h(l)x( nl)I卫Il/2 1M/2 JM /2 J=X h(l)x
18、(n-1) +h(M /2)x(nM /2)+ 迟 h(M l)x(n M +l)i 卫l =0把式带入式得到M/2 dy(n、八h(l)x( n-1) x( n-M I) h(M /2)x( n-M/2)l a(4)(5)x(n)11zz图2 :偶数型结构 同理,当M为奇数时,式可化为(M -4)/2y(n)工 嘉 h(l )x(n -1) x(n M I)l y(n)(6)对应的奇数型网络结构如图3所示:图3 :奇数型结构对应的偶数型网络结构如图2所示:3方案分析与设计3.1 FIR滤波器的设计方案FIR滤波器的设计方案相当多,一般情况下每个方案都有侧重的地方和适用的范围, 设计时会考虑速
19、度、资源、结构、稳定性等问题,有时会做出折中的选择。下面介绍几种 方案并分析比较。此方案是引用图1所示的直接型结构,它没有经过任何化简,采用并行运算的方式进 行。该方案速度快,通用性强,适合参数可变的 FIR滤波器匕但是要实现高阶滤波器 则会占用大量的资源,对于资源紧缺的 FPGA来说,不实际。本方案利用了具有严格线性FIR滤波器的单位冲激响应的对称特性,采用图2和图3 的结构,这样就可以减少一半的乘法运算, 节省资源。其运算采用并行方式,不过所选的 结构要由滤波器阶数的奇偶性来确定,可见此结构非常适合参数固定的FIR滤波器。若要用FPGA实现参数可变的FIR滤波器,则其网络结构必须是通用型的
20、。方案三 的网络结构仍采用直接型,只是在进行乘法运算时,用串行乘法代替并行乘法,拿更多的 运行时间来换取少占资源。串行乘法器模块图如图4所示,图中的A、B是两个N位的乘数。串行乘法器的工 作原理是:首先将输入数据B通过并串转换器使并行数据转换成串行数据,从数学的角 度来看即将其写成几个2的幕的和的形式;接着A和转换后的数据B进入乘法器,运算 结果通过加法器;最后将加法器的输出进行循环移位累加,N次移位相加后输出结果。图4 :串行乘法器方案四:本方案使用乘法表来实现乘法运算,用查表的方式来得到两输入数的乘积结果, 即把两乘数作为ROM的地址,对应的单元数据就是乘积。此方法精度高,速度快,结构简单
21、, 适合参数固定,数据位数少的滤波器,如果数据位数多则就不合适10方案四的结构图如图5所示:Vy(n)图5 :采用乘法表的滤波器结构方案五:本方案综合了方案三、方案四,有了较好的改进,基本原理如下:假设滤波器是N阶的M位,则系统的差分方程为N -Jy(n)八 h(k)x(n - k)(7)k=0可表示为NVM -1M V N-1y(n )= x(n - k) 2ih(k)x 2 h(k)i x (nk)(8)k=0i =0i=0 k=0由式 可以得到该方案的结构,如图6所示,其中的用串行时序来实现,2,用i z:0移位寄存器来实现,x(n-k)h(k)用N个1 x W乘法器来实现,笄用加法树来
22、实现。kz&此外,要实现用方案五制作的FIR滤波器的滤波功能,除了需要上述的串行时序、移 位寄存器、N个1X W乘法器、加法树外,还需要设计一个总控制单元用于协调各部件按 照设定的时序运行,完成FIR滤波操作。y(n)图6:方案五结构图以上讨论了五种制作FIR滤波器的方法,各有优缺点,结合自己本身的情况和方案 的设计难易程度综合考虑,决定选择方案二的结构来完成本次的毕业论文。3.2 FIR滤波器指标设计本文设计的FIR低通数字滤波器的设计指标为:(1) 滤波器阶数为18阶;(2) 采用Kaiser窗函数设计,Beta为0.5 ;(3) 采样频率Fs为48KHZ ,截止频率Fc为10KHZ ;(
23、4) 输入序列位宽为8位的有符号数;(5) 输出序列的位宽为8位的有符号数。3.2.1 基于MATLAB的滤波器参数设置在MATLAB的命令编辑窗口中输入 Fdatool指令,回车后即可打开 Filter Design & Analysis Tool窗口,如图7所示,利用此工具,可以快速的完成FIR滤波器系数的计算工 作。由图7可知Fdatool界面可分为两大部分,在界面的上半部分是特性区,用来显示滤 波器的各种特性;界面的下半部分则是滤波器设计区,用来设置滤波器的参数。Filter Design 4 Analysis Tool untit Led, fdaEilt Edit Lntlyiis
24、Vi r ound_ 8Col iiinn 1 T.livoiih 14-9-4IO11-7-23-4509950一4 -23-7Columns 15 t hiroufjh IS111OL 连l9图12:整数化后的冲激系数4用VHDL设计FIR低通数字滤波器FIR低通数字滤波器可分为以下五种模块:寄存器、加法器、乘法器、减法器、截取模块,完成所需的相关模块后在顶层文件中进行连接,综合,以实现低通滤波功能。本文的FIR低通滤波器的原理图如图13所示。图中的z寄存器模块有两个不同的功 能,乘法器级之后的只起到信号延时的作用, 目的是为了整体仿真时内部信号在时序上的 一致性。x(n)7二1zz*缶r
25、FAz1z_z丿L +H +zzzzzzzXzz截取模块+z-1z-1z-1z,(+)z-1y(n)图13: FIR低通滤波器的原理图4.1 寄存器寄存器用来寄存一组二值代码,对其触发器只要求具有置0、置1的功能即可。本文用D触发器组成两种不同的寄存器,实现寄存功能。(1)具有异步复位功能,当rst=1时,输出信号Dout=0;当rst=0且elk上升沿脉冲 到达时Dout=Din ;如图14所示。REG8HSTCLKDOUT 7 .-|图14:第一种寄存器程序如下所示:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_AR
26、ITH.ALL;ENTITY reg8 ISPORT(rst:IN STD_LOGIC;clk:IN STD_LOGIC;Di n:IN SIGNED(7 DOWNTO 0);Dout:OUT SIGNED(7 DOWNTO 0); END reg8;ARCHITECTURE rt OF reg8 ISBEGINPROCESS(clk,rst)BEGINIF (rst=1 )THENDout0);ELSIF(clkEVENT AND clk=1) THENDout=D in;END IF;END PROCESS;END rt;仿真结果如图15所示:Value.h二血200 01:25001:3
27、00 Ou35D01Sd山、吃【阳Illi曲1 IDJick1PDin099t打则DO0:L 亠;:ISJc图15:寄存器仿真结果(2)不具有异步复位功能,仅起到数据暂存作用,在电路中的作用是使得电路中的 信号在时序上保持一致。如图16所示,程序与第一种类似。REG1 丄CLKDOUT JLO. . OB IHl. O niiiaaBBina “ mm u = j n i h n图16:第二种寄存器4.2 加法器模块加法器用来完成两个有符号数的相加运算。在时钟信号上升沿到达时,对输入的两有 符号数进行相加运算后输出结果。加法器有并行进位和串行进位两种组成方式: 串行进位 加法器运算速度慢,资源
28、占用少,而并行加法器刚好相反。本文所用的加法器都采用并行进位方式, 共有以下几种加法器:两个8位有符号数相 加产生9位有符号数的加法器、11位和13位有符号数相加产生14位有符号数的加法器、 两个13位有符号数相加产生14位有符号数的加法器、12位和14位有符号数相加产生15 位有符号数的加法器、11位和15位有符号数相加产生16位有符号数的加法器、15位和 16位有符号数相加产生17位有符号数的加法器、14位和16位有符号数相加产生17位有 符号数的加法器、14位和17位有符号数相加产生18位有符号数的加法器。仅以15位有符号数加16位有符号数生成17位有符号数的加法器为例,其模块框图 如图
29、17所示。-Cl-KDZ HX- 0JDOUT. - 0D 3 N2 XS十r图17:加法器结构图程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY add151617 ISPORT(clk:IN STD_LOGIC;Din1:IN SIGNED(14 DOWNTO 0);Din2:IN SIGNED(15 DOWNTO 0);Dout:OUT SIGNED(16 DOWNTO 0);END add151617;ARCHITECTURE rt OF add151617 ISBEGINPR
30、OCESS(clk)BEGINIF(clkEVENT AND clk=1) THENDout=(Di n1(14)&Din 1(14)&Din 1)+(Di n2(15)&Di n2);END IF;END PROCESS;END rt;仿真结果如图18所示:4.3 乘法器模块本文设计的乘法器具有对输入数据进行固定的放大作用,即乘法器的系数是固定的。 乘法器在时钟信号上升沿到达时,完成输入的有符号数与滤波器系数这两个数的乘法运 算,之后输出结果。考虑速度和资源,确定系数的乘法运算可以用移位相加来实现,即将系数分解成几个 2的幕的和形式80本文设计的FIR低通数字滤波器系数分别为-9、-4、10
31、、11、-7、-23、 -4、50、99、99、50、-4、-23、-7、11、10、-4、-9。由于采用了偶数型的对称结构, 滤波器的系数只需要使用一半,即乘法器数目减半。在编写程序时,所有的系数都先当成 正值,在后面的求和运算时改为减法运算即可。以乘99乘法器为例,其模块框图如图19所示。:liULT 汨:CLKOOUTCXS 1 DINE 8= 0aiiiaianiBiaracm !图19:乘99乘法器结构图乘99乘法器程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY mult9
32、9 ISPORT(clk:IN STD_LOGIC;Di n:IN SIGNED(8 DOWNTO 0);Dout:OUT SIGNED(15 DOWNTO 0); END mult99;ARCHITECTURE rt OF mult99 ISSIGNAL s1:SIGNED(14 DOWNTO 0);SIGNAL s2:SIGNED(13 DOWNTO 0);SIGNAL s3:SIGNED(9 DOWNTO 0);SIGNAL s4:SIGNED(15 DOWNTO 0);BEGINA1:PROCESS(Di n)BEGINs1=Di n&000000;s2=Di n&00000;s3=D
33、i n&0;IF(Di n( 8)=0) THENs4=(0&s1)+(00&s2)+(00000&s3)+(0000000&Di n);ELSEs4=(1&s1)+(11&s2)+(11111&s3)+(1111111&Di n);END IF;END PROCESS;A2:PROCESS(clk,s4)BEGINIF(clkeve nt and clk=1) THENDout=s4;END IF;END PROCESS;END rt;仿真结果如图20所示:4.4 减法器模块减法器的原理与加法器类似,区别仅在于输出结果为两数的差值。当时钟信号上升沿 到来时,实现两个有符号数的相减操作,并输出
34、结果。本文采用18位有符号数减去17位有符号数生成18位有符号数的减法器,其结构框图与加法器差别不大。程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY sub181718 ISPORT(clk:IN STD_LOGIC;Din1:IN SIGNED(17 DOWNTO 0);Din2:IN SIGNED(16 DOWNTO 0); Dout:OUT SIGNED(17 DOWNTO 0);END sub181718;ARCHITECTURE rt OF sub181718 ISBEGI
35、NPROCESS(clk)BEGINIF(clkEVENT AND clk=1) THENDout=Di n1-(Di n2(16)&Di n2);END IF;END PROCESS;END rt;仿真结果如下图21所示:h.dirt:MOJnsVs腮JJ3510!ij0厂5竝戌图21 :减法器仿真结果4.5 截取模块减法器的下一级是电路的最后一级,减法器的输出为18位有符号数,按照设计要求输出为8位数据,所以截取模块将减法器输出的18位数据低位舍去直接输出高8位,因 此截取后的输出近似等于除掉了 2A8即256后的结果。模块结构图如图22所示:CLKDOUT 7 . 22L图22:截取模块
36、结构图 程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY cut188 ISPORT(clk:IN STD_LOGIC;Di n:IN SIGNED(17 DOWNTO 0);Dout:OUT SIGNED(7 DOWNTO 0);END cut188;ARCHITECTURE rt OF cut188 ISBEGINPROCESS(clk)BEGINIF(clkEVENT AND clk=1) THENDout=Din(17 downto 10);END IF;END PROCESS
37、;END rt;仿真结果如图23所示:3O.:r;41rs On?600nsE.(hs11r0J罰朴】3E36J30drDoulcsD :5!?3 i3ii J图23 :截取模块仿真结果5 FIR滤波器仿真MAX+PLUS U仿真器的Grid size项(此项用来设置时钟脉冲的周期)设置为50ns,Endtime(结束时间)设置为5.0 us。任意设定输入的信号为:Din = 98 , 0, 0, 0,76, 0,0,0, 98,0,0, 0,76, 0,0,0,98,0,0,0,76,0,0, 0, 98, 0, 0, 0,76, 0,0,0, 98 ,0,0, 0,76, 0,0,0,98
38、,0,0,0,76,0,0, 0, 98, 0 o得到的仿真结果如图24所示:I珊VcIjs;剤I1皿玉;切10us5J313nhRSTtf-CLkDFDIN|7.Q|网Rel o :时 o 沖;g o :$Doulp.O|:012.3us 2.4ue 2.5ls 2.5us 2Ju$ 2.9us 2Sus 3Ous 3Jus 12e 3.3us 3.4us 3.Eus l.Bus 37us 3.Eus 3.EleHus 4.2ij$ 13ub Uos 16ub I6us Vjs 4iiriiiiiiiiiiiiiiriiiiiii1注 10 J 76 L 丄叽 7:时 im 】b . n i
39、 j b j弋m:丨 H ? E e ;图24: 18阶FIR滤波器滤波结果6结论用MATLAB计算FIR低通滤波器的输出结果,运算公式为 yn=conv(xn,hn),与仿真器得到的结果如下表1所示:表1:仿真结果验证输出结果yn理论值MATLAB 卷积值 /256仿真结果 经仿真器仿真-0.8613255-0.38282550.957001.05271-1.3379254-2.49802530.359405.601658.093887.384875.445354.380943.808634.179745.123056.26176y06.00396Y16.00396y26.26176y35.
40、12305y43.51173y53.51173y65.12305y76.26176y86.00396y96.00396yi06.26176yii5.12305yi23.51173yi33.51173yi45.12305yi56.26176yi66.00396yi76.00396MAX+PLUS U的仿真器支持四种类型的数: 二进制、四进制、八进制、十六进制9o 当进行减法运算时,如果被减数小于减数则被减数会向高位借位, 使输出结果为正。在此 情况下,如果仿真器结果显示 255,实际的数为-1、254则为-2、253实际为-3。对于仿 真器输出的是正数还是负数,要通过上级减法器的两个输入信号的仿
41、真波形图来判断。 修 正表1中的数据后,用MATLAB制作18阶FIR滤波器理论值与仿真值对比图如图 25所 示,其中虚线为理论值,实线为仿真值。FIR濾波器理论慣与萌哥便対比日I=B2一一虐鹫)丸理论值 (实践)湖饌谊1015302530图25: 18阶FIR滤波器理论值与仿真值对比图由表1可以看出,仿真结果与MATLAB计算出来的输出信号理论值基本吻合,且波 形基本没有毛刺,达到设计要求。此外,从图25中也可以证明这点。图25理论值与仿真 值所表现出来的误差,可以从三个方面进行理解:首先,用MATLAB获取滤波器系数时进行了取整运算,舍去了小数位,产生误差;其次,在本设计顶层电路的最后一级
42、使用了 截取模块,采用直接截取数据高8位的方式,这样不可避免的带来了误差;最后, VHDL 仿真器进行时序仿真时会存在延时问题从而影响输出结果,对于这方面的影响,可增加时钟周期的宽度来减小。主要参考文献:1 潘松,王国栋.VHDL实用教程M.成都:电子科技大学出版社,2007.2 程佩青.数字信号处理教程M.北京:清华大学出版社,2008.3 张秀娟.基于DA算法的FIR数字滤波器的FPGA设计J.计算机与数学工程,2010(6):165.4 薛严冰,韩雪,邵远.基于分布式算法的 FIR数字滤波器的FPGA实现J.大连交通大学学报2009,8:84-87.5 周品.MATLAB神经网络设计与应
43、用M.北京:清华大学出版社,2013.刘欲晓,方强.EDA技术与VHDL电路开发应用实践M.北京:电子工业出版社,2009.7 岑光基于FPGA的FIR数字滤波器研究与设计D.西安:西安电子科技大学生物医学工程系,2011.8 王丹琦,赵惠昌一种基于MATLAB及FPGA的FIR低通数字滤波器的设计与实现J.电子设计工程,2010,7:131-134.9 Volnei A.Pedroni.VHDL数字电路设计教程M.北京:电子工业出版社,2013.附录AFIR低通数字滤波器的原理图Icut188y(n)附录B乘法器与加法器程序乘4乘法器程序:LIBRARY IEEE;USE IEEE.STD_
44、LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY mult4 ISPORT(clk:IN STD_LOGIC;Di n:IN SIGNED(8 DOWNTO 0);Dout:OUT SIGNED(10 DOWNTO 0); END mult4;ARCHITECTURE rt OF mult4 ISSIGNAL s1:SIGNED(10 DOWNTO 0);BEGINA1:PROCESS(Di n)BEGINs1=Di n&00;END PROCESS;A2:PROCESS(clk,s1)BEGINIF(clkeve nt and clk=1)
45、 THEN Dout=s1;END IF;END PROCESS;END rt;乘7乘法器程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY mult7 ISPORT(clk:IN STD_LOGIC;Di n:IN SIGNED(8 DOWNTO 0);Dout:OUT SIGNED(11 DOWNTO 0);END mult7;ARCHITECTURE rt OF mult7 ISSIGNAL s1:SIGNED(10 DOWNTO 0);SIGNAL s2:SIGNED(9 DOW
46、NTO 0);SIGNAL s3:SIGNED(11 DOWNTO 0);BEGINA1:PROCESS(Di n)BEGINs1=Di n&00;s2=Di n& 0;IF(Di n( 8)=0) THENs3=(0&s1)+(00&s2)+(000&Din);ELSEs3=(1&s1)+(11&s2)+(111&Din);END IF;END PROCESS;A2:PROCESS(clk,s3)BEGINIF(clkeve nt and clk=1) THENDout=s3;END IF;END PROCESS;END rt;乘9乘法器程序:LIBRARY IEEE;USE IEEE.ST
47、D_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY mult9 ISPORT(clk:IN STD_LOGIC;Di n:IN SIGNED(8 DOWNTO 0);Dout:OUT SIGNED(12 DOWNTO 0);END mult9;ARCHITECTURE rt OF mult9 ISSIGNAL s1:SIGNED(11 DOWNTO 0);SIGNAL s2:SIGNED(12 DOWNTO 0);BEGINA1:PROCESS(Di n)BEGINs1=Di n&000;IF(Di n( 8)=0) THENs2=(0&s1)+(0000&Din);ELSEs2=(1&s1)+(1111&Din); END IF;END PROCESS;A2:PROCESS(clk,s2)BEGINIF(clkeve nt and clk=1) THEN Dout=s2;END IF;END PROCESS;END rt;乘10乘法器程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据安全管理员安全宣传评优考核试卷含答案
- 矿井制冷降温工岗中工作技巧考核试卷含答案
- 儿童发育指导师安全文化强化考核试卷含答案
- 花艺环境设计师安全生产知识水平考核试卷含答案
- 通信传输设备装调工安全培训知识考核试卷含答案
- 粉末冶金烧结工岗中岗位环保责任制考核试卷含答案
- 2026木质生物质能源发电项目投资回报周期报告
- 2026第三代半导体在新能源发电系统渗透率提升趋势研究报告
- 2026抗电磁干扰低压电缆在医疗设备中的应用前景评估
- 2026中国液体化工物流行业价格形成机制报告
- 数字疗法市场调研报告
- 杆塔基础监理实施细则
- 阿里巴巴内部政委制度
- 项目管理基本知识课件
- 角磨机安全使用培训课件
- 第一单元学习项目一《没有共产党就没有新中国》课件人音版(简谱)初中音乐八年级上册
- 高素质农民培育项目服务方案投标文件(技术方案)
- 登高车培训试题及答案
- 药学实验大赛试题及答案
- DL∕T 5097-2014 火力发电厂贮灰场岩土工程勘测技术规程
- 吉利汽车经销商运营手册
评论
0/150
提交评论