FIR数字滤波器设计
长 治 学 院
2012届学士学位毕业论文
FIR 数字滤波器设计
学 号: 08405416
姓 名: 刘萍
指导教师: 张秀秀
专 业: 电子信息科学与技术
系 别: 电子信息与物理系
完成时间:2012年5月
FIR 数字滤波器的设计
专业:电子信息科学与技术 姓名:刘萍 学号:08485416
指导教师: 张秀秀
摘要:本论文首先介绍了FIR 数字滤波器的基础知识,然后讲述了本论文对于FIR 数字滤波器的设计方法。设计思想为:以窗函数设计方法为基础,选定一个理想的选频滤波器,然后截取它的脉冲响应得到线性相位。仿真工具应用MATLAB 软件设计FIR 数字滤波器,并对所设计的滤波器进行了分析总结,可以得到较好的滤波效果。
关键字:数字滤波器; MATLAB; 窗函数法
目录
1. 绪论 ............................................................................................................................. 1
1.1数字滤波器的研究背景和意义 ........................................................................ 1
1.2数字滤波器的应用与发展趋势 ........................................................................ 1
1.3 主要研究内容 ................................................................................................... 3
2. FIR滤波器 ................................................................................................................. 4
2.1 FIR滤波器的基本概念 .................................................................................... 4
2.2 FIR滤波器的特点 ............................................................................................ 4
2.2.1 数字滤波器类型 .................................................................................. 4
2.2.2 FIR 滤波器的线性相位 ....................................................................... 5
3. 滤波器的设计 ............................................................................................................ 6
3.1 窗函数法 ........................................................................................................... 6
3.2频率采样法 ........................................................................................................ 7
3.3切比雪夫逼近法 ................................................................................................ 8
4. FIR滤波器的实现方法 ........................................................................................... 10
5. 基于MATLAB 的FIR 滤波器的设计 ........................................................................ 12
5.1 MATLAB 简介 .................................................................................................. 12
5.2 基于MATLAB 的FIR 滤波器的设计 ............................................................... 13
5.2.1高通滤波器 ........................................................................................... 13
5.2.2低通滤波器的设计 ............................................................................... 15
结束语 ............................................................................................................................ 19
参考文献 ............................................................................................................................................ 20
1. 绪论
1.1数字滤波器的研究背景和意义
当今,数字信号处理技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们普遍的关注数字化、智能化和网络化是当代信息技术发展的大趋势,而数字化是智能化和网络化的基础,实际生活中遇到的信号多种多样,例如广播信号、电视信号、雷达信号、通信信号、导航信号等等。上述这些信号大部分是模拟信号,也有小部分是数字信号。模拟信号是自变量的连续函数,自变量可以是一维的,也可以是二维或多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化),这类模拟信号便成为一维数字信号。因此,数字信号实际上是数字序列表示的信号,语音信号经采样和量化后,得到的数字信号是一个一维离散时间序列;而图像信号的经采样和量化后,得到的是数字信号是一个二维离散空间序列。
数字滤波技术是数字信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输时至关重要的。在所有的电子系统中,使用最多技术最复杂的要算数字滤波器了。数字滤波器的优劣直接决定产品的优劣。
1.2数字滤波器的应用与发展趋势
在信号处理过程中,所处理的信号往往混有噪音,从接收到的信号中消除或减弱噪音是信号传输和处理中十分重要的问题。根据有用信号和噪音的不同特性,提取有用信号的过程称为滤波,实现滤波功能的系统称为滤波器。在近代电信设备和各类控制系统中,数字滤波器应用极为广泛,这里只列举部分应用最成功的领域。
(1) 语音处理
语音处理是最早应用数字滤波器的领域之一,也是最早推动数字信号处理理论发展的领域之一。该领域主要包括5个方面的内容:第一,语音信号分析。即对语音信号的波形特征、统计特性、模型参数等进行分析计算;第二,语音合成。
即利用专用数字硬件或在通用计算机上运行软件来产生语音;第三,语音识别。即用专用硬件或计算机识别人讲的话,或者识别说话的人;第四,语音增强。即从噪音或干扰中提取被掩盖的语音信号。第五,语音编码。主要用于语音数据压缩,目前已经建立了一系列语音编码的国际标准,大量用于通信和音频处理。近年来,这5个方面都取得了不少研究成果,并且,在市场上已出现了一些相关的软件和硬件产品,例如,盲人阅读机、哑人语音合成器、口授打印机、语音应答机,各种会说话的仪器和玩具,以及通信和视听产品大量使用的音频压缩编码技术。
(2) 图像处理
数字滤波技术以成功地应用于静止图像和活动图像的恢复和增强、数据压缩、去噪音和干扰、图像识别以及层析X 射线摄影,还成功地应用于雷达、声纳、超声波和红外信号的可见图像成像。
(3) 通信
在现代通信技术领域内,几乎没有一个分支不受到数字滤波技术的影响。信源编码、信道编码、调制、多路复用、数据压缩以及自适应信道均衡等,都广泛地采用数字滤波器,特别是在数字通信、网络通信、图像通信、多媒体通信等应用中,离开了数字滤波器, 几乎是寸步难行。其中,被认为是通信技术未来发展方向的软件无线电技术,更是以数字滤波技术为基础。
(4) 电视
数字电视取代模拟电视已是必然趋势。高清晰度电视的普及指日可待,与之配套的视频光盘技术已形成具有巨大市场的产业;可视电话和会议电视产品不断更新换代。视频压缩和音频压缩技术所取得的成就和标准化工作,促成了电视领域产业的蓬勃发展,而数字滤波器及其相关技术是视频压缩和音频压缩技术的重要基础。
(5) 雷达
雷达信号占有的频带非常宽,数据传输速率也非常高,因而压缩数据量和降低数据传输速率是雷达信号数字处理面临的首要问题。告诉数字器件的出现促进了雷达信号处理技术的进步。在现代雷达系统中,数字信号处理部分是不可缺少的,因为从信号的产生、滤波、加工到目标参数的估计和目标成像显示都离不开数字滤波技术。雷达信号的数字滤波器是当今十分活跃的研究领域之一。
(6) 声纳
声纳信号处理分为两大类,即有源声纳信号处理和无源声纳信号处理,有源声纳系统涉及的许多理论和技术与雷达系统相同。例如,他们都要产生和发射脉冲式探测信号,他们的信号处理任务都主要是对微弱的目标回波进行检测和分析,从而达到对目标进行探测、定位、跟踪、导航、成像显示等目的,他们要应用到的主要信号处理技术包括滤波、门限比较、谱估计等。
(7) 生物医学信号处理
数字滤波器在医学中的应用日益广泛,如对脑电图和心电图的分析、层析X 射线摄影的计算机辅助分析、胎儿心音的自适应检测等。
(8) 音乐
数字滤波器为音乐领域开辟了一个新局面,在对音乐信号进行编辑、合成、以及在音乐中加入交混回响、合声等特殊效果特殊方面,数字滤波技术都显示出了强大的威力。数字滤波器还可用于作曲、录音和播放,或对旧录音带的音质进行恢复等。
(9) 其他领域
数字滤波器的应用领域如此广泛,以至于想完全列举他们是根本不可能的,除了以上几个领域外,还有很多其他的应用领域。例如,在军事上被大量应用于导航、制导、电子对抗、战场侦察;在电力系统中被应用于能源分布规划和自动检测;在环境保护中被应用于对空气污染和噪声干扰的自动监测,在经济领域中被应用于股票市场预测和经济效益分析,等等。
1.3 主要研究内容
本课题主要应用MATLAB 软件设计FIR 数字滤波器,对所设计的滤波器进行仿真,检验FIR 滤波器的性能。为了使设计更加形象直观,并采用simulink 对滤波器进行仿真,进一步分析它的性能。
具体工作包括:介绍FIR 数字滤波器的特点,分析FIR 滤波器的设计方法,重点研究窗函数设计FIR 滤波器;采用MATLAB 软件来学习数字滤波器的基本知识,对FIR 带通数字滤波器进行设计和仿真,结合图形对滤波器的性能进行分析。
2. FIR滤波器
2.1 FIR滤波器的基本概念
FIR 滤波器有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。滤波器设计是根据给定滤波器的频率特性,求得满足该特性的传输函数。
2.2 FIR滤波器的特点
2.2.1 数字滤波器类型
一般数字滤波器从功能上分类,可以分为低通、高通、带通和带阻等滤波器。数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分成无限脉冲响应(IIR)滤波器和有限脉冲响应(FIR)滤波器。他们的系统函数分别为:
-r b z ∑r M
H (z)=
1+∑h (n ) z -n
n =0r =0N -1 (2-2-1)
H (z ) =∑h (n ) z -n (2-2-2)
n =0N -1
(2-2-1)式中H (z ) 的称为N 阶IIR 滤波器函数,(2-2-2)式中H (z ) 称为N-1阶FIR 滤波器函数。
在数字信号处理应用中往往需要设计线性相位的滤波器,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。FIR 滤波器不断地对输入样本x(n)延时后,再作乘法累加算法,将滤波结果y(n)输出,因此,FIR 实际上是一种乘法累加运算。在数字滤波器中,FIR 滤波器的最主要的特点是没有反馈回路,不存在不稳定的问题;同时,可以在幅度特性是随意设置的同时,保证精确的线性相位。稳定和线性相位特性是FIR 滤波器的突出优点。另外,它还有以下特点:设计方式是线性的;硬件容易实现;滤波器过渡过程具有有限区间;相
对IIR 滤波器而言,阶次较高,其延迟也要比同样性能的IIR 滤波器大得多。
2.2.2 FIR 滤波器的线性相位
在许多应用领域,例如通信和图像处理中,在一定频率范围内维持相位的完整性是一个期望的系统属性。因此,就必须设计能够建立线性相位性能的滤波器。系统相位线性度的标准尺度就是“群时延”,其定义为: τ(ω) =d θ(ω) (2-2-3) d ω
完全理想的线性相位滤波器对于一定频率范围内的群时延是一个常数。
线性相位条件:对于长度为N 的h(n),传输函数为
H (e j ω) =∑h (n ) e -j ωn (2-2-4)
n =0N -1
H (e j ω) =H g (ω) e j θ(ω) (2-2-5)
式中,H g (ω) 称为幅度特性,θ(ω) 称为线性相位特性。H (e j ω) 线性相位是指θ(ω) 是ω的线性函数,即
θ(ω) =-τω, τ为常数 (2-2-6)
如果θ(ω) 满足下式:
θ(ω) =θ0-τω, θ0是初始相位 (2-2-7)
严格的说,此时θ(ω) 不具有线性相位,但以上两种情况都满足群时延是一个常数,即
d θ(ω) =-τ d ω(2-2-8)
也称这种情况为线性相位。一般满足(2-2-6)式是第一类线性相位;满足(2-2-7)式为第二类线性相位。
第一类线性相位:h(n)是实序列且对(N-1)/2偶对称,即
h (n ) =h (N -n -1) (2-2-9)
第二类线性相位:h(n)是实序列且对(N-1)/2奇对称,即
h (n ) =-h (N -n -1) (2-2-10)
3. 滤波器的设计
3.1 窗函数法
设计FIR 数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数
jw 法。FIR 数字滤波器的设计首先给出要求的理想滤波器的频率响应H d (e ) , 设计一
jw 个FIR 数字滤波器频率响应H (e jw ) ,去逼近理想的滤波响应H d (e ) 。然而,窗函
jw 数法设计FIR 数字滤波器是在时域进行的,因而必须由理想的频率响应H d (e ) 推
导出对应的单位取样响应h d (n ) ,再设计一个FIR 数字滤波器的单位取样响应h (n ) 去逼近h d (n ) 。设计过程如下:
IDTFFT *w (n ) DTFT j ωj ωH (e ) −−−→h (n ) −−−→h (n ) −−−→H (e ) d (3-1-1) d
加窗的作用是通过把理想滤波器的无限长脉冲响应h d (n ) 乘以窗函数w (n ) 来产生一个被截断的脉冲响应,即h (n ) =h d (n ) w (n ) 并且对频率响应进行平滑。FIR 滤波器单位冲激响应h(n):其单位冲激响应h(n)是有限长(
), 系统函数为: (3-1-2) H (z ) =∑h (n ) z -n
n =0N -1
在有限Z 平面有(N-1)个零点,而它的(N-1)个极点均位于原点z=0处。FIR 滤波器线性相位的特点:如果FIR 滤波器的单位抽样响应h(n)为实数,而且满足以下任一条件:
偶对称h(n)=h(N-1-n)
奇对称h(n)=-h(N-1-n)
其对称中心在n =(N-1)/2处,则滤波器具有准确的线性相位。
窗函数主要用来减少序列因截断而产生的Gibbs 效应。但当这个窗函数为矩形时,得到的FIR 滤波器幅频响应会有明显的Gibbs 效应,并且任意增加窗函数的长度(即FIR 滤波器的抽头数)Gibbs 效应也不能得到改善。为了克服这种现象, 窗函数应该使设计的滤波器:
(1) 频率特性的主瓣宽度应尽量窄, 且尽可能将能量集中在主瓣内;
(2) 窗函数频率特性的旁瓣ω趋于π 的过程中,其能量迅速减小为零。 在实际工程中常用的窗函数有五种,即矩形窗、三角窗、汉宁窗、海明窗和
凯泽窗。这些窗函数在MATLAB 中分别用boxcar 、triang 、hanning 、hamming 、kaiser 实现,它们之间的性能比较如表1所示。
3.2频率采样法
频率采样法是从频域出发, 根据频域采样定理,对给定的理想滤波器的频率响应H (e jw ) 加以等间隔的抽样 ,得到h d (k ) :
jw H d (k ) =H d (e ) w =(2π) k k=0,1,„,N-1 (3-2-1)
再利用H d (k ) 可求得FIR 滤波器的系统函数H (Z ) 及频率响应H (e jw ) 。
而在各采样点间的频率响应则是其的加权内插函数延伸叠加的结果。但对于一个无限长的序列,用频率采样法必然有一定的逼近误差, 误差的大小取决于理想频响曲线的形状, 理想频响特性变换越平缓, 则内插函数值越接近理想值, 误差越小。为了提高逼近的质量,可以通过在频率相应的过渡带内插入比较连续的采样点,扩展过渡带使其比较连续,从而使得通带和阻带之间变换比较缓慢,以达到减少逼近误差的目的。
选取w ∈[0,2π]内N 个采样点的约束条件为:
{H (k ) =H (N -k ) ϕ(m ) =ϕ(N -m ) 0≤k ≤N -1 (3-2-2)
(1)增大阻带衰减三种方法:
1)加宽过渡带宽,以牺牲过渡带换取阻带衰减的增加。
2)过渡带的优化设计
利用线性最优化的方法确定过渡带采样点的值,得到要求的滤波器的最佳逼近
(而不是盲目地设定一个过渡带值)。
3)增大N 。如果要进一步增加阻带衰减,但又不增加过渡带宽,可增加采样点数N 。代价是滤波器阶数增加,运算量增加。
直接从频域进行设计,物理概念清楚,直观方便;适合于窄带滤波器设计,这时频率响应只有少数几个非零值,但是截止频率难以控制。
典型应用:用一串窄带滤波器组成多卜勒雷达接收机,覆盖不同的频段,多卜勒频偏可反映被测目标的运动速度。
3.3切比雪夫逼近法
Chebyshev 方法是最佳一致逼近法。该方法在数字信号处理中占有重要的地位,是设计FIR 滤波器理想的方法。但是,该方法的原理较为复杂。数字滤波器频域设计的最优方法是等波纹切比雪夫法,是采用最大误差最小准则得到最优数字滤波器,而且其最优解唯一。最优设计实际上是调节FIR 滤波器Z 域零点的分布,使得
j ωj ω实际滤波器的频域响应A e (e ) 和理想滤波器的频域响应H d (e ) 之间的最大绝对
误差最小。对于I 型FIR 数字滤波器,其频响可表示为:
A d (e ) =h e (0)+∑2h e (n )cos(ωn ) (3-3-1) j ω
n =1L
其中,h e (n ) 为滤波器系数,L = M/2, M为滤波器阶数。我们将研究对于设计具有广义线形相位的FIR 滤波器特别有效且广泛使用的算法Parks-McClellan 算法。该算法的基础是将滤波器的设计问题用公式表示成多项式逼近问题。该算法将滤波器阶数L 、带沿频率ωp 和ωs ,以及通带阻带最大误差比δ1/δ2固定,令δ1或δ2为变量,有效而系统的改变((L+1)个非限制的脉冲响应值h e (n ) ,从而达到满足设计指
j ω标的目的。(3-3-1)式中的cos(ωn ) 项可表示为不同幂次之和,A e (e ) 可改写为
A e (e ) =∑a k (cosω) k (3-3-2) j ω
k =0L
式中,a k 是与h e (n ) 相关的常数。我们定义逼近误差函数为:
E (ω) =W (ω)[H d (e j ω) -A e (e j ω)] (3-3-3)
j ω其中,W (ω) 为加权函数,要求E (ω) ,W (ω) 及H d (e ) 只在0≤ω≤π区间有定义。
最大误差最小准则即是在所要求频域上找出使(3-3-2)式的最大加权逼近误差达
j ω(|E (ω) |)意义上所求得的最小的频响A e (e ) 。即最佳逼近就是在h (min n ):0≤n ≤L max ω∈F e
逼近。这里的0≤ω≤π闭子集。使给定阶次的多项式的最大加权误差为最小的充要条件由交替定理给出。其表达式为
E (ωj ) =W (ωj )[H d (e j ) -A e (e j )]=(-1) i +1δ j ωj ω
i=1,2,...,(L+2) (3-3-4)
|E (ω) | (3-3-5) |E |=(max)ω∈F
δ为最优误差。(3-3-4)、(3-3-5)式说明逼近误差E (ωi ) 至少要有L+2交错点,从
j ω而使|E|最小,A e (e ) 唯一。由(3-3-2),(3-3-4)式可以解出系数组a k 和δ。
另一种更为有效的方法是多项式内插公式,可求得
δ=∑b H k
k =1
L +2L +2d (e j ωk ) (-1) k +1∑k =1W (ωk ) (3-3-6) 其中b k =∏1j ω,也即若A e (e ) 由满足(3-3-2),(3-3-4)式 确定的a k 并且δi =1, i ≠k x -x k i L +2
由(3-3-6)式给出,则误差函数就会通过((L+2)个频率ωc 上的士δ处。而为避免求解复杂方程组(3-3-2),(3-3-4)来得出系数,Parks-McClellan 采用Lagrange 多项式内插公式,有
A e (e j ω) =∑[d k =1L +2
k =1L +2k /(x -x k )]c k (3-3-7) k ∑[d /(x -x k )]
其中,c k =A d (e j ωk L +11(-1) k +1δd =∏=b k (x k +x L +2), ) - ,k i =1, i ≠k x -x W (ωk ) k i
j ω这里令x i =cos ωi 。通过(3-3-7)式可计算通带和阻带中多处频域的A e (e ) 和E (ω)
值。若对通带和阻带中的所有ω,都有|E (ω) |
4. FIR滤波器的实现方法
数字滤波器的实现方法一般有以下几种
(1)用计算机软件实现
软件实现方法即是在通用的微型计算机上用软件实现。利用计算机的存储器、运算器和控制器把滤波所要完成的运算编成程序通过计算机来执行,软件可由使用者自己编写,也可以使用现成的。国内外的研究机构、公司已经推出了不同语言的信号滤波处理软件包。但是这种方法速度慢,难以对信号进行实时处理,虽然可以用快速傅立叶变换算法来加快计算速度,但要达到实时处理要付出很高的代价,因而该方法多用于教学与科研。
(2)采用DSP 处理器来实现
DSP 处理器是专为数字信号处理而设计的,如TI 公司的TMS320CX 系列,AD 公司的ADSP2IX, ADSP210X系列等。它的主要数字运算单元是一个乘累加器,能够在一个机器周期内完成一次乘累加运算,配有适合于信号处理的指令,具备独特的循环寻址和倒序寻址能力。这些特点都非常适合数字信号处理中的滤波器设计的有效实现,并且它的速度快,成本低,在过去的20多年的时间里,软件可编程的DSP 器件几乎统治了商用数字信号处理硬件的市场。用DSP 芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响外,还具有灵活性好的特点。用可编程DSP 芯片实现数字滤波可通过修改滤波器的参数十分方便的改变滤波器的特性。
(3)采用固定功能的专用信号处理器实现
专用信号处理器采用专用集成电路ASIC(Application Specific Integrated Circuits) 来实现,适用于过程固定而又追求高速的信号处理任务,是以指定的算法来确定它的结构,使用各种随机逻辑器件组成的信号处理器。它们体积小、保密性好,具有极高的性能,然而灵活性差。
(4)用FPGA 等可编程器件实现
使用相关开发工具和VHDL 等硬件开发语言,通过软件编程用硬件实现特定数字滤波算法。这一方法由于具有通用性的特点并可以实现算法的并行运算,无论是作为独立的数字信号处理,还是作为DSP 芯片协作处理器, 都是比较活跃的研究
领域。如今,FPGA 已成为数字信号处理系统的核心器件,尤其在数字通信、网络、视频和图像处理等领域。现在的FPGA 不仅包含查找表、寄存器、多路复用器、分布式块存储器,而且还嵌入专用的快速加法器、乘法器和输入,输出设备。FPGA 具有实现高速并行运算的能力,因而成为高性能数字信号处理的理想器件。此外,与专用集成电路(ASIC)相比,FPGA 具有可重复编程的优点。在数字多普勒接收机的实现过程中,根据接收机的性能要求以及所选用的FPGA 器件资源,选取最优的FlR 滤波器实现结构。随着FPGA 查找技术的发展,具有较快的滤波速度和消耗较少资源的DA 算法在FIR 数字滤波领域得到了广泛应用。
5. 基于MATLAB 的FIR 滤波器的设计
5.1 MATLAB 简介
Matlab 产品家族是美国mathwork 公司开发的用于概念设计、算法开发、建筑仿真、实时实现的理想的集成环境。由于其完整的专业体系和先进的开发设计思路,使matlab 在各种领域中都有广阔的应用空间,特别是在matlab 的主要应用空间——科学计算、建模仿真及信息工程系统的设计开发上已成为行业内首选的设计工具。全球现有超过五十五万的企业用户和上千万的个人用户,广泛分布在航空航天、金融财务、机械化工、电信、教育等各个行业。
Matlab 产品家族中,matlab 工具箱是整个体系的基座,它是一个语言编程型开发平台,提供了体系中其他工具所需要的集成环境。Matlab 中的信号处理工具箱Signal Processing Toolbox是建立在滤波器设计及谱分析的的坚实基础上,包含了一系列强有力的工具以利于算法的开发、信号及线性系统分析、多速率信号处理、滤波器设计及分析,工具箱提供了一个集成的图形界面,方便滤波器设计、谱分析、信号浏览等。该工具箱可用来进行算法开发、滤波器设计、频谱分析等,应用于话音处理、通讯、地球物理、实时控制、财务、雷达及生物医学工程。
MATLAB 具有强大的仿真功能,其明显的优势有:
●友好的工作平台和编程环境
●简单易用的程序语言
●强大的科学计算机数据处理能力
●出色的图形处理功能
●应用广泛的模块集合工具箱
●实用的程序接口和发布平台
●应用软件开发(包括用户界面)
MATLAB 包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB 的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。开放性使MATLAB 广受用户欢迎。除内部函数外,所有MATLAB 主包文件和各种工具包都是可读可修改的文
件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。
MATLAB 提供了相应的子程序来实现窗函数,例如:
wd=boxcar(N) %数组wd 中返回N 点矩形窗函数
wd=triang(N) %数组wd 中返回N 点三角窗函数
wd-harming(N) %数组wd 中返回N 点汉宁窗函数
wd=hamming(N) %数组wd 中返回N 点哈明窗函数
wd=blackman(N) %数组wd 中返回N 点布莱克曼窗函数
这些函数的输入一般只要窗函数的长度N 就够了,只有凯塞窗还需要规定beta 值。输出单元就是中心值归一化为1的窗函数序列wd ,它是列向量。MATLAB 是用颜色区分并标注各条曲线的,在黑白印刷时无法表示。用户可以在计算机上得到相似的以不同颜色区分的图形。总之,Matlab 语言的设计思想可以说代表了当前计算机高级语言的发展。
5.2 基于MATLAB 的FIR 滤波器的设计
5.2.1高通滤波器
用窗函数设计高通滤波器,性能指标如下:通带截止频率ωs=0.2π,阻带截止频率ωp=0.3π,实际通带波动Rp=0.25dB,最小阻带衰减As=70dB。
分析:从表1可以看出凯泽窗能提供74dB 的最小阻带衰减,所以选用凯泽窗进行设计,程序主要部分如下:
As=70;
ωs=0.2*π;
ωp=0.3*π
tr_width=ωp-ωs; %计算过渡带宽 M=ceil((As-7.95)*2*π/(14.36*tr_width)+1)+1; 按凯泽窗计算滤波器长度
disp([’滤波器的长度为’,num2str(M)]);
beta=0.1102*(As-8.7); %计算凯泽窗的β值
n=[0:1:M-1];
disp([’线性相位斜率为’,num2str(beta)]);
w_kai=(kaiser(M,beta))’; %求凯泽窗函数
ωc=(ωs+ωp)/2;
hd=ideal_lp(π,M)-ideal_lp(ωc,M); %求理想脉冲响应
h=hd*w_kai; %设计的脉冲响应为理想脉冲响应与窗函数乘积
[db,mag,pha,grd,ω]=freqz_m(h,[1]);
delta_ω=2*π/1000;
Rp=-(min(db(ωp/delta_ω+1:1:501)));
disp([’实际通带波动为’,num2str(Rp)]);
As=-round(max(db(1:1:ωs/delta_ω+1)));
disp([’最小阻带衰减为’,num2str(As)]);
subplot(1,1,1);
subplot(2,2,1);
stem(n,hd);
title(’理想脉冲响应’);
axis([0 M-1 -0.4 0.8]);
ylabel(’hd(n)’);
subplot(2,2,2);
stem(n,w_kai);
title(’凯泽窗’);
axis([0 M-1 0 1.1]);
ylabel(’wd(n)’);
subplot(2,2,3);
stem(n,h);
title(’实际脉冲响应’);
axis([0 M-1 -0.4 0.8]);
xlabel(’n ’);ylabel(’h(n)’);
subplot(2,2,4);
%以下为作图程序
plot(ω/π,db);
title(’幅度响应/dB’);
axis([0 1 -100 10]);
grid;
xlabel(’以π为单位的频率’);
ylabel(’分贝数/dB’);
程序运行结果如图1所示。实际通带波动为0.04369, 最小阻带衰减为70,滤波 器长度为89,线性相位斜率为6.7553, 符合设计要求。
图5-1凯泽窗函数设计的高通滤波器响应曲线
5.2.2低通滤波器的设计
用窗函数设计低通滤波器,性能指标如下:通带截止频率ωp=0.1π,阻带截止频率ωs=0.25π,实际通带波动Rp=0.10dB,最小阻带衰减As=40dB。
分析:从表1可以看出,汉宁窗、海明窗和凯泽窗能提供大于40dB 的最小阻带衰减。但汉宁窗的旁瓣峰值较小,而主瓣宽度和海明窗一样。可以使滤波器的阶数较少,所以选用汉宁窗进行设计,程序主要部分如下:
ωp=0.10*π;
ωs=0.25*π;
tr_width=ωs-ωp; %计算过渡带宽
M=ceil(6.6*/tr_width)+1; %按汉宁窗计算滤波器长度
disp([’滤波器的长度为’,num2str(M)]);
n=0:M-1;
ωc=(ωs+ωp)/2; %截止频率取为两边缘频率的平均值
hd=ideal_lp(ωc,M); %求理想脉冲响应
w_han=(hanning(M))’; %求汉宁窗函数
h=hd*w_han; %设计的脉冲响应为理想脉冲响应与窗函数乘积
[db,mag,pha,grd,ω]=freqz_m(h,[1]);%以下为作图语句
delta_ω=2*π/1000;
Rp=-(min(db(1:1: ωp/delta_ω+1)));
disp([’实际通带波动为’,num2str(Rp)]); %以下为作图程序
As=-round(max(db(ωs/delta_ω+1:1:501)));
disp([’最小阻带衰减为’,num2str(As)]);
subplot(221)
stem(n,hd);
title(’理想冲击响应’),
axis([0 M-1 -0.1 0.3]);
ylabel(’hd(n)’);
subplot(222)
stem(n,w_han);
title(’汉宁窗’),
axis([0 M-1 0 1.1]);
ylabel(’wd(n)’);
subplot(223)
stem(n,h);
title(’实际冲击响应’),
axis([0 M-1 -0.1 0.3]);
xlabel(’n ’);
ylabel(′h(n)′);
subplot(224);
plot(ω/π,db);
title(′幅度响应(db) ′);
axis([0 1 -100 10]),
grid;
xlabel(′以π为单位的频率′);
ylabel(′分贝数′);
仿真结果如图2所示。实际通带波动为0.076565, 最小阻带衰减为44,滤波器长度为67,符合设计要求。
图5-2汉宁窗函数设计的低通滤波器响应曲线
与其他高级语言的程序设计相比,MATLAB 环境下可以更方便、快捷地设计出具有严格线性相位的FIR 滤波器,节省大量的编程时间,提高编程效率,且参数的修改也十分方便,还可以进一步进行优化设计。相信随着版本的不断提高,MATL
在数字滤波器技术中必将发挥更大的作用。同时,用MATLAB 计算有关数字滤波器
的设计参数,如H(z)、h(n)等,对于数字滤波器的硬件实现也提供了一条简单而
准确的途径和依据。
结束语
通过对本课题的研究,关于数字信号处理方面的理论知识得到了丰富和提高,
熟悉了课题研究的整体思路和方法,认识到进行课题研究应具备的素质。第一,
对一个课题的研究必须要阅读大量的文献和书籍来获得一定的感性认识,然后才
会有一定的思路和设计方法。第二,理论基础知识的重要性。论文涉及许多算法,
会用到很多理论知识,需要日积月累、不断的学习。第三,掌握各种设计软件的
必要性。应用功能强大的软件来进行计算、设计和仿真,可使研究工作得到事半
功倍的效果。例如MATLAB 软件,它是集数值计算、符号运算及图形处理等强大功
能为一体的科学计算语言,己被算法研究人员、工程技术人员广泛应用。最后,
工作要有信心,要虚心,要不畏困难、不断进取,这样才可以保证课题研究工作
的圆满完成。
参考文献
[1] 程佩青 数字信号处理(第3版) ,清华大学出版社,2009,323-370
[2] 赵谦 通信系统中MATLAB 基础与仿真应用,西安电子科技大学出版社,2010.
[3] 吴大正 信号与线性系统分析(第4版),高等教育出版社,2005,309-330
[4] 徐远明,邵玉斌 MATLAB 仿真在通信与电子工程中的应用,西安电子科技大 学出版社,2005,67-112
[5] 薛年喜 MATLAB在数字信号处理中的应用,清华大学出版社,2003.11.1,201-220
[6] 陈怀琛 数字信号处理教程-MATLAB 释义与实现,电子工业出版社,65-84
[7] 陈亚勇 MATLAB信号处理详解,人民邮电出版社,2001,110-223
The design of FIR digital filters
Name: LiuPing Guide teacher: ZhangXiuxiu
Abstract: This paper first introduced the basic knowledge of FIR digital filters, and then introduced for the design method of FIR digital filters. The design thought for: to the window function design method as the foundation, the selected a ideal frequency selective filter, and then intercept it get the pulse response of linear phase. MATLAB simulation tool software design FIR digital filter, and the design of filter is summarized, can get good effect of filter.
Key Word: digital filter; MATLAB; window function method