第一章数字滤波器及MATLAB语言概述数字滤波是语音和图像处理、模式识别、谱分析等应用中的一个基本处理算法,在数字信号处理中占有极其重要的地位。
研究基于Matlab 环境下的IIR数字滤波器的设计与实现,给出了相应的Matlab函数命令,并将滤波器应用于图像噪声的去除,取得了不同的效果,就其结果做出了进一步的解释和说明。
数字滤波器是具有一定传输选择性的数字信号处理装置,其输入、输出均为数字信号,实质上是一个由有限精度算法实现的线性不变离散系统。
它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号输出分量。
MATLAB是美国MathWorks公司推出的一套用于工程计算的可视化高性能语言与软件环境。
MATLAB为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。
它以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。
MATLAB推出的工具箱使各个领域的研究人员可以直观方便地进行科学研究、工程应用,其中的信号处理(signalproeessing)、图像处理(imageproeessing)、小波(wavelet)等工具箱为数字滤波研究的蓬勃发展提供了有力的工具。
数字滤波器与模拟滤波器相比,具有精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及能实现模拟滤波器无法进行的特殊滤波等优点。
本文主要介绍有限冲激响应数字滤波器(FIR)和无限冲激响应数字滤波器(IIR)的设计原理、方法、步骤以及在MATLAB中的实现,并以实例形式列出设计程序和仿真结果。
第二章 方案提取和技术要求第一节 方案提取IIR 数字滤波器是一种离散时间系统,其系统函数为假设M ≤N ,当M >N 时,系统函数可以看作一个IIR 的子系统和一个(M-N)的FIR 子系统的级联。
IIR 数字滤波器的设计实际上是求解滤波器的系数和 ,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。
如果在S 平面上去逼近,就得到模拟滤波器;如果在z 平面上去逼近,就得到数字滤波器。
设计高通、带通、带阻等数字滤波器通常可以归纳为如图所示的两种常用方法: 方法1方法2图一 数字滤波器设计的两种方法方法1: 首先设计一个模拟原型低通滤波器,然后通过频率变换成所需要的模拟高通、带通或带阻滤波器,最后再使用冲激不变法或双线性变换成相应的数字高通、带通或带阻滤波器。
方法2 :先设计一个模拟原型低通滤波器,然后采用冲激响应不变法或双线性变换法将它转换成数字原型低通滤波器,最后通过频率变换把数字原型低通滤波器变换成所需要的数字高通、带通或带阻滤波器。
方法一的缺点是,由于产生混叠是真,因此不能用冲激不变法来变换成高通或阻带滤波器,故采用第二种方法进行设计。
本课程设计先用脉冲响应不变法设计巴特沃思数字低通滤波器,再利用双线性变换法设计一个切比雪夫滤波器。
第二节 设计要求给定技术指标如下:1)(9.0≤≤ωj e Hπω2.0≤2.0)(≤ωj eH πωπ≤≤3.0用脉冲响应不变法设计一个巴特沃思数字低通滤波器。
技术指标同上,用双线性变换法设计一个切比雪夫数字低通滤波器,通带内等波纹。
第三章 滤波器设计第一节 脉冲响应不变法设计巴特沃思数字低通滤波器顾名思义,脉冲响应不变法就是要求数字滤波器的脉冲响应序列h(n)与模拟滤波器的脉冲响应)(t h a 的采样值相等,即h(n)=)(t h a nTt ==)(nT h a其中,T 为抽样间隔。
根据模拟信号的拉普拉斯变换与离散序列的Z 变换之间的关系,我们知道H(z)STez ==T1∑Ω-ks jk S Ha )(此式表明,)(t h a 的拉普拉斯变换在s 平面上沿虚轴,按照周期sΩ=2π/T 延拓后,按式z=STe ,进行Z 变换,就可以将Ha(s)映射为H(z)。
事实上,用脉冲响应不变法设计IIR 滤波器,只适合于Ha(s)有单阶极点,且分母多项式的阶次高于分子多项式阶次的情况。
将Ha(s)用部分分式表示:Ha(s)=LT[h)(t a]=∑=-Ni iis s A 1式中,LT[·]代表拉普拉斯变换,i s为的单阶极点。
将Ha(s)进行拉普拉斯反变换,即可得到)(t h a =∑=Ni tS it u eA i 1)(式中,u(t)是单位阶跃函数。
则)(t h a 的离散序列h(n)=)(nT h a =∑=Ni nTS inT u eA i 1)(对h(n)进行z 变换之后,可以得到数字滤波器的系统函数H(z)H(z)=∑∞=-0)(n nzn h = ∑=--Ni TS izeA i 111在利用脉冲响应不变法将模拟滤波器转换为数字滤波器时,由于模拟频率ω与数字频率Ω之间呈线性关系,即Ω=T ω,所以在模拟滤波器的频率响应是带限或阻带衰减较大的情况下,数字滤波器能较好地保持模拟滤波器的幅度响应。
但由于实际应用中模拟滤波器一般都不满足带限条件,数字滤波器的频率响应都存在一定程度的混叠。
对模拟低通和带通滤波器,可通过减小抽样间隔或者增大模拟滤波器在阻带的衰减,使混叠引起的误差出于可以接受的范围内。
对模拟高通和阻带滤波器,由于存在严重的混叠,所以不能用脉冲相应不变法将模拟高通和阻带滤波器转换为数字滤波器。
第二节 双线性变换法设计切比雪夫滤波器双线性变换法的基本思想是,在将模拟滤波器H(s)转换为数字滤波器H(z)时,不是直接从s 域到z 域,二十先将非带限的H(s)映射为带限的H(s ’),再通过脉冲不变法将s ’映射到z 域,即H(s)→H(s ’) →H(z)。
从频域来看,模拟频率ω与数字频率Ω的关系需通过ω’建立,即ω→ω’→ Ω。
先将无限范围内取值ω映射在[-π/T, π/T]范围取值的ω’,再由Ω=ω’T 建立模拟频率与数字频率之间的关系。
为了将S 平面的整个虚轴j Ω压缩到S1平面j Ω1轴上的-π/T 到π/T 段上,可以通过以下的正切变换实现式中,T 仍是采样间隔。
当Ω1由-π/T 经过0变化到π/T 时,Ω由-∞经过0变化到+∞,也即映射了整个j Ω轴。
将式上写成将此关系解析延拓到整个S 平面和S1平面,令j Ω=s ,j Ω1=s1,则得再将S1平面通过以下标准变换关系映射到Z 平面⎪⎭⎫⎝⎛Ω=Ω2tan 21T T 2/2/2/2/11112T j T j T j T j eee e Tj Ω-ΩΩΩ+-⋅=ΩT s Ts T s T s T s T s ee T T s T e e e e T s 1111111122tanh 2212/2/2/2/----+-⋅=⎪⎭⎫ ⎝⎛=+-⋅=从而得到S 平面和Z 平面的单值映射关系为:以上两式是S 平面与Z 平面之间的单值映射关系,这种变换都是两个线性函数之比,因此称为双线性变换其次,将s=σ+j Ω代入上式,得 因此由此看出,当σ<0时,|z|<1;当σ>0时,|z|>1。
也就是说,S 平面的左半平面映射到Z 平面的单位圆内,S 平面的右半平面映射到Z 平面的单位圆外,S 平面的虚轴映射到Z 平面的单位圆上。
因此,稳定的模拟滤波器经双线性变换后所得的数字滤波器也一定是稳定的。
双线性变换法优缺点:双线性变换法与脉冲响应不变法相比,其主要的优点是避免了频率响应的混叠现象。
这是因为S 平面与Z 平面是单sTs T sT s T z -+=-+=222121Ω--Ω++=j Tj Tz σσ22222222||Ω+⎪⎭⎫ ⎝⎛-Ω+⎪⎭⎫ ⎝⎛+=σσT T z 11112--+-=zz T s值的一一对应关系。
S 平面整个j Ω轴单值地对应于Z 平面单位圆一周,即频率轴是单值变换关系,这个关系如下:上式表明,S 平面上Ω与Z 平面的ω成非线性的正切关系,如图二所示。
由图二看出,在零频率附近,模拟角频率Ω与数字频率ω之间的变换关系接近于线性关系;但当Ω进一步增加时,ω增长得越来越慢,最后当Ω→∞时,ω终止在折叠频率ω=π处,因而双线性变换就不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,从而消除了频率混叠现象。
图二 双线性变换法的频率变换关系但是双线性变换的这个特点是靠频率的严重非线性关系而得到的,由于这种频率之间的非线性变换关系,就产生了新的问题。
首先,一个线性相位的模拟滤波器经双线性变换后得到非线性相位的数字滤波器,⎪⎭⎫ ⎝⎛=Ω2tan 2ωT不再保持原有的线性相位了;其次,这种非线性关系要求模拟滤波器的幅频响应必须是分段常数型的,即某一频率段的幅频响应近似等于某一常数(这正是一般典型的低通、高通、带通、带阻型滤波器的响应特性),不然变换所产生的数字滤波器幅频响应相对于原模拟滤波器的幅频响应会有畸变,如图三所示。
图三双线性变换法幅度和相位特性的非线性映射对于分段常数的滤波器,双线性变换后,仍得到幅频特性为分段常数的滤波器,但是各个分段边缘的临界频率点产生了畸变,这种频率的畸变,可以通过频率的预畸来加以校正。
也就是将临界模拟频率事先加以畸变,然后经变换后正好映射到所需要的数字频率上。
所以双线性变化法一般适合于设计幅度响应为分段常数的数字滤波器,不适合设计数字微分器等幅度响应为非常数的数字滤波器。
第四章 MATLAB程序及仿真第一节 MATLAB程序一脉冲响应不变法设计巴特沃思数字低通滤波器Wp=0.2*pi;Ws=0.3*pi;Ap=1;As=14;Fs=1;wp=Wp*Fs;ws=Ws*Fs;N=buttord(wp,ws,Ap,As,'s');wc=wp/(10^(0.1*Ap)-1)^(1/2/N);[numa,dena]=butter(N,wc,'s');[numd,dend]=impinvar(numa,dena,Fs);w=linspace(0,pi,512);h=freqz(numd,dend,w);norm=max(abs(h));numd=numd/norm;plot(w/pi,20*log10(abs(h)/norm));w=[Wp Ws];h=freqz(numd,dend,w);fprintf('Ap= % .4f\n',-20*log10(abs(h(1))));fprintf('As= % .4f\n',-20*log10(abs(h(2))));二双线性变换法设计切比雪夫滤波器wp=0.2*pi;ws=0.3*pi;Ap=1;As=14;T=2;Fs=1/T;Wp=(2/T)*tan(wp/2); Ws=(2/T)*tan(ws/2);[N,Wc]=cheb1ord(Wp,Ws,Ap,As,'s');[num,den]=cheby1(N,Ap,Wc,'s');[numd,dend]=bilinear(num,den,Fs);w=linspace(0,pi,512);h=freqz(numd,dend,w);norm=max(abs(h));numd=numd/norm;plot(w/pi,20*log(abs(h)/norm));grid;xlabel('ChebyshevI BS DF');ylabel('Gain,dB');第二节 MATLAB 波形图00.10.20.30.40.50.60.70.80.91-80-70-60-50-40-30-20-10图四 巴特沃思数字低通滤波器的增益响应图五切比雪夫数字低通滤波器的增益响应第五章设计总结又一次的课程设计,与原来的不同,看到题目后没有原来那种茫然了,相信只有熟悉了题目相关的知识,就不会很难。