电子技术综合设计基于窗函数的FIR滤波器的设计与SIUMLINK仿真.doc
电子技术综合设计姓 名: 学 号: 专 业: 电子信息工程 题 目: 基于MATLAB的FIR滤波器的设计与仿真 课程名称:专业创新设计 设计地点: 电工电子实验中心 设计日期: 成 绩: 指导教师: 年 月 电子技术综合设计任务书 设计日期:设计专题: 电子技术综合设计设计题目:基于MATLAB的FIR滤波器的设计与仿真设计内容和要求:1. 主要内容: 了解FIR滤波器的原理。 了解使用MATLAB语言设计FIR滤波器的方法。 了解使用MATLAB的仿真软件SIUMLINK的仿真方法 。 2. 设计要求: 用窗函数法设计一个数字低通滤波器。 通带截止频率:0.2,阻带起始频率:0.4,阻带最小衰减:-50dB。 采用窗函数法设计,并且采用不同的窗做比较 。 使用FDATOOLS设计滤波器并分析。 使用SIMULINK对设计的滤波器进行仿真。3. 设计滤波器的MATLAB程序 汉宁窗,哈明窗,矩形窗,三角窗设计滤波器的程序(计算机打印)4. 程序运行结果的图 汉宁窗,哈明窗,矩形窗,三角窗程序运行结果图(计算机打印)5. 仿真模块原理图 使用SIUMLINK设计仿真模块原理图(计算机打印)指导教师 年 月 日摘要传统的FIR滤波器的设计过程复杂,计算工作量大,滤波特性调整困难,影响了它的应用。本次设计利用MATLAB信号处理工具箱快速有效的设计由软件组成的常规FIR滤波器。给出了使用MATLAB语言进行程序设计和利用信号处理工具箱的FDATool工具进行滤波器设计的步骤。利用MATLAB设计滤波器,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大的减轻了工作量,有利于滤波器设计的最优化。同时还利用MATLAB环境下的仿真软件Simulink对所设计的滤波器进行模拟仿真。【关键字】 FIR滤波器 MATLAB FIR IIR 目 录 第一章 绪论6 1.1 FIR滤波器的设计背景6 1.2 FIR滤波器的优缺点6第二章 FIR数字滤波器的介绍6 2.1 FIR数字滤波器的特点6 2.1.1 线性相位FIR数字滤波器的特点7 2.2 FIR数字滤波器的设计原理8 2.3 数字滤波器的性能指标9第三章 窗函数设计法10 3.1.窗函数设计原理分析11 3.2 窗函数的一些通用性质11 3.3 设计方法11 3.4 窗函数介绍14 3.5 窗函数法设计步骤17第四章 设计实例18 4.1滤波器设计指标要求18 4.2设计步骤18 4.3 仿真结果19 4.4 仿真结果分析21第五章 基于siumLInk的FIR滤波器的仿真22 5.1使用FDATOOL设计滤波器22 5.2 滤波器的分析24 5.3 设计仿真模块26 5.4 设置输入信号,并导入滤波器27 5.5对设计好的滤波器进行仿真与分析27第六章 总结29参考文献29附录一32 第一章 绪论 1.1 FIR滤波器的设计背景 随着电子工业的发展,对滤波器的性能要求越来越高,功能也越来越多,并且要求它们向集成方向发展。我国滤波器研制和生产与上述要求相差甚远,为缩短这个差距,电子工程和当代年轻人负有重大的责任。 根据数字滤波器冲激响应函数的时域特性。可将数字滤波器分为两种,即无限长冲激响应( IIR) 滤波器和有限长冲激响应(FIR)滤波器。IIR 滤波器的特征是具有无限持续时间的冲激响应; FIR 滤波器冲激响应只能延续一定时间。其中FIR 滤波器很容易实现严格的线性相位,使信号经过处理后不产生相位失真,舍入误差小,稳定等优点。能够设计具有优良特性的多带通滤波器、微分器和希尔伯特变换器,所以在数字系统、多媒体系统中获得极其广泛的应用。FIR数字滤波器的设计方法有多种,如窗函数设计法、最优化设计和频率取样法等等。而随着MATLAB 软件尤其是MATLAB 的信号处理工具箱和Simulink 仿真工具的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。 1.2 FIR滤波器的优缺点 FIR 滤波器具有以下优点: 1、具有严格的线性相位, 同时又具有任意的幅度特性, 因此满足要求信 道具有线性相位特性的图像处理以及数据传输。 2、FIR 滤波器的单位抽样响应是有限长的, 因而滤波器一定是稳定的。 3、FIR 滤波器由于单位冲激响应是有限长的, 因而可以用快速傅立叶变换( FFT) 算法来实现过滤信号, 从而可大大提高运算效率。 FIR 滤波器的缺点:对于相同的设计指标, FIR 滤波器所要求的阶数比IIR 滤波器要高, 信号的延迟偏大。第二章 FIR数字滤波器的介绍 2.1 FIR数字滤波器的特点 有限长单位冲激响应(FIR)数字滤波器可以做成具有严格的线性相位,同时又可以具有任意的幅度特性。此外,FIR滤波器的单位抽样响应是有限长的,因而滤波器一定是稳定的。再有,只要经过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,因而总能用因果系统来实现。最后,FIR滤波器由于单位冲激响应是有限长的,可以用快速傅立叶变换(FFT)算法来实现过滤信号,从而可大大提高运算效率。但是,要取得很好的衰减特性,FIR滤波器H(z)的阶次比IIR滤波器的要高。 2.1.1 线性相位FIR数字滤波器的特点 一、 单位冲激响应h(n)的特点FIR滤波器的单位冲激响应h(n)是有限长(0nN-1),其Z变换为: 式(2-1)在有限Z平面有(N-1)个零点,而它的(N-1)个极点均位于原点z=0处。 二、 线性相位的条件如果FIR滤波器的单位抽样响应h(n)为实数而且满足以下任一条件:偶对称:h(n)=h(N-1-n)奇对称:h(n)=-h(N-1-n)其对称中心在n=(N-1)/2处,则滤波器具有准确的线性相位。 三、 线性相位特点和幅度函数的特点 四种线性相位FIR滤波器的特性可以总结如下: 第一种情况,偶对称、奇数点,四种滤波器都可设计; 第二种情况,偶对称、偶数点,可设计低、带通滤波器,不能设计高通和带阻; 第三种情况,奇对称、奇数点,只能设计带通滤波器,其它滤波器都不能设计; 第四种情况,奇对称、偶数点,可设计高、带通滤波器,不能设计低通和带阻。 2.2 FIR数字滤波器的设计原理 一个截止频率为(rad/s)的理想数字低通滤波器,其传递函数的表达式是: 式(2-2) 由式2-2可以看出,这个滤波器在物理上是不可实现的,因为冲激响应具有无限性和因果性。为了产生有限长度的冲激响应函数,我们取样响应为,长度为N,其系数函数为: 式(2-3) 用表示截取后冲激响应,即,式子中为窗函数,长度为N。当=(N-1)/2时,截取的一段对(N-1)/2对称,可保证所设计的滤波器具有线性相位。 一般来说,FIR数字滤波器输出的Z变换形式Y(z)与输入的Z变换形式之间的关系如下: 式(2-4) 从上面的Z变换和结构图可以很容易得出FIR滤波器的差分方程表示形式。 对式2-4进行反Z变换,可得: 式(2-5) 图2-1 卷积型滤波器 式2-5为FIR数字滤波器的时域表示方法,其中是在时间n的滤波器的输入抽样值。根据式2-5即可对滤波器进行设计。从上面的公式我们可以看出,在对滤波器实际设计时,整个过程的运算量很大。 2.3 数字滤波器的性能指标我们在进行滤波器设计时,需要确定其性能指标。一般来说,滤波器的性能要求往往以频率响应的幅度特性的允许误差来表征。以低通滤波器特性为例,频率响应有通带、过渡带及阻带三个范围。在通带内: 1- AP 1 在阻带中: 其中为通带截止频率, 为阻带截止频率,Ap为通带误差, 为阻带误差。图2-2 低通滤波器的幅度特性与模拟滤波器类似,数字滤波器按频率特性划分为低通、高通、带通、带阻、全通等类型,由于数字滤波器的频率响应是周期性的,周期为2。由于频率响应的周期性,频率变量以数字频率来表示,所以数字滤波器设计中必须给出抽样频率。1、 一个高通滤波器相当于一个全通滤波器减去一个低通滤波器。2、 一个带通滤波器相当于两个低通滤波器相减。 3、一个带阻滤波器相当于一个低通滤波器加上一个高通滤波器。第三章 窗函数设计法 3.1.窗函数设计原理分析设数字滤波器的传输函数为,是与其对应的单位脉冲响应, 为系统函数。 式(3-1) 式(3-2) 式(3-3) 一般说来, 是无限长的,需要求对的一个逼近。采用窗函数设计法时,可通过对理想滤波器的单位采样响应加窗设计滤波器 式(3-4)其中, 是一个长度有限的窗,在区间0 n N外值为0 ,且关于中间点对称 式(3-5)频率响应根据式3-5 ,由卷积定理得出 式(3-6)理想的频率响应被窗函数的离散时间傅立叶变换“平滑”了。采用窗函数设计法设计出来的滤波器的频率响应对理想响应的逼近程度,由两个因素决定:主瓣的宽度;旁瓣的幅度大小。理想的情况是主瓣的宽度窄,旁瓣的幅度小。但对于一个长度固定的窗函数来说,这些不能独立地达到最小。 3.2 窗函数的一些通用性质 (1)、窗函数的长度N增加,主瓣的宽度减小,使得过渡带变小。关系为:NB = C其中:B是过渡带的宽度;C是取决于窗函数的一个参数。如矩形窗为4。调整N可以有效地控制过渡带的宽度,但N的改变不改变主瓣和旁瓣的相对比例。随着N值增加,过渡带变窄,波动频率也随着增加,虽然总的幅度有所减少,但截止频率附近的肩峰并不减少,而只是随着N值的增加,肩峰被抑制在愈来愈小的范围内,使肩峰宽度变窄。 (2)、窗函数的旁瓣的幅度大小取决于窗函数的选择。选择恰当的窗函数使主瓣包含更多的能量,相应旁瓣的幅度就减小。旁瓣幅度的减小,可以减少通带和阻带的波动,使通带尽可能趋近水平,阻带尽可能达到最大衰减。但通常此时过渡带会变宽。 (3)、取不同的窗函数对幅度特性的整形效果比单纯的增加窗口长度要强得多。 3.3 设计方法这种方法也叫傅里叶级数法。一般是先给出所要求的理想的滤波器的频率响应,要求设计一个FIR滤波器频率响应来逼近。设计是在时域进行的,因而先由的傅里叶反变换导出,即 式(3-7) 由于是矩形频率响应特性,故一定是无限长序列,且是非因果的,而FIR滤波器的必然是有限长的,所以要用有限长的来逼近无限长的,最有效的方法是截断或者说用一个有限长度的窗口函数序列来截取,即 式(3-8) 因而窗函数序列的形状及长度的选择就是关键。 我们以一个截止频率为的线性相位的理想矩形幅度特性的低通滤波器为例来讨论。设低通特性的群延时为,即 式(3-9) 这表明,在通带范围内,的幅度是均匀的,其值为1,相位是。 式(3-10) 是中心点在的偶对称无限长非因果序列,要得到有限长的,一种最简单的方法就是取矩形窗,即 式(3-11) 但是按照线形相位滤波器的约束,必须是偶对称的,对称中心应为长度的一半(N-1)/2,因而必须=(N-1)/2,所以有 式(3-12) 将式3-9代入式3-10,可得 式(3-13) 此时,一定满足这一线性相位的条件。 下面求的傅里叶变换,也就是找出待求FIR滤波器的频率特性, 以便能看出加窗处理后究竟对频率响应有何影响。 按照复卷积公式,在时域是相乘、频域上是周期性卷积关系,即 式(3-14) 因而逼近的好坏,完全取决于窗函数的频率特性。 窗函数的频率特性为 式(3-15) 对矩形窗,则有 式(3-16) 也可表示成幅度函数与相位函数 式(3-17) 其中 式(3-18) 就是频域抽样内插函数,其幅度函数在之内为一个主瓣,两侧形成许多衰减振荡的旁瓣,如果将理想频率响应也写成 式(3-19) 则其幅度函数为 式(3-20) 3.4 窗函数介绍 实际应用的窗函数,可分为以下主要类型和特点: (1)矩形窗 矩形窗属于时间变量的零次幂窗,函数形式为: 式(3-21)相应的窗谱为: 式(3-22) 矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。图3-1矩形窗的时域及频域波形(2)三角窗亦称费杰(Fejer)窗,是幂窗的一次方形式,其函数形式是: 式(3-23)三角窗与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣,如图3-2所示。图3-2三角窗的时域波形图(3)汉宁(Hanning)窗汉宁窗又称升余弦窗,其时域表达式为: 式(3-24)相应的窗谱为: 式(3-25) 由此式可以看出,汉宁窗可以看作是3个矩形时间窗的频谱之和,或者是 3个 sin(t)型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了 /T,从而使旁瓣互相抵消,消去高频干扰和漏能。可以看出,汉宁窗主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于矩形窗。但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨率下降。 (4)海明(Hamming)窗 海明窗也是余弦窗的一种,又称改进的升余弦窗,其时间函数表达式为: 式(3-26) 其窗谱为: 式(3-27) 海明窗与汉宁窗都是余弦窗,只是加权系数不同。海明窗加权的系数能使旁瓣达到更小。分析表明,海明窗的第一旁瓣衰减为-42dB。海明窗的频谱也是由3个矩形窗的频谱合成,但其旁瓣衰减速度为20dB(10oct),这比汉宁窗衰减速度慢。海明窗与汉宁窗都是很有用的窗函数。 (5)高斯窗 高斯窗是一种指数窗。其时域函数为: 式(3-28) 式中a为常数,决定了函数曲线衰减的快慢。a值如果选取适当,可以使截断点(T为有限值)处的函数值比较小,则截断造成的影响就比较小。高斯窗谱无负的旁瓣,第一旁瓣衰减达一55 dB。高斯窗的主瓣较宽,故而频率分辨率低。高斯窗函数常被用来截断一些非周期信号,如指数衰减信号等。不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。图3-3是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高。图3-3几种常用的窗函数的时域和频域波形 对于窗函数,还有一些要求: (1)3dB带宽B,它是主瓣归一化的幅度下降到-3dB时的带宽。当数据长度为N时,矩形窗主瓣两个过零点之间的宽度为4/N。 (2)最大边瓣峰值A(dB)。 (3)边瓣谱峰渐进衰减速度D(dB/cot)。 所以,理想的窗函数应当具有最小的B和A,和最大的D。 3.5 窗函数法设计步骤(1) 、首先是给定所要求的频率响应函数;(2) 、其次,求单位冲激响应; (3)、再次,有过渡带宽及阻带最小衰减的要求,查表选定窗函数及N的大小,一般N的大小要通过几次试探而后确定; (4)、求得所设计的FIR滤波器的单位冲激响应; ,n=0,1,,N-1;(5)求,检验是否满足设计要求,如不满足,则需要重新设计。第四章 设计实例 4.1滤波器设计指标要求 用窗函数法设计一个数字低通滤波器。要求:通带截止频率:0.2,阻带起始频率:0.4,阻带最小衰减:-50dB。 4.2设计步骤 (1)设为理想线性相位滤波器 式(4-1) 由所需低通滤波器的过渡带求出理想低通滤波器的截止数字频率=0.3,得出: 式(4-2) (2)由阻带衰减确定窗函数,由过渡带宽确定N值。阻带最小衰减50dB,比对6种窗函数基本参数选定窗函数为汉宁窗,哈明窗,汉宁窗, 所要求的过渡带宽: =0.4-0.2=0.2 N=6.6/0.2+1=34,=(N-1)/2=16 设为汉宁窗,为哈明窗,为矩形窗为三角窗,以下为其满足题意的窗函数。 式(4-3) (3)加窗得到设计结果 式(4-4) (4)进行matlab仿真 4.3 仿真结果 (1)汉宁窗仿真结果图4-1汉宁窗函数仿真结果 ap =0.0714,as =44,tr_wdith =0.6283; (2)哈明窗仿真结果图4-2哈明窗函数仿真结果 ap =0.0477,as =52,tr_wdith =0.6283; (3)矩形窗仿真结果 图4-3矩形窗函数仿真结果 ap =1.3722,as =29,tr_wdith =0.6283; (4)三角窗仿真结果4-4三角窗函数仿真结果 ap =0.1999,as =27,tr_wdith =0.6283; 4.4 仿真结果分析 (1)汉宁窗的通带的波纹ap =0.0714,阻带最小衰减as =44,通带波纹小,滤波器在通带中的平稳性好,并且阻带衰减很接近指标要求的50db,旁瓣衰减逐渐减小,能量更加集中在主瓣中,通带、阻带波动减小,从而增大了阻带的衰减,能更好的达到预期目标。 (2)哈明窗的通带的波纹ap =0.0477,阻带最小衰减as =52,与汉宁窗相比通带波纹更小,滤波器在通带中的平稳性更好好,并且阻带衰减更接近指标要求的50db,旁瓣衰减逐渐减小,能量更加集中在主瓣中,通带、阻带波动减小,能更好的达到预期目标。 (3)矩形窗通带波纹ap =1.3722,阻带最小衰减as =29,通带波纹太大,影响滤波器在同代的稳定性,而且阻带衰减太小,与预期的相差很大,旁瓣波动太大,不符合滤波器的设计指标。 (4)三角窗通带波纹ap =0.1999,阻带最小衰减as =27,通带波纹相对较大,阻带衰减太小,不符合设计要求。 (5)对于同一性能指标下不同窗函数生成的过渡带宽和阻带最小衰减是不同的,随着旁瓣的减小,主瓣宽度相应增加了. (6)从五个窗比较三角窗,矩形窗,汉宁窗,汉明窗,窗设计的滤波器的仿真结果旁瓣衰减逐步增加,主瓣相应增宽。 第五章 基于SIUMLINK的FIR滤波器的仿真前面我们已经介绍了FIR滤波器的性能以及设计方法,并且实现了不同窗函数对同一个滤波器的设计方法,matlab的siumlink工具箱中提供了强大的功能,下面我们用siumlink对以上所设计的滤波器进行仿真。5.1使用FDATOOL设计滤波器 (1)首先根据前面用窗函数设计的滤波器确定下滤波器的指标:前面已经算过,滤波器的阶数为34;低通滤波器;采用窗函数法设计;fs取220kHZ,fc取33kHZ;取fs的归一化频率为1,则fc的归一化频率就是1.5。 (2)打开MATLAB的FDATOOL设计滤波器并保存单击MATLAB主窗口下方的“start”按钮,选择“ToolBox”"Filter Design""Filter Design&Analysis Tool"命令,打开FDATool,如图5-1所示。 图5-1设计FIR滤波器按照以上指标设计滤波器,单击“Design Filter”图标,指标要求的滤波器就设计好了。设计好的滤波器如图6-1-2所示。 图5-2设计好的滤波器将设计好的滤波器以untitled.fda名字保存。 5.2 滤波器的分析如果要了解滤波器是否满足要求,分析步骤如下:(1)滤波器的幅频响应 选择FDATool菜单的“Analysis”“Magnitude Response”,启动幅频响应,分析如图5-3所示,X为频率,Y为幅度值(dB)。 图5-3汉宁窗的幅频响应(2)滤波器的相频响应选择“Analysis”“Phasc Rcsponsc”,启动相频响应分析,如图5-4所示。 图5-4布莱克曼窗设计的滤波器的相频响应 通过FDATool,我们可以吧幅频响应图和相频响应的图放在一起来比较。 (3)幅频响应与相频响应比较 “Analysis”"Magnitude and Phase Response"来启动分析,如图5-5所示。图5-5幅频响应与相频响 由图可以看出该滤波器是线性相位的FIR滤波器冲击响应和阶跃响应 “Analysis”"Impulse Response "如图5-6所示 “Analysis”"Step Response"如图5-7所示 图5-6冲击响应 图5-7阶跃响应 由图5-6可知,滤波器的实际脉冲响应是偶对称即h(n)=h(m-1-n),故该滤波器满足FIR线性相位的条件,该滤波器是线性相位FIR滤波器。 5.3 设计仿真模块 打开simulink的模型窗口,构建出如图5-8所示模型. 图5-8simulink仿真图 5.4 设置输入信号,并导入滤波器(1)构造以基波为主的原始信号x(t)=15sin(10)+10sin(30)+15sin(600).(2)把设计好的滤波器导入到Digital Filter Design 模块,通过波形观察窗口和频谱观查仿真结果。 导入方法:打开Digital Filter Design模块,“file”“session”然后选择前面保存的untitled.fda文件。 5.5对设计好的滤波器进行仿真与分析 单击开始按钮开始仿真。 仿真结果: (1)滤波前后波形图 图5-9滤波前信号波形图 图5-10滤波后信号波形图(2)滤波前后频谱图 图5-11滤波器前信号频谱图 图5-12滤波后信号频谱图 (3)对仿真结果进行分析 经比较仿真前后的波形图和频谱图可以看出15sin(600)信号分量其归一化频率大于通带归一化截止0.15所以被滤去,而信号15sin(10)和10sin(30)信号的归一化频率低于通带归一化截止0.15可以通过滤波器。第六章 总结MATLAB是一款高校,直观且操作方便的工程软件,在利用其设计FIR数字滤波器的过程中更是体现了这些特点。相比传统设计方法,计算机辅助设计要更加简便、快捷,大大提高了工作效率。本文基于信号与系统理论知识,结合MATLAB软件对FIR数字滤波器进行了设计,主要用窗函数法实现滤波器的功能,并且相互比较各种窗做出来的滤波器的优缺点,适用范围。在设计过程中还可以对比滤波器特性随时修改参数以达到滤波器最优化。参考文献【1】丁玉美,高西,数字信号处理,第三版,西安电子科技大学出版社,2005【2】刘卫国,MATLAB程序设计与应用。第二版,高等教育出版社,2006【3】郑君里,信号与系统,清华大学出版社,2002【4】吴大正,高西全,MATLAB在电子信息课程中的应用,电子工业出版社,2002 附录一 仿真程序以下只以汉宁窗为主,其他窗只需修改w_ham项内容即可。clear all;wp=0.2*pi;ws=0.4*pi;tr_wdith=ws-wp;N=ceil(6.6*pi/tr_wdith)+1;n=0:1:N-1;wc=(ws+wp)/2;%理想低通滤波器的截止频率hd=ideal_lp1(wc,N);%理想低通滤波器的单位冲激响应w_ham=(hanning(N)'%汉宁窗h=hd.*w_ham;%截取得到实际的单位脉冲响应db,mag,pha,w=freqz_m2(h,1);%计算实际滤波器的幅度响应delta_w=2*pi/1000;ap=-(min(db(1:1:wp/delta_w+1);%实际带通波纹as=-round(max(db(ws/delta_w+1:1:501);%实际阻带波纹subplot(221);stem(n,hd);title('理想单位脉冲响应hd(n)');subplot(222);stem(n,w_ham);title('汉宁窗w(n)');subplot(223);stem(n,h);title('实际单位脉冲响应hd(n)');subplot(224);stem(w/pi,db);title('幅度响应(dB)');axis(0,1,-100,10);ap,as,tr_wdith