


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA课程设计报告-线性相位FIR滤波器(仃阶)的VHDL语言设计滤波器设计参数:根据要求,要设计一个输入 8位,输出8位的17阶线性 相位FIR滤波器,所以采用图2(a)的方式,其中输入信号范围为:土 99, 0,0, 0, ± 70,0,0,0, ± 99,0,0,0, ± 70,,此滤波器 Fs 为 44kHz,Fc 为 10.4kHz。(一)FIR数字滤波器理论简述有限冲激响应(FIR)数字滤波器和无限冲激响应(IIR )数字滤波器广泛应 用于数字信号处理系统中。IIR数字滤波器方便简单,但它相位的非线性,要求 采用全通网络进行相位校正,且稳定性难以保障。
2、FIR滤波器具有很好的线性相位特性,使得它越来越受到广泛的重视。有限冲击响应(FIR)滤波器的特点:1既具有严格的线性相位,又具有任意的幅度;2 FIR滤波器的单位抽样响应是有限长的,因而滤波器性能稳定;3只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序 列,因而能用因果系统来实现;4 FIR 滤波器由于单位冲击响应是有限长的,因而可用快速傅里叶变换 (FFT)算法来实现过滤信号,可大大提高运算效率。5 FIR也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对 实时的信号处理很重要。6 FIR滤波器比较大的缺点就是阶次相对于IIR滤波器来说要大很多。FIR数字滤波器是一
3、个线性时不变系统(LTI ),N阶因果有限冲激响应滤波 器可以用传输函数H (z)来描述,NH(z)二' h(k)z°(0.1)k=0在时域中,上述有限冲激响应滤波器的输入输出关系如下:Nyn = xn hnxkhnk(0.2)k=0其中,x n和y n分别是输入和输出序列。N阶有限冲激响应滤波器要用 肝1个系数描述,通常要用N+1个乘法器和N 个两输入加法器来实现。乘法器的系数正好是传递函数的系数,因此这种结构称 为直接型结构,可通过式(1.2 )来实现,如图1。h(0) “当冲击响应满足下列条件时, 器:图1FIR滤波器具有对称结构,为线性相位滤波(1.3)h(n) =h
4、(N -1 -n)这种对称性,可使得乘法器数量减半:对 n价滤波器,当n为偶数时,乘法器的 个数为n/2个;当n为奇数时,乘法器的个数为(n+1)/2个。在电路实现中,乘 法器占用的逻辑单元数较多。乘法器的增加,意味着电路成本增加,另外对电路的工作速度也有影响。N阶线性相位的因果FIR系统的单位冲激响应滤波器可用对称冲激响应hn =hN -n hn =hN - n(0.3)或者反对称冲激响应hn = -hN -n hn = -h N - n(0.4)来描述。具有对称冲激响应的FIR传输函数的冲激响应可写成如下形式: 当N为偶数时NH(z)八 hnz"n =eN12八 hn(z*n =
5、0(0.5)当N为奇数时NH(z)八 hn茴n=0'h n (z(0.6)n=0则FIR线性相位系统的结构可转化成如图2(a)和图2 (b)所示tvZ'1* 2-1%)图2(b) N为偶数(二)设计方案随着数字技术日益广泛的应用,以现场可编程门阵列(FPGA)为代表的ASIC 器件得到了迅速普及和发展,器件集成度和速度都在高速增长。 FPGA既具有门 阵列的高逻辑密度和高可靠性,又具有可编码逻辑器件的用户可编程特性, 可以 减少系统设计和维护的风险,降低产品成本,缩短设计周期。分布式算法是一种以实现乘加运算为目的的运算方法。它与传统算法实现乘加运算的不同在于执行部分积运算的先后
6、顺序不同。简单地说,分布式算法在完成乘加功能时是通过将各输入数据每一对应位产生的部分积预先进相加形成相 应部分积,然后在对各部门积进行累加形成最终结果, 而传统算法是等到所有乘 积产生之后再进行相加来完成乘加运算的。 与传统算法相比,分布式算法可极大 地减少硬件电路规模,很容易实现流水线处理,提高电路的执行速度。FPGA有着规整的内部逻辑块阵列和丰富的连线资源,特别适合细粒度和高 并行度结构特点的数字信号处理任务,如 FIR、FFT等。利用FPGA实现FIR滤 波器的设计过程,并且对设计中的关键技术一一分布式算法进行详细描述。一、FIR滤波器的结构FIR滤波器的结构主要是非递归结构, 没有输出
7、到输入的反馈。并且FIR滤 波器很容易获得严格的线性相位特性,避免被处理信号产生相位失真。而线性相 位体现在时域中仅仅是h( n)在时间上的延迟,这个特点在图像信号处理、数据传 输等波形传递系统中是非常重要的。 此外,他不会发生阻塞现象,能避免强信号 淹没弱信号,因此特别适合信号强弱相差悬殊的情况。二、FIR数字滤波器的设计方案:通常采用窗函数设计FIR滤波器方法简单,但是这些滤波器的设计还不是最 优的。首先通带和阻带的波动基本上相等, 另外对于大部分窗函数来说,通带内 或阻带内的波动不是均匀的,通常离开过渡带时会减小。若允许波动在整个通带 内均匀分布,就会产生较小的峰值波动。因此考虑通过某种
8、方法,对滤波器的结构进行优化对于线性相位因果FIR滤波器,它的系列具有中心对称特性,即h(i)= ±N-1-i)。令 s(i)=x(i)x(N±1-i),对于偶对称,代入式(1)可得:>V/2ly(n)=工丫r*=0£=0根据要求,要设计一个输入8位,输出8位的17阶线性相位FIR滤波器, 所以采用图2(a)的方式,其中输入信号范围为:土 99, 0,0,0, ± 70,0,0, 0, ± 99,0,0,0, ± 70,此滤波器 Fs 为 44kHz,Fc 为 10.4kHz。MATLAB 设计计算滤波器系数过程如下:FIR滤波
9、器参数设置,因为是17阶,所以Specify order处填16, h(0)=0.” Responsa Type _® LowpassO HighfpKSO BandpassO EteMstgpO WffErenrtisrtcir .Design Mefriod 一Butterworth HR WSndowFitef Order<*) Specify order: |l 60 Minimum orderVMndow:Beta: Scale PassbandMagniude SpecilicBtiansFrequeficy Specificaiiori&The Nenut
10、iciri 曲 cutofffreoiuencies is lixed art6dB储 11 the passband gain)FIR滤波器的幅频响应Currenl Filter infarmation iMfegnitude Response (dB)Slructure:Direct-Ferm FIROrder16SlfltllKYbsSoiree:DesignedStore Filter .Fter Manager .jFIR滤波器的相频响应 Current Filter Inlormrtion'Stnuciure:Direct-Form FROrdter:16St stole:
11、YesSource:DsEignsdStore Filter .Frt&r Manager .1FreqyencY (kHz)0248 e 101214161820Frequency (kHz)000000-2-4=6 M*J6 电羔叟CL-SOOFIR滤波器的冲激响应IOurrent Fit er kifometiori'Impulse ResponseTime (mseconds)Stare Filter.nFilter Manager .)Sinjcture:Dieci-Form AROrder:1BStable:VesSourceDesignedFIR滤波器系数-0b0
12、23832713892230S -00 0?£Z0533&4713430 0565459SS173748361 -0 0Z63 36210116276 707 -0 B101"? 44 51S5Z 90 33 4 60 0?7071 &30E747E£ 1 U 31£41994997411£30 47Z1Z7Z7Z7Z7Z727Z0 0Z70371G30£747Z51 -0.10174451S5Z9Q3346 -0 0 0S654595S1737483610 0?£Z 05 33&2 6 4713 3
13、4 3 -0 03Sei477ei£3S255SZ -0 ID S3 £7136 S9 30 5对FIR滤波器的系数进行调整,整数化>HumNum -Cclumixs I through T-0.0469-0.07030.05030. 1133-0.0503-0.2031C cl limns 9through140 63230.0453053280.0547-0.£031-0.0506CoIwmi 15thr>ugh170 0503-0.OT03-004G9» NW 0日)MIS -Cdumnz 1through13-12 -161329-1
14、3-5214162242162CdwMis 14thr >ughn曲13-18'120. 054T0. 113314-52-13可得 FIR 滤波器的参数为-12-18 13 29 -13 -5214162 242 14-52 -13 2913 -18 -12根据以上所说的该思路,可以将 FIR滤波器的原理图设计如下:滤波器原理图D匚Q I#Q LI8Y7Q下面对各加法器乘法器的输出位数进行分析,对第一级加法器,输入全为 8 位,输出统一为9位。对各个乘法器进行分析,12=8+4, 8为2的3次方,向左 移了 3位,输出为12位;18=16+2, 16为2的4次方,向左移了 4位
15、,输出为 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=1782+2030+3640+16038=23490, 2 的 15 次方为 32768,再加上一位符号位,所以输出应为 16 位,由此类推, 12、 18 乘法器输 出之和为 13 位
16、, 13、19 乘法器输出之和应为 13 位,总输出为 14 位。另一支路 上, 13、52乘法器输出之和为 14位, 14、162 乘法器输出之和为 16位,其总输 出之和为 16 位,最后这两路输出之和为 16 位。将后 8 位舍去,加上由乘法器 242 输出舍取得倒的 8位,总输出为 8位。至此,所有器件的输入输出都可判定。 下面进入模块设计阶段。(三) 模块电路设计设计的 FIR 滤波器由 19 个小 VHD 文件和一个总体 BDF 文件组成, VHD 文 件可以分为以下四种模块:寄存器、加法器、减法器、乘法器。3 1 寄存器3.1.1 寄存器原理寄存器用于寄存一组二值代码,对寄存器的
17、触发器只要求它们具有置1、置0 的功能即可,因而本设计中用 D 触发器组成寄存器,实现寄存功能。3.1.2 寄存器要求实现的功能在 CP 正跳沿前接受输入信号, 正跳沿时触发翻转, 正跳沿后输入即被封锁。寄存器的 VHDL 语言实现( 8 位)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff8 ISPORT( clk :IN STD_LOGIC;clear : IN STD_LOGIC;Din :IN STD_LOGIC_VECTOR(7 DOWNTO 0);Dout :OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );
18、END dff8;ARCHITECTURE a OF dff8 ISBEGINPROCESS(clk,clear)BEGINIF clear='1' THENDout<="00000000"ELSIF clear='0' THENIF(clk'EVENT AND clk='1') THENDout <= Din;END IF;END IF;END PROCESS;END a;其中,clear为复位信号寄存器的模块图瞽具冷费打和打打"和皿费事打直冷龚打静瞽具冷费打和打打"和皿费事打直冷龚打
19、静3. 2加法器加法器的原理在将两个多位二进制数相加时,除了最低位以外,每一位都应该考虑来自低 位的进位,即将两个对应位的加数和来自低位的进位 3个数相加。这种运算称为 全加,所用的电路称为全加器。多位加法器的构成有两种方式:并行进位和串行进位。并行进位加法器设有 进位产生逻辑,预算速度较快;串行进位方式是将全加器级联构成多位加法器。 并行进位加法器通常比串行级联加法器占用更多的资源。随着为数的增加,相同位数的并行加法器与串行加法器的资源占用差距也越来越大,因此,在工程中使用加法器时,要在速度和容量之间寻找平衡点。本次设计采用的是并行加法器方式。加法器要求实现的功能实现两个二进制数字的相加运算
20、。当到达时钟上升沿时,将两数输入,运算, 输出结果。加法器的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;ARCHITECTURE a of a
21、dd121616 isSIGNAL s1: signed(15 downto 0);BEGINs1<=(Di n1(11)&Din 1(11)&Di n1(11)&Din 1(11)&Di n1);PROCESS(Di n1,Di n2,clk)BEGINif clk'event and clk='1' thenDout<=s1+Di n2;end if;end process;end a;324加法器的模块图-7 姦纟 FaddiiieiC-纟卑一elkin215.D 乡E s .$ ; instDout15. 0)加法器的
22、波形仿真完全符合设计要求。3. 3减法器 减法器的原理减法器的原理与加法器类似,尤其是并行式的减法器也加法器的区别仅仅在于最 后的和数为两数相减。如:Dout<=Di n2-s1;减法器要求实现的功能由上面简化电路的需要,当乘法器常系数为负数的,可以取该数的模来作为 乘法器的输入,其输出作为一个减法器的输入即可。故减法器要实现两个二进制 数相减的运算。当到达时钟上升沿时,将两数输入,运算,输出结果。减法器的VHDL语言实现(以下以16位数减去14位数输出16位数的减法器为例)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOG
23、IC_arith.ALL;ENTITY sub141616 isPORT(clk : in STD_LOGIC;Din1 :in signed (13 downto 0);Din2 :in signed (15 downto 0);Dout :out signed(15 downto 0);END sub141616;ARCHITECTURE a of sub141616 isSIGNAL s1: signed(15 downto 0);BEGINs1<=(Di n1(13 )&Di n1(13 )&Di n1);PROCESS(Di n1,Di n2,clk)BEGIN
24、if clk'event and clk='1' thenDout<=Di n2-s1;end if;end process;end a;减法器的模块图减法器的波形仿真10 9-如Q nE3O-911540 950- 9 ns60+1 BiniS 25田 Bin2S -53elkS 12田 DoutS 23NameValu.15, B完全符合设计要求【T2 X 幺Xj( 0 n X -5X s)t iiiii oi i r1III(_2_匸23 漱-TBX 83旷15.&25 nsJ乘法器的原理从资源和速度考虑,常系数乘法运算可用移位相加来实现。将常系数分
25、解成 几个2的幕的和形式。下例为乘18电路设计,算法:18=16+2乘法器要求实现的功能实现输入带符号数据与固定数据两个二进制数的乘法运算。当到达时钟上升 沿时,将两数输入,运算,输出结果。乘法器的VHDL语言实现LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY mult18 isPORT(clk :IN STD_LOGIC;Din :IN SIGNED (8 DOWNTO 0);Dout :OUT SIGNED (12 DOWNTO 0);END mult18;ARCHITECTURE a
26、 OF mult18 ISSIGNAL s1 : SIGNED (12 DOWNTO 0);SIGNAL s2 : SIGNED (9 DOWNTO 0);SIGNAL s3 : SIGNED (12 DOWNTO 0);BEGINP1:process(Di n)BEGINs1(12 DOWNTO 4)<=D in;s1( 3 DOWNTO 0)<="0000"s2(9 DOWNTO 1)<=Di n;s2(0)v='0'if Din(8)=0 thens3<=('0'&s1(12 dow nto 1)+(&q
27、uot;0000"&s2(9 DOWNTO 1);elses3<=('1'&s1(12 dow nto 1)+("1111"&s2(9 DOWNTO 1);end if;end process;P2: PROCESS(clk) BEGINif clk'event and clk='1' thenDout<=s3; end if;END PROCESS;END a;乘法器的模块图纟 rmuitia ' ' " ' 纟Dout12 JD4 ! msti zy
28、s乘法器的波形仿真¥皿.15.0 .3 DinX-1:4Jt20J1XVC来 T12JL15XX030. Q mS 36吗D 9IQ ¥ 皿ZD.I nx15.05 nsJ完全符合设计要求。(四)FIR滤波器整体电路FIR滤波器的整体电路基本与其原理图类似。整体电路如下图所示:(限于篇幅,将整体电路缩小如上,详见电子版源程序框图firl.bdf。)(五)FIR滤波器整体电路仿真结果1、设定输入信号根据设计要求,输入信号范围是:± 99, 0, 0, 0,± 70, 0, 0, 0,± 99, 0, 0, 0, ± 70,我们任意设定输
29、入信号为:X = 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, 02、输出信号理论值由FIR数字滤波器的公式/v-iy(n)=工 h(i)x(n-i)= £I乩邮1l£渤 14 hiiFiLKfVlJIE 3Hol040.0 u. SG.Q 代MlrTrLrLnTTjmrLnrL厂rLTLn_nmriII-aster Tut Bit:16.61 asPointer:630.83 diInternl613.9& di
30、Stirt:Vtln|WC>0W.pm剧.卩 u蝴»T2D.D uT16. a.0 Dlds wh 10 x00no0畑 Y0YtoYL汁戈£ YmY n t«K 0 :IP5 QI5 1hLn_n_n_n_n_n_n_n_n_rLn_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r0 OnlL5 D母Dlddturdk(六)结论输出结果yn理论值仿真结果MATLAB 卷积值 /5i2经仿真器仿真-2.3203-3-3.4805-42.51372 5.60745-4.1543-5-12.516-134.4844435.2893542.6954120.734207.1348717.7011726.4182615.24158.9121824.69924y038.59837yi24.69924y28.91218y315.2415y424.77724y515.2415y68.91218y724.69924y838.59837y924.69924yi08.91218yii15.2415yi224.77724yi315.2415yi48.91218yi524.69924yi638.59837yi724.69924由上面仿真波形可以读出结果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共政策实施的监测与评估试题及答案
- 公共政策调研的方法与技巧试题及答案
- 理论与实践结合的复习法试题及答案
- 软件设计师职场生存法则试题及答案
- 2025年医药电商合规管理对市场秩序的维护与规范作用报告
- 软考网络工程师考试答题技巧分享及试题及答案
- 机电工程中的人力资源管理实践试题及答案
- 机电工程计算与应用试题及答案
- 机电产品研发流程试题及答案
- 数字证书应用试题及答案
- 2024年江苏省如皋市事业单位公开招聘教师岗考试题带答案分析
- 中班语言学习活动优化计划
- 2025年下半年华电金沙江上游水电开发限公司校园招聘易考易错模拟试题(共500题)试卷后附参考答案
- 计算机网络安全基础试题及答案
- 动漫产业协同创新与产业链协同效应动态变化趋势及对策建议报告
- 2025年教育管理与政策研究考试试题及答案
- 2025年江苏省南京市玄武区中考一模历史试卷
- 2025年新媒体运营专员面试题及答案
- 2019人教版高中数学B版 必修第3册《第七章 三角函数》大单元整体教学设计2020课标
- 人防知识考试试题及答案
- 《企业数据安全策略》课件
评论
0/150
提交评论