1、基于Simulink的数字滤波器的仿真徐泽晖 王忠(四川大学通信工程系 610065)摘要:介绍数字滤波器的定义、分类及实现方法。讨论IIR滤波器、FIR滤波器的设计方法以及如何运用MATLAB中的DSP Blockset工具箱设计数字滤波器。关键词:IIR滤波器;FIR滤波器;DSP1 引言数字滤波器,是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件。数字滤波器在数字信号处理的各种应用中发挥着十分重要的作用,它是通过对抽样数据进行数学运算处理来达到频域滤波的目的。数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分成无限脉冲响应(I
2、IR)和有限脉冲响应(FIR)滤波器。MATLAB中的DSP Blockset工具箱提供完整丰富的模块范例函数库,以进行数字信号系统(DSP System)的设计、模拟与快速原型化(rapid prototyping)。可适用于建立古典(classical)、多速率(multirate)、适应性(adaptive)的滤波器。MATLAB的DSP Blockset工具箱的两个基本组成就是滤波器的设计与实现部分以及谱分析部分。工具箱提供了丰富而简便的设计,实现FIR和IIR的方法,是原来繁琐的程序设计简化成函数的调用。2.典型IIR数字滤波器的设计双线性变换法为了克服冲激响应不变法的频率混叠现象,
3、需要使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处的最
4、小衰减为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);At1,Bt1,Ct1,Dt1=bilinear(At,Bt,Ct,Dt,fs);num,den=ss2tf(At1,Bt1,Ct1,Dt1);freqz(
5、num,den);H,W=freqz(num,den);plot(W*fs/(2*pi),abs(H);grid;xlabel(频率/Hz);ylabel(幅值);Chebyshev高通滤波器的频率响应如图1所示。图1 Chebyshev高通滤波器的频率响应3FIR数字滤波器的设计窗函数设计法设理想带阻滤波器频率响应为 (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,
6、beta);b=fir1(n,w,stop,kaiw);h,w=freqz(b,1,512,2);plot(w,20*log10(abs(h);grid;xlabel(频率(归一化));ylabel(幅度dB);带阻滤波器幅频特性实现如图2所示。图2 带阻滤波器幅频特性4. 数字滤波器的仿真及实现DSP Blockset提供了200多个高级DSP和数学函数,包括变换、矩阵运算、FIR、IIR、自适应和多速率滤波、谱分析和实时数据I/O-所有这些都是高效的基于帧的实现。DSP Blockset对于开发语音、音频和基带通信算法、基于传感器的信号处理应用都是非常理想的。利用这个具有强大功能软件MAT
7、LAB中专为数字信号处理(DSP)而设计的工具箱DSP Blockset 对数字滤波器进行仿真。本文通过调用Simulink中的功能模块构成数字滤波器的仿真框图,在仿真过程中,可以双击各功能模块,随时改变参数,获得不同状态下的仿真结果。例如构造以基波为主的原始信号x(t)=5sin(100)+2sin(200)+sin(300),通过Simulink环境下的Digital Filter Design (数字滤波器设计)模块中的DSP Blockset工具箱设计一个低通滤波器,滤出频率等于或低于100Hz的信号。数字滤波器仿真图如图3所示。图3 数字滤波器的仿真图图4 数字滤波器的参数设定图5
8、滤波前的波形图6 滤波后的波形这个例子运用到了DSP Blockset这个工具箱。这个工具箱提供了几乎所有的滤波器模型,只需参改上面的参数即可以得到需要的数字滤波器。4.结束语用MATLAB的DSP Blockset工具箱对数字滤波器滤波进行了仿真。为了简单起见,采用的是最简单的低通滤波器形式,如果需要得到其它数字滤波器可通过修改滤波器设计的参数获得。这项非常有用的工具将使用者从繁琐的底层编程中解放出来,把有限的时间更多的花在解决问题中,无疑会提高工作效率。参考文献:1 程佩清 数字信号处理教程(第二版),清华大学出版社2 Miroslav D.Lutovac 信号处理滤波器设计基于MATLA
9、B和Mathematical的设计方法,电子工业出版社3.Vinay K.Ingle,John G.Proaki,Digital Signal Processing Using MATLAB,Thomson出版社Simulink Based Simulation of Digital FilterXu Zehui Wang Zhong(Department of Communication,Sichuan University,Chengdu,610065)Abstract:In this paper, the definition, species and the method of the realization of the digital filter is introduced. The design method of the digital filter of IIR and FIR is discussed. How to use the DSP Blockset of the MATLAB to design the digital filter is discussed.Keywords:IIR;FIR;DSP5