基于Simulink的数字滤波器的仿真

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

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

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

资源描述

1基于Simulink的数字滤波器的仿真摘要:介绍数字滤波器的定义、分类及实现方法。讨论IIR滤波器、FIR滤波器的设计方法以及如何运用MATLAB中的DSPBlockset工具箱设计数字滤波器。关键词:IIR滤波器;FIR滤波器;DSP1引言数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器在数字信号处理的各种应用中发挥着十分重要的作用,它是通过对抽样数据进行数学运算处理来达到频域滤波的目的。数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分成无限脉冲响应(IIR)和有限脉冲响应(FIR)滤波器。MATLAB中的DSPBlockset工具箱提供完整丰富的模块范例函数库,以进行数字信号系统(DSPSystem)的设计、模拟与快速原型化(rapidprototyping)。可适用于建立古典(classical)、多速率(multirate)、适应性(adaptive)的滤波器。MATLAB的DSPBlockset工具箱的两个基本组成就是滤波器的设计与实现部分以及谱分析部分。工具箱提供了丰富而简便的设计,实现FIR和IIR的方法,是原来繁琐的程序设计简化成函数的调用。2.典型IIR数字滤波器的设计双线性变换法为了克服冲激响应不变法的频率混叠现象,需要使s平面与z平面建立一一对应的单值映射关系,即求出s=f(z),然后将它带入H(s),就可以求得H(z),即H(z)=H(s)|s=f(z)(1)为了克服多值映射这一缺点,我们首先把整个s平面压缩变换到某一中介的s1平面的一条横带里,其次再通过上面讨论过的标准变换关系z=es1T将此横带变换到整个z平面上去,这样就使s平面与z平面是一一对应的关系,消除了多值变换性,也就消除了频谱混叠现象。例如试用双线性变换法设计一个ChebyshevⅡ高通滤波器,使其幅频特性逼近一个具有以下技术指标的模拟ChebyshevⅡ高通滤波器:Ws=2*pi*1kHz,Wp=2*pi*1.4kHz,在Ws处的最小衰减为15dB,在Wp处的最大衰减不超过0.3dB,抽样频率为20kHz。MATLAB程序为ws=2*pi*1000;ws1=ws*2*pi;wp=2*pi*1400;wp1=wp*2*pi;rp=0.3;rs=15;fs=20000;[N,Wn]=cheb2ord(wp1,ws1,rp,rs,’s’);[z,p,k]=cheb2ap(N,rs);[A,B,C,D]=zp2ss(z,p,k);[At,Bt,Ct,Dt]=lp2hp(A,B,C,D,Wn);2[At1,Bt1,Ct1,Dt1]=bilinear(At,Bt,Ct,Dt,fs);[num,den]=ss2tf(At1,Bt1,Ct1,Dt1);freqz(num,den);[H,W]=freqz(num,den);plot(W*fs/(2*pi),abs(H));grid;xlabel(‘频率/Hz’);ylabel(‘幅值’);ChebyshevⅡ高通滤波器的频率响应如图1所示。图1ChebyshevⅡ高通滤波器的频率响应3.FIR数字滤波器的设计窗函数设计法设理想带阻滤波器频率响应为102/5()02/53/513/5jwHe(2)利用Kaiser窗函数,设计长度为55的阻带滤波器,使阻带衰减为60dB。参数β可由式(3)确定αβ=0.1102(α-8.7)(3)其中α=60。MATLAB程序如下:n=55-1;w=[0.4,0.6];beta=0.1102*(60-8.7);kaiw=Kaiser(n+1,beta);b=fir1(n,w,’stop’,kaiw);[h,w]=freqz(b,1,512,2);plot(w,20*log10(abs(h)));grid;xlabel(‘频率(归一化)’);ylabel((‘幅度dB’));3带阻滤波器幅频特性实现如图2所示。图2带阻滤波器幅频特性4.数字滤波器的仿真及实现DSPBlockset提供了200多个高级DSP和数学函数,包括变换、矩阵运算、FIR、IIR、自适应和多速率滤波、谱分析和实时数据I/O-所有这些都是高效的基于帧的实现。DSPBlockset对于开发语音、音频和基带通信算法、基于传感器的信号处理应用都是非常理想的。利用这个具有强大功能软件MATLAB中专为数字信号处理(DSP)而设计的工具箱DSPBlockset对数字滤波器进行仿真。本文通过调用Simulink中的功能模块构成数字滤波器的仿真框图,在仿真过程中,可以双击各功能模块,随时改变参数,获得不同状态下的仿真结果。例如构造以基波为主的原始信号x(t)=5sin(100πt)+2sin(200πt)+sin(300πt),通过Simulink环境下的DigitalFilterDesign(数字滤波器设计)模块中的DSPBlockset工具箱设计一个低通滤波器,滤出频率等于或低于100Hz的信号。数字滤波器仿真图如图3所示。图3数字滤波器的仿真图4图4数字滤波器的参数设定图5滤波前的波形图6滤波后的波形这个例子运用到了DSPBlockset这个工具箱。这个工具箱提供了几乎所有的滤波器5模型,只需参改上面的参数即可以得到需要的数字滤波器。4.结束语用MATLAB的DSPBlockset工具箱对数字滤波器滤波进行了仿真。为了简单起见,采用的是最简单的低通滤波器形式,如果需要得到其它数字滤波器可通过修改滤波器设计的参数获得。这项非常有用的工具将使用者从繁琐的底层编程中解放出来,把有限的时间更多的花在解决问题中,无疑会提高工作效率。参考文献:1.程佩清《数字信号处理教程》(第二版),清华大学出版社2.MiroslavD.Lutovac《信号处理滤波器设计——基于MATLAB和Mathematical的设计方法》,电子工业出版社3.VinayK.Ingle,JohnG.Proaki,《DigitalSignalProcessingUsingMATLAB》,Thomson出版社

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

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

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

×
保存成功