1、数字滤波器设计及其应用班级:311111 姓名:曹利民在本文中,我们分别研究了在MATLAB环境下IIR数字滤波器的典型设计和完全设计等方法。典型设计是先按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤波器的技术指标,据此产生模拟滤波器原型,然后把模拟低通滤波器原型转换成模拟低通、高通、带通、带阻滤波器,最后再把模拟滤波器转换成数字滤波器。完全设计方法中我们利用函数直接设计出低通、高通、带通和带 阻滤波器,并分别用巴特沃斯(Butterworth )滤波器、切比雪夫 (Chebyshev)滤波器、椭圆(Cauw)滤波器来实现,并比较了各自的频率响应曲线。在FIR滤波器的设计中,我们用切比
2、雪夫窗和海明窗设计的带通滤波器的频率响应进行对照,结果表面用海明窗设计的滤波器的频率 特性几乎在任何频带上都比切比雪夫窗设计的滤波器的频率特性好, 只是海明窗设计的滤波器下降斜度较小。本文利用不同的滤波器研究了 MATLAB环境下的图像处理技术。 对一张无锡马山园林的风景照片进行的二种修正,取得了不同的 效果:先对原图进行线性变换增加了对比度和亮度对这张图像,图像 效果有了 一定的改善。后来我们用非锐化滤波器对修正后的图像再进 行了处理,对图像的过渡失真进行了补偿。:本文还对一幅加噪声婚纱照片的去噪效果进行了研究。比较去噪 效果证明,用小波变换的方法进行去噪,图像处理效果更佳。关键词:数字滤波
3、器;图像处理;小波变换;作 者:王蔚指导教师:顾济华AbstractIn this thesis,the typical and complete designs under MATLAB are studied.The typical design gets the technical parameters from digital filters that should be designed, and then transformed into the analog parameters of a low-pass analog filter prototype. The prototy
4、pe is converted into the analog low-pass,high-pass,band-pass and the band-stop filters respectively, which are transformed into the digital ones.The complete design uses the given functions and releases the low-pass,high-pass, band-pass and the band-stop filters directly. But ter worth, Chebyshev an
5、d Caoer filters are used for the implementations.In the FIR filter designs, Chebyshev and Hamming windows are used for a band-pass filter. Their frequency responses are compared. The advantage of Hamming window is shown on all bands.Finally, the image processing functions using filters under MATLAB
6、are studied.A photo (Wuxi Garden) is modified with two different processes and the different effects can be seen. The linear transformation improved the contrast and brightness of the photo, while the un-sharpening filter compensated the transitions.Another photo is modified with the wavelet transfo
7、rmation, which shows the better effects on reducing noises.Keywords: digital filter, image processing,wavelet transformationAuthor: Wang WeiDirected by Gu Ji-Hua第一章 绪数字滤波在通信、图像编码、语音编码、雷达等许多领域中有着 十分广泛的应用1n2。目前,数字信号滤波器的设计图像处理、数据压 缩等方面的应用取得了令人瞩目的进展和成就。近年来迅速发展起来 的的小波理论,由于其局部分析性能的优异在图像处理中的应用研究, 尤其是在图像压缩、
8、图像去噪等方面的应用研究,受到了越来越多的 关注3H6。MATLAB是美国MathWorks公司推出的一套用于工程计算的可视 化高性能语言与软件环境m。MATLAB为数字滤波的研究和应用提供 了 -个直观、高效、便捷的利器。它以矩阵运算为基础,把计算、可 视化、程序设计融合到了一个交互式的工作环境中。MATLAB推出的 工具箱使各个领域的研究人员可以直观方便地进行科学研究、工程应 用,其中的信号处理(signal processing )、图像处理(image processing )、 小波(wavelet)等工具箱为数字滤波研究的蓬勃发展提供了有力的工具!8Hm。本文着重研究了基于MATL
9、AB下的I1R和FIR滤波器的设计实现、 数字图像处理中的滤波器的设计,并就利用小波变换滤波器进行数字图像去噪进行了一些粗浅的尝试。第二章 数字滤波器 2.1 什么是数字滤波器滤波器是指用来对输入信号进行滤波的硬件和软件。所谓数字滤 波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信 号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波 器和模拟滤波器相比,因为信号的形式和实现滤波的方法不同,数字 滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不 要求阻抗匹配等优点。一般用两种方法来实现数字滤波器:一是釆用通用计算机,把滤 波器所要完成的运算编成程序通过计算机来执
10、行,也就是采用计算机 软件来实现;二是设计专用的数字处理硬件。MATLAB的信号处理工具箱是专门应用于信号处理领域的专用工 具箱,它的两个基本组成就是滤波器的设计与实现部分以及谱分析部 分.工具箱提供了丰富而简便的设计,使原來繁琐的程序设计简化成 函数的调用。只要以正确的指标参数调用相应的滤波器设计程序或工 具箱函数,便可以得到正确的设计结果,使用非常方便。2.2 数字滤波器的分类数字滤波器从功能上分类:可分为低通滤波器、高通滤波器、带 通滤波器、带阻滤波器。从滤波器的网络结构或者从单位脉冲响应分类:可分为IIR滤波器(即无限长单位冲激响应滤波器)和FIR滤波器(即有限长单位冲激 响应滤波器)
11、。它们的函数分别为:第一个公式中的H(z)称为N阶IIR滤波器函数,第二个公式中 的H (z)称为(N-1)阶FIR滤波器函数。2.3 数字滤波器的设计要求和方法滤波器的指标常常在频域给出。数字滤波器的频响特性函数H(ejw) 般为复函数,所以通常表示为H(ejw)-|H(ejw)|eje(w)其中,|H(e) |称为幅频特性函数;9 (w)称为相频特性函数。幅 频特性表示信号通过该滤波器后各频率成分的衰减情况,而相频特性 反映各频率通过滤波器后在时间上的延时情况。一般对hr数字滤波 器,通常只用幅频响应函数iH(e) |来描述设计指标,相频特性一般不 作要求。而对线性相位特性的滤波器,一般用
12、FIR数字滤波器设计实 现。IIR低通滤波器指标参数 如图2. 3. 1所示。图中,to H 和u ,分别为通带边界频率;S ,和5 ,分别为通带波纹和 阻带波纹;允许的衰减一般用 dB数表示,通带内所允许的 最大衰减(dB)和阻带内允许 的最小衰减(dB)分别为a p和a s.表示- 1 n , 1 + 51aa = -20 lg = 20 lgLas - -20 lg 82一般要求:当0彡|co丨彡时,-201g|H(ejw)丨彡a p;当 co| 彡 ii 时,a s-201g|H(ejw) |。2.4 数字滤波器设计方法概述IIR滤波器和FIR滤波器的设计方法很不相同,IIR滤波器设计
13、方 法有两类,经常用到的一类设计方法是借助于模拟滤波器的设计方法 进行的。其设计思路是:先设计模拟滤波器得到传输函数(s),然后 将HJs)按某种方法转换成数字滤波器的系统函数H(Z)。这一类方法是 基于模拟滤波器的设计方法相对比较成熟,它不仅有完整的设计公式, 也有完整的图表供查阅。更可以直接调用MATLAB中的对应的函数进 行设计。另一类是直接在频域或者时域中进行设计的,设计时必须用 计算机作辅助设计,直接调用MATLAB中的一些程序或者函数可以很 方便地设计出所需要的滤波器。FIR滤波器不能采用由模拟滤波器的设 计进行转换的方法,经常用的是窗函数法和频率釆样法。也可以借助 计算机辅助设计
14、软件釆用切比雪夫等波纹逼近法进行设计。第三章 IIR滤波器的设计3.1 典型的IIR数字滤波器的设计模拟滤波器的理论和设计方法已发展得相当成熟,且有一些典型 的模拟滤波器供我们选择,如巴特沃斯(Butterworth)滤波器、切比雪 夫(Chebyshev)滤波器、椭圆(Cauer)滤波器、贝塞尔(Bessel)滤 波器等,这些典型的滤波器各有特点。用MATLAB进行典型的数字滤波器的设计,一般步骤如下:按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤 波器的技术指标;根据转换后的技术指标使用滤波器阶数选择函数,确定最小阶 数N和固有频率Wn,根据选用的模拟低通滤波器的类型可分别用函数:
15、 buttord、cheblord、cheb2ord、ellipord 等;运用最小阶数N产生模拟滤波器原型,模拟低通滤波器的创建 函数有:buttap、cheblap、cheb2ap、ellipap、besselap 等;运用固有频率Wn把模拟低通滤波器原型转换成模拟低通、高 通、带通、带阻滤波器,可分别用函数丨p21p、lp2hp、lp2bp、p2bs;(5)运用冲激响应不变法或双线性变换法把模拟滤波器转换成数字 滤波器,分别用函数impinvar和bilinear来实现。低通Chebyshev I型数字滤波器的设计:设计中需要限定其通带上限临界频率wp,阻带临界滤波频率ws,在通带内的最
16、大衰减rp,阻带 内的最小衰减rs。设计过程如下:把数字滤波器的频率特征转换成模拟滤波器的频率特征;(例如设定各参数 wp=30*2*pi;ws=40*2*pi;Fs=100;rp=0.3;rs-80;)选择滤波器的阶数:N,Wn=chebl ord(wp,ws,rp,rs/sr);创建Chebyshev I型滤波器原型: z,p,k=cheblap(N,rp);表达形式从零极点增益形式转换成状态方程形式: A,B,C,D=zp2ss(z,p,k);把模拟低通滤波器原型转换成模拟低通滤波器:At,BtCt,Dt=lp21p(A,B,C,D,Wn);表达形式从状态方程形式转换成传递函数形式:nu
17、ml,denl=ss2tf(At,BtCt,Dt);釆用冲激响应不变法将模拟滤波器转换成数字滤波器:num2,den2=impinvar(numl,denl ,100);频率响应如图3.1.1:ChebyshevI图3.1.1低通Chebyshev I型数字滤波器的频率响应N,Wn=chebl ord(Wp,wS,rp,rs,Y) 该函数返回模拟滤波器的 最小阶数N和Chebyshev;型固有频率Wn。其中的wp、ws是以弧度 为单位。如果rp=3dB,则固有频率Wn等于通带截止频率WJKz,p?k=cheblap(N,rp) 该函数返回一个 N 阶 Chebyshev I 型滤 波器的零点、
18、极点和增益。这个滤波器有通带内的最大衰减为rp。Chebyshev I型滤波器的主要特点是在阻带内达到最大平滑。At,Bt,Ct,Dt-lp21p(A,B,C,D,Wn)该函数把模拟低通滤波器原型转换成截止频率为Wn的低通滤波器。num2den2=impinvar(nutnl,denl,Fs)该函数模拟滤波器传递函数形式numl,denl转换为采样频率为Fs的数字滤波器的传递函数形 式num2,den2。Fs缺省时默认为1Hz。H,W=freqz(num2,den2,N) 该函数返回数字滤波器的频率响 应。当N是一个整数时,函数返回N点的频率向量H和N个点的复频 响应向量W。N最好选用2的整数
19、次幂,这样使用FFT进行快速运算。 N个频率点均匀地分布在单位圆的上半圆上。系统的N默认值为512。3.2 完全滤波器设计除了典型设计以外,MATLAB信号处理工具箱提供了几个直接设 计IIR数字滤波器的函数,直接调用就可以设计滤波器,这为设计通用 滤波器提供了方便。设计Butterworth滤波器用函数butter(),可以设计低通、高通、带 通和带阻的数字和模拟滤波器,其特性是通带内的幅度响应最大限度 的平滑,但损失了截止频率处的下降斜度。设计ChebyshevI型滤波器用函数cheby 1 (卜可以设计低通、高通、 带通和带阻的数字和模拟Chebyshev I型滤波器,其通带内为等波紋,
20、 阻带内为单调。ChebyshevI型滤波器的下降斜度比I型大,但其代价 目是通带内波纹较大。设计ChebyshevH型滤波器用函数cheby2()。可以设计低通、高通、 带通和带阻的数字和模拟Chebyshev】1型滤波器,其通带内为单调,阻 带内等波纹。ChebyshevH型滤波器的下降斜度比I型小,但其阻带内 波纹较大。设计椭圆滤波器用函数ellip(),与chebyl、cheby2类似,可以设 计低通、高通、带通和带阻的数字和模拟滤波器。与Butterworth和 chebyshev滤波器相比,ellip函数可以得到下降斜度更大的滤波器,得通带和阻带均为等波纹。一般情况下,椭圆滤波器能
21、以最低的阶实现 指定的性能指标。在使用各类滤波器函数时应当注意以下重点:A、阶数和固有频率的选择:N,Wn=buttord(Wp,Ws,Rp,Rs) 可 得到符合要求性质的滤波器的最小阶数N以及数字Buttenvorth滤波器 的固有频率Wn (即3dB)。设计的要求是在通带内的衰减不超过Rp, 在阻带内的衰减不小于Rs,通带和阻带有截止频率分别是Wp,Ws, 它们是归一化的频率,范围是0,1,对应TT弧度。N,Wn=chebl ord(Wp,Ws,Rp,Rs) 可得到符合要求性质的滤波器 的最小阶数N以及chebyshev I型数字滤波器的固有频率Wn(即3dB)。 设计的要求是在通带内的衰
22、减不超过Rp,在阻带内的衰减不小于rs, 通带和阻带有截止频率分别是Wp,Ws,它们都是归一化的频率。N,Wn=cheb2ord(WP,Ws,Rp,Rs) 可得到符合要求性质的滤波器 的最小阶数N以及chebyshev II型数字滤波器的固有频率Wn(即3dB )。 设计的要求是在通带内的衰减不超过Rp,在阻带内的衰减不小于Rs,通带和阻带有截止频率分别是Wp,Ws,它们都是归一化的频率。N,Wn=eIlipord(WP,WS,RP,Rs) 可得到符合要求性质的滤波器 的最小阶数N以及椭圆数字滤波器的固有频率Wll (即3dB)。设计的 要求是在通带内的衰减不超过Rp,在阻带内的衰减不小于RS
23、 ,通带和 阻带有截止频率分别是Wp,Ws,它们都是归一化的频率。B、有关滤波器设计当中的频率归一化问题:信号处理工具箱中经吊使用的频率是Nyquist频率它被定义为采样频率的一半,在滤波器的阶数选择和设计中的截止频率均使用Nyquist频率进行归一化处理。例如对于一个采样频率为1000 Hz的系统,400Hz的归一化即为400/500=0*8。归一化频率的范围在0,1之间。如果要将归一化频率转换为角频率,则将归一化频率乘以n ;如果要将归一化频率转换为Hz, 则将归一化频率乘以釆样频率的一半。C、设计一个N阶的低通Butterworth滤波器使用函数 BsA-buUer(N?Wn)f返回滤波
24、器系数矩阵B,A,其中固有频率Wn必 须是归一化频率它的最大值是釆样频率的一半。Fs缺省时默认为2Hl 如果Wn-W1,W2是一个两元素的向量,则函数将设计出一个2N阶的 带通滤波器,通带为W1,W2。用B,A=butter(N,Wti,high)可设计一个高通滤波器。使用B,A=buUer(N,Wn,stop)可设计一个带阻滤波器。其中Wn 必须是一个两元素的向量,阻带的宽度为W1,W2。buUer(N,Wn,s,),buUer(N,Wn,high,s,),butter(N,Wn/stop,s) 分别用来设计Buttenvorth的低通、高通、带通和带阻模拟滤波器。D、设计一个N阶的低通ch
25、ebyshevI型滤波器可使用函数 B,A-chebyl(N,R,Wn),返回滤波器系数矩阵B,A。其中固有频率Wn 必须是归一化频率。它的最大值是釆样频率的一半。Fs缺省时默认为 2Hzc如果Wn=Wl,W2是一个两元素的向量,则函数将设计出一个2N 阶的带通滤波器,通带为W1,W2。R是滤波器通带内的最大衰减&如 果无法确定R的值,即可以选用0,5dB作为起始点。B,A-chebyl(N,R,Wn,high)设计一个高通滤波器。B,A-chebyl(N,R,Wn,stop) 设计一个带阻滤波器。其中 Wn 必须是一个两元素的向量,阻带的宽度为W1,W2。Chebyl(N,R,Wn,,s,)
26、,chebyl(N,R,Wn,high,s,),chebyl(N,R,Wn,st op,s) 分别用来设计chebyshev I型的低通、高通、带通和带阻模拟 滤波器。E、设计一个N阶的低通chebyshevII型滤波器可使用函数 B,A=cheby2(N,R,Wn),返回滤波器系数矩阵B,A。其中固有频率 Wn必须是归一化频率。它的最大值是采样频率的一半。Fs默认为2Hz。 如果Wn=Wl,W2是一个两元素的向量,则函数将设计出一个2N阶的带通滤波器,通带为W1,W2。R是滤波器通带内的最大衰减。如果无 法确定R的值,即可以选用0.5dB作为起始点。B,A=cheby2(N,R,Wn,hig
27、h)设计一个髙通滤波器。B,A=cheby2(N,R,Wn,stop)设 ii 个带阻滤波器。其中 Wn 必须是一个两元素的向量,阻带的宽度为W1,W2。Cheby2(N,R,Wn,s),cheby2(N,R,Wn,high,s,),cheby2(N,R,Wn,st op,s) 分别用来设计chebyshevll型的低通、高通、带通和带阻模拟 滤波器。F、设计一个N阶的低通椭圆滤波器用B,A=ellip(N,rp,rs,Wn),返 回滤波器系数矩阵B,A。其中固有频率Wn必须是归一化频率。它的 最大值是采样频率的一半。Fs默认为是2Hz。如果Wn = Wl,W2是一 个两元素的向量,则函数将设
28、计出一个2N阶的带通滤波器,通带为 W1,W2。rp是滤波器通带内的最大衰减,rs是滤波器阻带内的最小衰 减。如果无法确定rp和rs的值,即可以选用0.5dB和20dB作为起始 点。B,A= ellip (N,rp,rS,Wn,high)设计一个高通滤波器。B,A= ellip (N,rp,rS,Wn,St0p)设计一个带阻滤波器。其中 Wn 必须是一个两元素的向量,阻带的宽度为W1,W2。ellip(N,R,Wn,s,),ellip (N,R,Wn,high,s)ellip (NR,Wn,stop,,,s,) 分别用来设计椭圆低通、高通、带通和带阻模拟滤波器。几种类型在低通滤波器设计中的比较
29、:设:Wp=30Hz,Ws;35Hz, Fs=100,Rp=0.5dB, Rs=40dB 分别用 巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭 圆(Cauer)滤波器,程序设计如下:巴特沃斯低通滤波器:nl ,Wnl=buttord(wp/(Fs/2)ws/(Fs/2),rp,rs5,zf);numl,denl=butter(nl sWnl);切比雪夫1型低通滤波器:n2,Wn2=;cheblord(wp/(Fs/2)ws/(Fs/2),rprsJ,zT);num2,den2=chebyl(n2,rp,Wn2);切比雪夫II型低通滤波器:n3,Wn3=ch
30、eb2od(wp/(Fs/2),ws/(Fs/2),rp,s,z,);num3,den3=cheby2(n3,rp,Wn3);椭圆低通滤波器:n4,Wn4=ellipord(wp/(Fs/2),ws/(Fs/2),rp,rs,z);num4,den4:ellip(n3,rp,rsTWn3);设计出的低通滤波器的频率响应如图3.2.1。几种类型在高通滤波器设计中的比较:设:Wp=35Hz,Ws=30Hz,Fs=100,Rp=0,5dB,Rs=40dB 分别用巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器程序设计如下:butterworth
31、高通滤波器:nl,Wnl =buttord(wp/(Fs/2),ws/(Fs/2):rp,rs,zt);num 1 ,denl =butter(n 1 ,Wnl ;highr); chebyshev I高通滤波器:n2,Wn2=chebl ordfwp/CFs/SXws/fFs/XrprsJz,); num2,den2=chebyl (n2srp, Wn2/highr); chebyshev II高通滤波器:n3,Wn3=cheb2ord(wp/(Fs/2),ws/(Fs/2),rp,rs,tzf); num3Jden3-cheby2(n3,rp,Wn3/high);椭圆高通滤波器:n4, W
32、n4=ellipord(wp/(Fs/2),ws/(Fs/2)-rp,rs,V); num4,den4=ellip(n4,rp,rs,Wn4,high_);设计出的高通滤波器的频率响应如图3.2.2。(C)(d)图3,2,1 低通数字滤波器频率响应Butterworth低通滤波器ChebyshevI型低通滤波器ChebyshevII型低通滤波器椭圆低通滤波器10 15 20 25 30 3510 15 20 25 30 35图3.2.2 髙通数字滤波器频率响应Butterworth高通滤波器ChebyshevI型高通滤波器ChebyshevII型高通滤波器(d)椭圆髙通滤波器用不同的类型设计的
33、带通滤波器的频率响应如图3*2_3:用不同的类型可以设计出不同的带阻滤波器的频率响应(如图3.2.4 所示)。从频率响应图中可以看出:巴特沃斯滤波器具有单调下降的幅频 特性,通带内平滑;切比雪夫I型滤波器的幅频特性在通带内有波动, 阻带内单调;chebyshevK型滤波器的幅频特性在阻带内有波动,通带 内单调;椭圆滤波器的选择性相对前三种是最好的,下降斜度比较大, 通带和阻带内均为等波纹,同样的性能指标,椭圆滤波器可以最低的 阶数来实现。这样根据不同的要求可以选用不同类型的滤波器。50*50o0.50010.5000.500图3.2.3 带通数字滤波器频率响应Butterworth带通滤波器C
34、hebyshevI型带通滤波器ChebyshevIl型带通滤波器椭带通滤波器oo050 100 150 200 250 300 350 400 450 500图3.2.4 带阻数字滤波器频率响应Butterworth带阻滤波器ChebyshevI型带阻滤波器ChebyshevII型带阻滤波器椭圆带阻滤波器 3.3 直接法设计HR滤波器MATLAB提供yulewalk函数设计IIR乘拟和逼近给定的频率特性。函数用法如下:b, ayulewalk(n, f, ra)该函数返回一个 Yule-Walk 滤波器的系数矩阵b,a;其中矩阵f和m是已知的频率响应;n是滤波器的阶数,其中f的元素必须在0和1
35、之间,而且必须是升序,以0开始,以1结束,允许出现相同的频率值由b,a-yulewalk (n,f,m)得到的滤波器可写成B(z) b + b(2)z_I + + b(n + l)zn A() l + a(2)z-U + a(n + l)zn如图3.3,1是用函数yulewa k设计的Yule-Wa k滤波器幅频响应 和理想的幅频响应的比较图。理想的响应是:在频率在0-0.4之间, 幅值为0;在频率在0. 4 1之间的幅值为1。设计程序为:f:0 0_ 4 0. 4 1; m- 1 1 0 0;b, a=yulewalk (n,f,m);0.80.60.40.2H(z)0.10.20,40.5
36、0.60.0.80.9图3. 3. 1 设计Yule-Walk滤波器第四章 FIR滤波器的设计相对于无限冲激响应数字滤波器(HR),有限冲激晌应数字滤波器的特点是:具有精确的线性相位;总是稳定的;设计方式是线性的;硬件容易实现;滤波器过渡过程具有有限区间;相对IIR滤波器而言,阶次较高,其延迟也要比同样性能的IIR 滤波器大得多。4.1 窗函数法一个截止频率为oG(rad/S)的理想数字低通滤波器,其表达式如下:fl, cd0 H(0) = 10,OD0 00 71k. 1故其冲激响应序列h(H)为h(n)=丄H(G)e*do)-丄广 edco - sinc(n)2n 2n n n这个滤波器是
37、物理不可实现的,因为其冲激响应具有无限性和非 因果性。为了产生有限区间长度的冲激响应,可以加窗函数将其截短。 通过截短保留冲激响应的中心部分,就可以获得线性相位的FIR滤波 器。函数fir和Hr2就是基于窗函数方法的。firl函数实现了加窗线性相位FIR数字滤波器设计的经典方法。主 要用于常用的标准通带滤波器设计,包括:低通、带通、高通和带阻 数字滤波器。b=firl(n,Wn)可得到n阶低通HR滤波器,滤波器系数包括在b中,这可表示为+b(n+l)z_n。这是一个截止频率为 Wn的加海明窗的线性相位FIR滤波器,0Wnl,Wn=l对应于釆样 频率的二分之一。如果Wn是一个包含两个元素的向量,
38、Wn=Wl W2, firl返回一个n阶的带通滤波器,其通带为W1W 髮计方法。这两个函数可以允许在滤波器特性中包含过渡带,在计算中 这些过渡带的偏差是不被最小化的,此外,还可以在滤波器特性中的每一段上设置不同的权重,用于计算加权的最小化。函数firls是函数firl和fir2的扩展,它的设计准则是使期望的频率响应和实际的频率响应之间的平方误差的积分达到最小,函数remez使用了 Parks-McClellan算法,它使用Rexnez交换算法和切比雪夫逼近理论来设计滤波器,在期望的和实际的滤波器频率响应之间实现最佳的匹配。从使期望的和实际的频率响应的最大误差的最小化的意义来说,该滤波器是最优滤
39、波器。用这种方法设计的滤波器在它们频率响应中表现出等波动性。Parks-McC丨ellan FIR滤波器设计算法的原理如下:线性相位FIR滤波器的4种类型的幅频特性可以统一地表示成一个to的固定函数Q()和一个余弦求和式P(w )的乘积,即H(o )=Q(co )p(co )按4种FIR滤波器类型,可以将上式分别写成:假设要求的滤波器频率响应为D(o),再定义一个加权函数W(),E(co) - W(co)D(co) H(co)还可以写成 E(co) - W(cd)Q(co)则误差函数为w(D) = W(cd)Q(使在整个 频带上,E(co)的最大绝对值能压缩到一个最小值。 remez 函数用
40、Parks 和 McClellan 算法。函数firls和remez使用的语法是相同的,唯一的区别是它们的最 小化方案不同。firls设计的滤波器,其频率特性与理想特性间的加权方差是最小 化的。b=firls(n5f?a) 返回一个行向量b,包含n阶FIR滤波器的n+1个系数,而滤波器的频率特性是由f和a给出。f是频率点向量,从0到1,升序排列。a是一个包含向量f中指定频率的期望幅度的向量。f和a长度必须相等,且为偶数。b=firls(n,f,a,w)使用权向量w来对各个频带的匹配误差作加权处理。向量w的长度是f的一半,故恰好一个频带对应一个权值。b=firls(n,f,a,ftype)与 b
41、=firls(n,f,a,w,ftype)指定了 滤波器的类 型,ftype可以为:hilbert f希尔伯特变换滤波器)和differentiator (线 性相位的微分器)。以下设计的是一个在0-0.4HZ之间近似幅值为1,在OJ-lHz之间 近似幅值为0的低通滤波器,分别用remez和firls设计并比较它们的特性。,n=22;f=0 0.4 0.5 1; m=l 1 0 0; b=remez(nf,m);( * bb=firls(n,f,m);用remez和firls设计的滤波器的特性比较如图4.2,1图4.2.1 函数remez和firls滤波器设计性能比较从上图可以看出,用reme
42、z函数设计的滤波器具有等波动性,用 firls函数设计的滤波器在几乎所有频带上比remez函数的响应好,但在 通带和阻带的边缘0.4-0.5HZ,这比由remez函数设计的滤波器离理想 响应更远。这表明remez函数设计的滤波器在通带和阻带上的最大误差 更小。 4.3 约束最小二乘FIR滤波器设计约束最小二乘(CLS) FIR滤波器设函数的关键特征是能定义幅值 响应中包含最大允许纹波的上下阈值,以这个约束条件为前提,该方 法会在整个滤波器响应的频率范围内使用平方误差最小化的技术,以 逼近理想的滤波器特性,误差最小化也包括任何理想滤波器响应中不 连续的地方。信号处理工具箱中有两个函数使用了这种方法:fircls用于任意响应的多带FIR滤波器设计;firclsl用于低通和高通线性相位滤波器的约束最小二乘滤波器设计。格式说明:b=fircls(n,f,amp,up,lo,design-flag)返