数字滤波器的设计FIR

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1摘要:数字滤波器在数字信号处理的各种应用中有着广泛的应用,其具有精度高,可靠性好,灵活性大等优点,可以分为有限长脉冲响应(FIR)滤波器和无限长脉冲响应(IIR)滤波器,本文简述了这两种数字滤波器的基本设计原理,并分别通过MATLAB软件进行实例仿真。Abstract:Thedigitalfilterindigitalsignalprocessingapplicationsinabroadrangeofapplications,itshighaccuracy,reliability,flexibilityandotheradvantagesoflarge,canbedividedintofiniteimpulseresponse(FIR)filtersandinfiniteimpulseresponse(IIR)filter,thepaperoutlinesthetwobasicdesignprinciplesofdigitalfilter,andweresimulatedbyMATLABsoftware关键词:FIR;IIR;MATLAB;数字滤波器引言:在数字通信系统中,信号经常混有各种复杂成分,大多数信号的处理和分析都是基于数字滤波器而进行的,数字滤波器根据其冲击响应函数的时域特性又可以分为有限长冲击响应(FIR)和无线长冲击响应(IIR),FIR优点在于具有良好的相位特性,可以根据不同的系统性能要求选择不同的滤波器。IIR滤波器以较少的阶数即可完成FIR滤波器需较多阶数的幅频特性,在对线性相位不做特别的要求情况下,IIR滤波器在相同门级和同频率速度下可得到更好的带外衰减特性,FIR滤波器单位脉冲响应是有限长的,系统必须稳定,可以做成严格的线性相位,在图像处理,数据传输等需要信道具有线性相位特性的场合应用广泛。利用MATLAB软件可以快速有效的设计各种FIR和IIR数字滤波器,设计简单方便,以下分别阐述这两种滤波器的基本理论和设计方法,并配以MATLAB仿真。1FIR数字滤波器的基本理论和设计方法FIR数字滤波器是一个有限精度的线性非时变系统,其滤波功能实际上是同过一系列的加法和乘法用算来实现的。描述FIR滤波器的差分方程:10()()Nkynhkxnk(1)2其中x(n)是FIR滤波器的输入序列,y(n)是输出序列,h(k)长度为N的滤波器的单位脉冲响应。对上式两边进行Z变换,即可得到滤波器的系统函数H(z)10()()NkkHzhkz(2)从(1)式可看出:由于系统的单位脉冲响应序列为有限长序列,当输入x(n)有限时,滤波器的输出y(n)也有限。即FIR滤波器系统是绝对稳定的,同时,由于FIR滤波过程是两个有限长序列x(n)和h(n)的线性卷积运算,所以可以采用DFT的快速算法FFT来实现,从而提高了算法效率。1.2FIR滤波器的常用设计方法FIR滤波器的设计方法是建立在对期望滤波器特性的某种近似基础之上的,目前他的设计方法常用的有,窗函数法,频率采样法等。其中窗函数法是从时域进行设计的,频率采用法是从频域进行设计的。而窗函数法由于其简单,物理意义清晰,因而得到了较为广泛的应用,常见的窗函数有:矩形窗、三角形窗、布莱克曼窗,切比学夫窗等。表一列举了常用窗函数的性能窗函数过渡带宽度(rad)∏/N阻带衰减(db)矩形窗1.821三角窗6.125汉宁窗6.244哈明窗6.653布莱克曼窗1174表1再设计时一般根据阻带衰减指标选取合适的窗函数,再更具过渡带的宽带确定样值响应长度N。当仿真不符合要求时,须调整N重新计算。1.1FIR窗函数设计步骤1确定待求滤波器的单位取样响应()dhn,若待求滤波器的频率响应为()jwdHe则单位取样响应()dhn=1()2iwindHeedw对()jwdHe从w=0到w=2采样m点,3采样值为2()ikmdHe,k=0,1,2…,m-1,用2m代替()dhn中的dw,所以公式可近似写成221()()2iknmiknmmdhnHeedw,根据采样定理,()mhn与()dhn应满足如下关系:()()mdrhnhnrm。因此,如果m选的较大,可以保证在窗口内()mhn有效逼近()dhn。单位取样响应的近似式是由()jwdHe的m点的IDFT(IFFT)得到。如果给出通带阻带衰减和边界频率的要求,可选用理想滤波器作为逼近函数。2根据对过渡带及阻带衰减的要求,选择窗函数形式,并估计窗口的长度N。设待求滤波器的长度用w来表示,它近似等于窗函数主瓣宽带。3计算滤波器的单位取样响应nh,nh=w(n)*()dhn。式中w(n)是上面选好的窗函数。4验算技术指标是否满足要求。设计出的滤波器频率响应用下式计算10()()NjjwnHehne,计算上式时可用FFT算法。当设计不满足时,和重复上面步骤的计算。1.2FIR滤波器设计举例:要求设计一个线性相位的FIR低通滤波器,要求通带的截止频率r是600Hz,阻带截止频率s是-180Hz,阻带最小衰减不小于-50db,采样频率sf=4kHz。分析:根据题目要求,阻带的最小衰减不小于-50db,根据表1可选择哈明窗和布莱克曼窗,我们选择了哈明窗,其次根据滤波器的过渡宽度,确定窗的长度;最后通过调用fir1函数,得到线性相位FIR的系数。程序如下:Wp=600;Ws=800;Fs=4000;wp=2*pi*Wp/Fs;ws=2*pi*Ws/Fs;wc=(wp+ws)/2;wn=wc/pi;tri_width=ws-wp;4N=ceil(6.6*pi/tri_width);w=hamming(N);h=fir1(N-1,wn,w);freqz(h);仿真结果如图100.10.20.30.40.50.60.70.80.91-3000-2000-10000NormalizedFrequency(rad/sample)Phase(degrees)00.10.20.30.40.50.60.70.80.91-150-100-50050NormalizedFrequency(rad/sample)Magnitude(dB)图1从图1可见,结果满足设计要求。以下例子设计了个实际的线性相位的FIR滤波器将10Hz和250Hz的混合信号经过Hanning窗函数进行滤波后只剩下了10Hz的信号。将高于10Hz的信号进行了衰减,其性能要求:通带边界频率0.5pw,阻带边界频率0.66sw,阻带衰减不小于40db,通带纹波不大于3db,然后对信号x=sin(2*pi*10*t)+sin(2*pi*250*t)滤波,画出了滤波器的输出。程序如下:N=1000;Fs=1000;n=[0:N-1];t=n/Fs;x=sin(2*pi*10*t)+sin(2*pi*250*t);wp=0.5*pi;ws=0.66*pi;wdelta=ws-wp;A=ceil(8*pi/wdelta);ifrem(A,2)==0A=A+1;endAw=A;wc=(wp+ws)/2;a=0:A-1;alpha=(A-1)/2;5m=a-alpha+0.00001;hd=sin(wc*m)./(pi*m);win=hanning(Aw);h=hd.*win';b=h;freqz(b,1,512);yfft=fftfilt(b,x,256);n1=81:241;t1=t(n1);x1=x(n1);y1=yfft(n1);subplot(221);plot(t1,x1);title('OriginalSinal')subplot(222);plot(t1,y1);title('Signalafterthefilter')仿真图如图200.10.20.30.40.50.60.70.80.91-3000-2000-10000NormalizedFrequency(rad/sample)Phase(degrees)0.050.10.150.20.25-2-1012OriginalSinal0.050.10.150.20.25-4-2024Signalafterthefilter图2结果分析:说明10Hz和250Hz和混合信号经过Hanning设计的滤波器之后只剩下10Hz的信号了,将高于10Hz的信号进行了衰减。2.1IIR滤波器的设计以上分析并举例仿真了FIR滤波器,在对线性相位不作特别要求的情况下,IIR数字滤波器与FIR数字滤波器相比,可用较低的阶数获得较高的选择性,在相同门级规模和相同时钟速度下课提供更好的带外衰减特性,也具有广泛的应用。62.2IIR数字滤波器的基本结构IIR滤波器的传输函数及对应的差分方程如下式传输函数:01()()()1MkkkNkkkbzYzHzXzaz差分方程:10()()()NMkkkkynaynkaxnk对于IIR滤波器的实现有多种方法,其包括直接型、级联型和并联型等。IIR滤波器主要包括巴特沃斯滤波器、切比雪夫滤波器、椭圆函数滤波器,下表给出了以上三种滤波器实现同样性能所需要的阶数及阻带衰减的比较。类型阶数阻带衰减db巴特沃斯615切比雪夫I型425椭圆函数3272.3IIR滤波器的设计方法:在实际工程中,主要有用模拟滤波器设计IIR数字滤波器和直接在数字域设计IIR数字滤波器两种方法。本文讨论用模拟滤波器设计IIR数字滤波器的方法。利用模拟滤波器设计IIR数字滤波器的步骤如下:(1)将给定的数字滤波器的性能指标,按某一变换(映射)规则转换成相应的模拟滤波器性能指标。(2)如果要设计的不是数字滤波器,则还需要将步骤(1)中变换所得到相应的(高通,带通,带阻)模拟滤波器性能指标变换成模拟低通滤波器的性能指标。这是因为模拟低通滤波器才有图形和表格可以利用。(3)用所得到的模拟低通滤波器的性能指标,利用某种模拟滤波器逼近方法,设计并查表求得此模拟低通滤波器的系统函数,以它作为设计数字滤波器的“样本”。(4)利用与步骤(1),(2)中的同一变换规则,将此作为“样本”的模拟原型低7通滤波器的系统函数最终变换成所需的数字各型滤波器的系统函数H(z)。步骤(1)中的变换规则就是从模拟滤波器数字化成为数字滤波器的方法,也就是要把s平面映射到z平面,使模拟系统函数Ha(s)变换成所需的数字滤波器的系统函数H(z)。这种由复变量s到复变量z之间的映射(变换)关系,必须满足以下两条基本要求:第一,H(z)的频率响应必须有可能模仿Ha(s)的频率响应,即s平面的虚轴J8必须映射到z平面的单位圆eJX上,也就是频率轴要对应。第二,因果稳定的Ha(s)应能映射成因果稳定的H(z)。也就是s平面的左半平面Re[s]0必须映射到z平面单位圆的内部1z。利用MATLAB进行IIR数字低通滤波器设计,首先是在给定滤波器性能情况下,确定通带和阻带的截止频率,还有通带和阻带区的波纹系数。然后通过Butterworth滤波器buttord函数计算出满足指定性能的模拟Butterworth滤波器的阶和截止频率。有了上述的前提和基础,我们可利用MATLAB语言中Butter函数设计出模拟域的Butterworth滤波器。然后用impinvar函数,用脉冲响应不变法实现模拟到数字滤波器的转换。设计举例:给定抽样频率fS=10KHz,要求在频率小于1KHz的通带内,幅度特性下降小于1dB;在频率大于1.5KHz的阻带内,衰减大于15dB。利用模拟频率与数字频率之间的关系:X=fsfw/22.01010/101233pw3.01010/105.1233sw其程序如下:wp=0.2*pi;ws=0.3*pi;[n,wn]=buttord(wp,ws,1,15,'s');%[b,a]=butter(n,wn,'s');[bz,az]=impinVar(b,a);%freqz(bz,az,4096,10000);运行结果:80500100015002000

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功