f.i.r.滤波器设计报告

合集下载

FIR滤波器设计实验报告

FIR滤波器设计实验报告

FIR滤波器设计实验报告实验报告:FIR滤波器设计一、实验目的:本实验旨在通过设计FIR滤波器,加深对数字信号处理中滤波器原理的理解,掌握FIR滤波器的设计方法和调试技巧。

二、实验原理:在窗函数法中,常用的窗函数有矩形窗、三角窗、汉明窗和黑曼窗等。

根据实际需求选择适当的窗口函数,并通过将窗口函数应用到理想低通滤波器的冲激响应中,得到FIR滤波器的冲激响应。

三、实验步骤:1.确定滤波器的阶数和截止频率。

2.选择适当的窗口函数,如汉明窗。

3.计算出理想低通滤波器的冲激响应。

4.将选定的窗口函数应用到理想低通滤波器的冲激响应中。

5.得到FIR滤波器的冲激响应。

四、实验结果:假设要设计一个阶数为10的FIR滤波器,截止频率为800Hz,采样频率为1600Hz。

1.选择汉明窗作为窗口函数。

2.根据采样频率和截止频率计算出理想低通滤波器的冲激响应。

假设截止频率为f_c,则理想低通滤波器的冲激响应为:h(n) = 2f_c * sinc(2f_c * (n - (N-1)/2))其中,sinc(x)为正弦函数sin(x)/x。

3.将汉明窗应用到理想低通滤波器的冲激响应中,得到FIR滤波器的冲激响应。

具体计算过程如下:h(n) = w(n) * h_ideal(n)其中,w(n)为汉明窗:w(n) = 0.54 - 0.46 * cos(2πn/(N-1))h_ideal(n)为理想低通滤波器的冲激响应。

4.计算得到FIR滤波器的冲激响应序列。

五、实验总结:本次实验通过设计FIR滤波器,加深了对数字信号处理中滤波器原理的理解。

掌握了FIR滤波器的设计方法和调试技巧。

通过设计阶数为10的FIR滤波器,截止频率为800Hz,采样频率为1600Hz的实例,了解了窗函数法设计FIR滤波器的具体步骤,并得到了滤波器的冲激响应。

【备注】以上内容仅为参考,具体实验报告内容可能根据实际情况有所调整。

FIR高通滤波器设计报告

FIR高通滤波器设计报告

新疆大学科学与技术学院MATLAB课程设计报告题目:FIR高通滤波器专业班级通信08-1学生姓名学生学号提交日期 2011年12月 30日目录一、设计目的(FIR高通滤波器设计) (1)二、设计要求 (1)三、设计内容 (1)3.1 FIR 滤波器设计原理 (1)3.1.1数字滤波器的设计原理 (1)3.1.2 FIR滤波器的基本结构 (1)3.1.3 FIR滤波器的主要特点 (2)3.1.4 FIR滤波器设计方法及MATLAB实现 (2)3.1.5窗函数选择与高通滤波器指标转换 (2)3.1.6滤波器的MATLAB实现 (3)3.2 程序代码 (3)3.3仿真结果与分析 (4)四、本设计改进与建议 (5)五、总结 (5)六、主要参考文献 (5)一、设计目的(FIR 高通滤波器设计) 二、设计要求在MATLAB 课程中,熟悉软件的使用以及FIR 滤波器的设计原理,锻炼程序的设计能力和整体思想三、设计内容1)产生一个多频信号,设计FIR 高通滤波器消除其中一些成分。

2)设计FIR 滤波器:阻带边缘频率10KHz,通带边缘频率22KHz ,阻带衰减75dB ,采样频率50KHz 。

3.1 FIR 滤波器设计原理FIR 高通滤波器设计3.1.1数字滤波器的设计原理数字滤波器的设计问题就是寻找一组系数ai 和bi ,使得其性能在某种意义上逼近所要求的特性。

如果在s 平面上去逼近,就得到模拟滤波器,如果在z 平面上去逼近,就得到数字滤波器。

数字滤波器是将输入的信号序列,按规定的算法进行处理从而得到所期望的输出序列。

一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关系,应该满足常系数线性差分方程x (n )为输入序列,y (n )为输出序列,ai 、bi 为滤波器系数,N 为滤波器的阶数。

3.1.2 FIR 滤波器的基本结构设h(n)(n =0,1,2⋯一1)为滤波器的冲激响应,输入信号为x(n),则FIR 滤波器就是要实现下列差分方程:对式(2.2.1)进行z 变换,可得FIR 滤波器的传递函数:FIR 滤波器的单位冲击响应h(n)是一个有限长序列。

实验7 窗函数法设计FIR数字滤波器

实验7 窗函数法设计FIR数字滤波器

实验7窗函数法设计FIR数字滤波器一、实验目的掌握窗函数法设计F1R数字滤波器的原理和具体方法二、实验设备与环境计算机、Mat1ab软件环境三、实验基础理论1>基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器Hd(,3),然后用窗函数截取它的单位脉冲响应%(九),得到线性相位和因果的FIR滤波器,这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。

2、设计步骤(1)给定理想滤波器的频率响应Hd("3),在通带上具有单位增益和线性相位,在阻带上具有零响应。

一个带宽为g(3c<Tr)的低通滤波器由下式给定h(e j^=(eW∣ω∣≤ωc虱)一1Oωc<∣ω∣<π其中α为采样延迟,其作用是为了得到因果的系统。

(2)确定这个滤波器的单位脉冲响应为了得到一个h(n)长度为N的因果的线性相位FIR滤波器,我们令N-Ia=-2-(3)用窗函数截取hd(τι)得到所设计FIR数字滤波器h(n)h(n)=h d(n)w(n)3、窗函数的选择常用的窗函数有矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗等。

Mat1ab提供了一些函数用于产生窗函数,如下表所示:在设计过程中我们需要根据给定的滤波器技术指标,选择滤波器长度N 和窗函数3(n)°表7.2列出了常用的窗函数的一些特性,可供设计时参考。

其中幻是修正的零阶贝塞尔函数,参数B 控制最小阻带衰减,这种窗函数对于相同的N 可以提供不同的过渡带宽。

由于贝塞尔函数比较更杂,这种窗函数的设计方程很难推导,然而幸运的是,有一些经验设计方程可以直接使用。

已知给定的指标叫Msc,Rp 和4,滤波器长度N 和凯瑟窗参数B 可以按如下凯瑟窗设计方程给出过渡带宽:∆ω=ωst -ωp入一7.95 2.285∆ω_(0.1102(4-8.7) ,P=iθ.5842(4-21)04+0.07886(4-21), 四、实验内容1、设计一个数字低通FIR 滤波器,其技术指标如下ωp =0.2τr,RP=0.25dBωst =0.3τr,A s =50dB分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。

FIR滤波器设计报告

FIR滤波器设计报告

摘要本文介绍了数字滤波器的设计基础及用窗函数法设计FIR 滤波器的方法,运用MATLAB 语言实现了低通滤波器的设计以及用CCS软件进行滤波效果的观察。

读取语音文件,并加入一定的随机噪声,最后使用窗函数滤波法进行语音滤波,将加噪后的语音文件转换为.dat文件使其能和ccs软件链接,输出个阶段的时域和频域波形。

关键词:FIR滤波、Matlab、窗函数法、CCS目录1.引言 (2)2.FIR滤波器的窗函数法的设计 (2)2.1 fir1函数 (2)3.FIR滤波器的设计(Matlab) (4)4.滤波器的DSP实现(CCS) (7)4.1 编写源程序 (7)5.本课程的心得体会和对本课程的建议 (11)6.结束语 (12)参考文献 (13)1.引言根据数字滤波器冲激响应函数的时域特性。

可将数字滤波器分为两种,即无限长冲激响应( IIR) 滤波器和有限长冲激响应(FIR) 滤波器。

IIR 滤波器的特征是具有无限持续时间的冲激响应;FIR 滤波器冲激响应只能延续一定时间。

其中FIR 滤波器很容易实现严格的线性相位,使信号经过处理后不产生相位失真,舍入误差小,稳定等优点。

能够设计具有优良特性的多带通滤波器、微分器和希尔伯特变换器,所以在数字系统、多媒体系统中获得极其广泛的应用。

FIR数字滤波器的设计方法有多种,如窗函数设计法、最优化设计和频率取样法等等。

而随着MATLAB软件尤其是MATLAB 的信号处理工具箱和Simulink 仿真工具的不断完善,不仅数字滤波器的计算机辅助设计有了可能而且还可以使设计达到最优化。

2.FIR滤波器的窗函数法的设计2.1 fir1函数用来设计标准频率响应的基于窗函数的FIR滤波器,可实现加窗线性相位FIR数字滤波器的设计。

语法:b=fir1(n,Wn);b=fir1(n,Wn,’ftype’);b=fir1(n,Wn,Window);b=fir1(n,Wn,’ftype’,Window);其中,n为滤波器的阶数;Wn为滤波器的截止频率;ftype参数用来决定滤波器的类型,当ftype=high时,可设计高通滤波器;当ftype=stop时,可设计带阻滤波器。

FIR数字滤波器的设计实验报告

FIR数字滤波器的设计实验报告

数字信号处理实验报告姓名:寇新颖 学号:026 专业:电子信息科学与技术实验五 FIR 数字滤波器的设计一、实验目的1.熟悉FIR 滤波器的设计基本方法2.掌握用窗函数设计FIR 数字滤波器的原理与方法,熟悉相应的计算机高级语言编程。

3.熟悉线性相位FIR 滤波器的幅频特性和相位特性。

4.了解各种不同窗函数对滤波器性能的影响。

二、实验原理与方法FIR 滤波器的设计问题在于寻求一系统函数)(z H ,使其频率响应)(ωj e H 逼近滤波器要求的理想频率响应)(ωj d eH ,其对应的单位脉冲响应)(n h d 。

1.用窗函数设计FIR 滤波器的基本方法设计思想:从时域从发,设计)(n h 逼近理想)(n h d 。

设理想滤波器)(ωj d e H 的单位脉冲响应为)(n h d 。

以低通线性相位FIR 数字滤波器为例。

⎰∑--∞-∞===ππωωωωωπd e e Hn h e n he H jn j dd jn n dj d )(21)()()()(n h d 一般是无限长的,且是非因果的,不能直接作为FIR 滤波器的单位脉冲响应。

要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断)()()(n w n h n h d =,即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR 滤波器的单位脉冲响应。

按照线性相位滤波器的要求,h(n)必须是偶对称的。

对称中心必须等于滤波器的延时常数,即⎩⎨⎧-==2/)1()()()(N a n w n h n h d 用矩形窗设计的FIR 低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs )效应。

为了消除吉布斯效应,一般采用其他类型的窗函数。

2.典型的窗函数(1)矩形窗(Rectangle Window))()(n R n w N =其频率响应和幅度响应分别为:21)2/sin()2/sin()(--=N j j eN e W ωωωω,)2/sin()2/sin()(ωωωN W R =(2)三角形窗(Bartlett Window)⎪⎩⎪⎨⎧-≤<----≤≤-=121,122210,12)(N n N N n N n N n n w其频率响应为:212])2/sin()4/sin([2)(--=N j j e N N e W ωωωω(3)汉宁(Hanning)窗,又称升余弦窗)()]12cos(1[21)(n R N n n w N --=π其频率响应和幅度响应分别为:)]12()12([25.0)(5.0)()()]}12()12([25.0)(5.0{)()21(-++--+==-++--+=---N W N W W W e W eN W N W W e W R R R aj N j R R R j πωπωωωωπωπωωωωω(4)汉明(Hamming)窗,又称改进的升余弦窗)()]12cos(46.054.0[)(n R N n n w N --=π其幅度响应为:)]12()12([23.0)(54.0)(-++--+=N W N W W W R R R πωπωωω (5)布莱克曼(Blankman)窗,又称二阶升余弦窗)()]14cos(08.0)12cos(5.042.0[)(n R N n N n n w N -+--=ππ 其幅度响应为:)]14()14([04.0)]12()12([25.0)(42.0)(-++--+-++--+=N W N W N W N W W W R R R R R πωπωπωπωωω(6)凯泽(Kaiser)窗10,)())]1/(21[1()(020-≤≤---=N n I N n I n w ββ其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。

fir滤波器设计实验报告

fir滤波器设计实验报告

fir滤波器设计实验报告一、实验目的本次实验的目的是设计FIR滤波器,从而实现信号的滤波处理。

二、实验原理FIR滤波器是一种数字滤波器,它采用有限长的冲激响应滤波器来实现频率选择性的滤波处理。

在FIR滤波器中,系统的输出只与输入和滤波器的系数有关,不存在反馈环路,因此具有稳定性和线性相位的特性。

FIR滤波器的设计最常采用Window法和最小二乘法。

Window法是指先对理想滤波器的频率特性进行窗函数的处理,再通过离散傅里叶变换来得到滤波器的时域响应。

最小二乘法则是指采用最小二乘法来拟合理想滤波器的频率特性。

本次实验采用的是Window法。

三、实验步骤1.设计滤波器的频率响应特性:根据实际需要设计出需要的滤波器的频率响应特性,通常采用理想滤波器的底通、高通、带通、带阻等特性。

2.选择窗函数:根据设计的滤波器的频率响应特性选择相应的窗函数,常用的窗函数有矩形窗、汉宁窗、汉明窗等。

3.计算滤波器的时域响应:采用离散傅里叶变换将设计的滤波器的频率响应特性转化为时域响应,得到滤波器的冲激响应h(n)。

4.归一化:将得到的滤波器的冲激响应h(n)进行归一化处理,得到单位加权的滤波器系数h(n)。

5.实现滤波器的应用:将得到的滤波器系数h(n)应用于需要滤波的信号中,通过卷积的方式得到滤波后的信号。

四、实验结果以矩形窗为例,设计一阶低通滤波器,截止频率为300Hz,采样频率为8000Hz,得到的滤波器系数为:h(0)=0.0025h(1)=0.0025滤波效果良好,经过滤波后的信号频率响应相对于滤波前有较明显的截止效应。

五、实验总结通过本次实验,我们掌握了FIR滤波器的设计方法,窗函数的选择和离散傅里叶变换的应用,使我们能够更好地处理信号,实现更有效的信号滤波。

在日常工作和学习中,能够更好地应用到FIR滤波器的设计和应用,提高信号处理的精度和效率。

FIR滤波器设计实验报告

FIR滤波器设计实验报告

实验报告课程名称:数字信号处理实验项目: FIR滤波器设计专业班级:姓名:学号:实验室号:实验组号:实验时间:批阅时间:指导教师:成绩:实验报告专业班级: 学号: 姓名:一、实验目的:1、熟悉线性相位FIR 数字低通滤波器特性。

2、熟悉用窗函数法设计FIR 数字低通滤波器的原理和方法。

3、了解各种窗函数对滤波特性的影响。

要求认真复习FIR 数字滤波器有关内容实验内容。

二、实验原理如果所希望的滤波器理想频率响应函数为)(e H j ωd ,则其对应的单位样值响应为ωπ=ωππ-⎰d e j ωnj dd e )(H 21(n)h 窗函数法设计法的基本原理是用有限长单位样值响应h(n)逼近(n)h d 。

由于(n)h d 往往是无限长序列,且是非因果的,所以用窗函数(n)w 将(n)h d 截断,并进行加权处理,得到:(n)(n)h h(n)d w ⋅=。

h(n)就作为实际设计的FIR 滤波器单位样值响应序列,其频率函数)H(ej ω为∑-=ω=1n n j -j ωh(n)e )H(e N 。

式中N 为所选窗函数(n)w 的长度。

用窗函数法设计的FIR 滤波器性能取决于窗函数类型及窗口长度N 的取值。

设计过程中要根据阻带衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N 。

各类窗函数所能达到的阻带最小衰减和过渡带宽度见P342表7-3。

选定窗函数类型和长度N 以后,求出单位样值响应(n)(n)h h(n)d w ⋅=。

验算)()()]([)(ωϕωω==j g j e H n h DTFT e H 是否满足要求,如不满足要求,则重新选定窗函数类型和长度N ,直至满足要求。

如要求线性相位特性,h(n)还必须满足n)-1-h(N h(n)±=。

根据上式中的正、负号和长度N 的奇偶性又将线性相位FIR 滤波器分成4类(见P330表7-1及下表),根据要设计的滤波器特性正确选择其中一类。

例如要设计低通特性,可选择情况1、2,不能选择情况3、4。

用窗函数设计FIR滤波器实验报告

用窗函数设计FIR滤波器实验报告

实验 用窗函数设计FIR 滤波器一、实验目的1、熟悉FIR 滤波器设计的基本方法。

2、熟悉线性相位FIR 滤波器的幅频特性和相位特性。

3、掌握用窗函数设计FIR 数字滤波器的原理及方法,了解各种不同窗函数对滤波器性能的影响。

二、实验原理1、FIR 滤波器的设计 在前面的实验中,我们介绍了IIR 滤波器的设计方法并实践了其中的双线性变换法,IIR 具有许多诱人的特性;但与此同时,也具有一些缺点。

例如:若想利用快速傅立叶变换技术进行快速卷积实现滤波器,则要求单位脉冲响应是有限长的。

此外,IIR 滤波器的优异幅度响应,一般是以相位的非线性为代价的,非线性相位会引起频率色散。

FIR 滤波器具有严格的相位特性,这对于许多信号的处理和数据传输是很重要的。

目前FIR 滤波器的设计方法主要有三种:窗函数法、频率采样法和切比雪夫等波纹逼近的最优化设计方法。

窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。

它是从时域出发,用一个窗函数截取理想的[]d h n 得到[]h n ,以有限长序列[]h n 近似理想的[]d h n ;如果从频域出发,用理想的[]j d h e ω在单位圆上等角度取样得到[]H k ,根据[]H k 得到[]H z 将逼近理想的[]d h z ,这就是频率采样法。

2 、窗函数设计法同其他的数字滤波器的设计方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。

一般是给定一个理想的频率响应[]j d H e ω,使所设计的FIR 滤波器的频率响应[]j H e ω去逼近所要求的理性的滤波器的响应[]j d H e ω。

窗函数法设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数1()[]N j j nn H e h n e ωω--==∑ (4.1)去逼近[]j d H e ω。

我们知道,一个理想的频率响应[]j d H e ω的傅立叶反变换201[]()2j j n d d h n H e e d πωωωπ=⎰(4.2)所得到的理想单位脉冲响应[]d h n 往往是一个无限长序列。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、设计指标:● 设计一个16阶低通线性相位FIR 滤波器; ● 要求采样频率Fs 为80KHz ; ● 截止频率Fc 为10KHz ;● 采用函数窗法设计,且窗口类型为Kaiser ,Beta 为0.5; ● 输入序列位宽为10位的有符号数(最高位为符号位); ●输出序列位宽为10位的有符号数(最高位为符号位)。

二、线性相位fir 滤波器理论:有限长脉冲响应(FIR )滤波器的系统函数只有零点,除原点外,没有极点,因而FIR 滤波器总是稳定的。

如果他的单位脉冲响应是非因果的,总能够方便的通过适当的移位得到因果的单位脉冲响应,所以FIR 滤波器不存在稳定性和是否可实现的问题。

它的另一个突出的优点是在满足一定的对称条件时,可以实现严格的线性相位。

由于线性相位滤波器不会改变输入信号的形状,而只是在时域上使信号延时,因此线性相位特性在工程实际中具有非常重要的意义,如在数据通信、图像处理等应用领域,往往要求信号在传输和处理过程中不能有明显的相位失真,因而线性相位FIR 滤波器得到了广泛的应用。

长度为M 的因果有限冲激响应滤波器由传输函数H (z )描述:10()()M k k H z h k z --==∑ (1)它是次数为M-1的z -1的一个多项式。

在时域中,上述有限冲激响应滤波器的输入输出关系为:10()()()M k y n h k x n k -==-∑ (2)其中y (n )和x (n )分别是输出和输入序列。

有限冲激响应滤波器的一种直接型实现,可由式(2)生成,M=5的情况如图2-1(a )所示。

其转置,如图2-1(b )所示,是第二个直接型结构。

通常一个长度为M 的有限冲激响应滤波器由M 个系数描述,并且需要M 个乘法器和(M-1)个双输入加法器来实现。

南京理工大学EDA技术与应用课程实验报告- 1 - 共23页(a)(b)图2- 1 直接型有限冲激响应滤波器结构长度为M的线性相位有限冲激响应滤波器由对称的冲激响应h(n)=h(M-1-n)或反对称的冲激响应h(n)=-h(M-1-n)描述。

利用线性相位有限冲激响应滤波器的对称(或反对称)性质,可以将传输函数的直接型实现所需的乘法器总量减少一半。

例如,图2-2显示了一个具有对称冲击响应的、长度为7的有限冲激响应传输函数的实现。

图2- 2 线性相位有限冲激响应结构基于VHDL语言的线性相位FIR滤波器设计- 2 - 共23页三、设计思路:根据课程上老师所讲例题,首先使用matlab计算出符合设计要求的滤波器冲激响应系数。

后将整个电路规划为语言编辑和原理图编辑两个单元,其中语言编辑部分负责编辑整个滤波器电路中所需用的单元器件,包括寄存器、加法器、减法器以及乘法器几个单元器件;原理图编辑部分完成单元器件的电气连接工作。

整个电路的原理图设置方案如图3-1所示:图3- 1 滤波器整体设计思路南京理工大学EDA技术与应用课程实验报告- 3 - 共23页四、设计过程:(一)基于matlab工具的滤波器系数计算:在matlab命令编辑窗口输入Fdatool指令,敲击回车可以打开Filter Design & Analysis Tool窗口(如图4-1所示),在该工具的帮助下,我们可以完成f.i.r.滤波器系数的计算工作。

图4- 1 Filter Design & Analysis Tool窗口Fdatool界面总共分两大部分,一部分是design filter,在界面的下半部分,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。

design filter部分主要分为:Response Type(响应类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的滤波器。

根据本次作业要求,在该选项中选择Lowpass选项。

Design Method(设计方法)选项,包括IIR滤波器的Butterworth(巴特沃思)法、Chebyshev Type i(切比雪夫i型)法、Chebyshev Type ii(切比雪夫ii型)法、Elliptic(椭圆滤波器)法等和FIR滤波器的Equiripple法、Least-squares(最基于VHDL语言的线性相位FIR滤波器设计- 4 - 共23页小乘方)法、Window(窗函数)法等多种方法。

结合本次作业要求,选择FIR 滤波器的窗函数法进行设计。

选定窗函数法后,会在右侧出现Options区域,进行窗函数法相关参量的设置,根据作业要求选择Kaiser窗并设置Beta为:0.5。

Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify order(指定阶数)和Minimum order(最小阶数)。

在Specify order中填入所要设计的滤波器的阶数(n阶滤波器,specify order=n-1),如果选择Minimum order则matlab 根据所选择的滤波器类型自动使用最小阶数。

本次作业要求设计16阶滤波器,所以选定Specify order并填入15。

Frenquency Specifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。

它的具体选项由Response Type选项和Design Metho选项决定。

我们要求的Lowpass(低通)滤波器只需要定义Fs、Fc。

采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。

Magnitude Specifications选项,可以定义幅值衰减的情况。

采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。

本次作业中的参数设定结果如图4-2所示。

图4- 2 滤波器参数设定结果参数设定完毕,单击工具窗口下方的Design Filter按钮,开始进行相关参数计算。

在计算结果中我们可以看到该滤波器的一些相关曲线,如幅频响应(如图4-3)、相频响应(如图4-4)、冲激响应(如图4-5)等以及具体的系数值(如图4-6)。

南京理工大学EDA技术与应用课程实验报告- 5 - 共23页图4- 3 幅频响应图4- 4 相频响应图4- 5 冲激响应基于VHDL语言的线性相位FIR滤波器设计- 6 - 共23页图4- 6 所设计滤波器冲激系数计算的结果可通过File下拉菜单中的Export命令取出,点击Export打开Export对话框(如图4-7),点击OK按钮可将滤波器系数数据存放到当前工作空间,并以Num命名。

图4- 7 冲激系数输出对话框保存并关闭滤波器设计分析工具回到matlab主窗口,在命令编辑区输入Num 可得到工具的计算结果(如图4-8)。

图4- 8 输出在matlab的冲激系数南京理工大学 EDA 技术与应用课程实验报告- 7 - 共23页对FIR 滤波器的系数进行调整,做整数化操作(如图4-9)。

可得到滤波器整数化的系数为[-31 -88 -106 -54 70 239 401 499 499 401 239 70 -54 -106 -88-31]图 4- 9 整数化后的冲激系数(二)单元器件的语言编辑:1、寄存器模块寄存器用于寄存一组二值代码,只要求它们具有置1、置0的功能即可。

在本设计中用D 触发器组成寄存器,实现寄存功能。

本设计中使用带异步复位rst 端的D 触发器,当rst=1时,输出信号q=0,当rst=0且上升沿脉冲到达时q=d 。

程序代码如下:--------------------------- LIBRARY ieee;USE ieee.std_logic_1164.all; --------------------------- ENTITY dff16 ISPORT (rst,clk: IN STD_LOGIC;d:IN STD_LOGIC_VECTOR (9 DOWNTO 0);q:OUT STD_LOGIC_VECTOR (9 DOWNTO 0)); END dff16;---------------------------ARCHITECTURE dff16 OF dff16 IS BEGINPROCESS (rst,clk) BEGINIF(rst='1')THEN q<=(OTHERS=>'0');ELSIF(clk'EVENT AND clk='1')THEN q<=d; END IF; END PROCESS; END dff16;---------------------------仿真结果如图4-10所示:图 4- 10 寄存器仿真结果基于VHDL语言的线性相位FIR滤波器设计8 共23页2、加法器模块实现两个有符号数的相加运算。

即将输入的两数,在时钟脉冲到来时相加运算,输出结果。

在本设计中共有8个两个10位有符号数相加产生一个11位有符号数的加法器、一个18位和19位有符号数相加产生20位有符号数的加法器、一个两个20位有符号数相加产生一个21位有符号数的加法器、一个两个19位有符号数相加产生一个20位有符号位数的加法器、一个20位和21位有符号数相加产生22位有符号数的加法器,以及一个20位和22位有符号数相加产生23位有符号数的加法器电路。

其中一个20位和22位有符号数相加产生23位有符号数的加法器电路为最后一级,所以在加法器电路中在引入低位舍去功能只保留最终10位输出,最终保留10位输出采用了直接取输出23位数的高十位的方法,因此在输出中近似等于除掉了2^13即8192以后的结果。

●10位有符号数相加产生一个11位有符号数的加法器设计:----------------------LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;----------------------ENTITY sum101011 ISPORT(a,b: IN SIGNED(9 DOWNTO 0);clk: IN STD_LOGIC;s:OUT SIGNED(10 DOWNTO 0)); END SUM101011;---------------------- ARCHITECTURE sum101011 OF sum101011 IS BEGINPROCESS(clk)BEGINIF(clk'EVENT AND clk='1')THENs<=(a(9)&a)+(b(9)&b);END IF;END PROCESS;END sum101011;----------------------仿真结果如图4-11所示:图4- 11 两10位相加产生11位加法器仿真结果●18位和19位有符号数相加产生20位有符号数的加法器设计:---------------------- LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all;南京理工大学EDA技术与应用课程实验报告9 共23页----------------------ENTITY sum7023918 ISPORT(a: IN SIGNED(17 DOWNTO 0);b: IN SIGNED(18 DOWNTO 0);clk: IN STD_LOGIC;s:OUT SIGNED(19 DOWNTO 0));END sum7023918;----------------------ARCHITECTURE sum7023918 OF sum7023918 IS BEGINPROCESS(clk)BEGINIF(clk'EVENT AND clk='1')THENs<=(a(17)&a(17)&a)+(b(18)&b);END IF;END PROCESS;END sum7023918;----------------------仿真结果如图4-12所示:图4- 12 18位19位相加产生20位数仿真结果●两个20位有符号数相加产生一个21位有符号数的加法器设计:----------------------LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;----------------------ENTITY sum40149919 ISPORT(a: IN SIGNED(19 DOWNTO 0);b: IN SIGNED(19 DOWNTO 0);clk: IN STD_LOGIC;s:OUT SIGNED(20 DOWNTO 0)); END sum40149919;---------------------- ARCHITECTURE sum40149919 OF sum40149919 ISBEGINPROCESS(clk)BEGINIF(clk'EVENT AND clk='1')THENs<=(a(19)&a)+(b(19)&b);END IF;END PROCESS;END sum40149919;----------------------仿真结果如图4-13所示:图4- 13 两20位相加产生21位数仿真结果●两个19位有符号数相加产生一个20位有符号位数的加法器设计:---------------------- LIBRARY ieee;USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ---------------------- ENTITY sum181819 IS基于VHDL语言的线性相位FIR滤波器设计10 共23页PORT(a: IN SIGNED(18 DOWNTO 0);b: IN SIGNED(18 DOWNTO 0);clk: IN STD_LOGIC;s:OUT SIGNED(19 DOWNTO 0)); END sum181819;----------------------ARCHITECTURE sum181819 OF sum181819 IS BEGINPROCESS(clk)BEGINIF(clk'EVENT AND clk='1')THENs<=(a(18)&a)+(b(18)&b);END IF;END PROCESS;END sum181819;----------------------仿真结果如图4-14所示:图4- 14 两19位相加产生20位数仿真结果●20位和21位有符号数相加产生22位有符号数的加法器:----------------------LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;----------------------ENTITY sum192021 ISPORT(a: IN SIGNED(19 DOWNTO 0);b: IN SIGNED(20 DOWNTO 0);clk: IN STD_LOGIC;s:OUT SIGNED(21 DOWNTO 0)); END sum192021; ----------------------ARCHITECTURE sum192021 OF sum192021 IS BEGINPROCESS(clk)BEGINIF(clk'EVENT AND clk='1')THENs<=(a(19)&a(19)&a)+(b(20)&b);END IF;END PROCESS;END sum192021;----------------------仿真结果如图4-15所示:图4- 15 20位和21相加产生22位数仿真结果●20位和22位有符号数相加产生23位有符号数的加法器电路设计(最后一级带舍位):---------------------- LIBRARY ieee;USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ----------------------ENTITY sum192110 ISPORT(a: IN SIGNED(19 DOWNTO 0);b: IN SIGNED(21 DOWNTO 0);南京理工大学EDA技术与应用课程实验报告11 共23页clk: IN STD_LOGIC;s:OUT SIGNED(9 DOWNTO 0));END sum192110;----------------------ARCHITECTURE sum192110 OF sum192110 IS BEGINPROCESS(clk)V ARIABLE c:SIGNED(22 DOWNTO 0);BEGINIF(clk'EVENT AND clk='1')THENc:=(a(19)&a(19)&a(19)&a)+(b(21)&b);END IF;s<=c(22 DOWNTO 13);END PROCESS;END sum192110;----------------------仿真结果如图4-16所示:图4- 16 20位22位相加产生被截短的10位数仿真结果3、减法器模块:实现零值减去两个有符号数的减法运算。

相关文档
最新文档