3) 将滤波器应用到sig1信号、sig4信号,生成的信号分别命名为sig5和sig3。
图27 信号s4滤波前后的比较
上图中sig4信号与sig3信号比较(其中红色代表sig3,蓝色代表sig4)可知信号s4通过该带通滤波器后得到大大衰减,几乎衰减为0。
图28 滤波后的信号与信号s2的比较
上图中sig2和sig5比较(其中红色代表sig5,蓝色代表sig2),可知信号s通过该带通滤波器后的信号与s2基本具有相同的频率和幅值(只是相位上有一点误差),所以我们认为该滤波器较好的滤掉了s4,滤波性能优良。
4)进行频谱分析。分别生成sig1的频谱spect1,sig2的频谱spect2,sig5的频谱spect5。下图是sig1和sig5的频谱,其中红色代表滤波后信号的频谱(sig5),蓝色代表滤波前信号的频谱(sig1)。由图可看出该滤波器基本滤除了频率为200Hz和1800Hz的信号,保留了频率为800Hz的信号。
图29 滤波前后信号的频谱的比较
下图是sig2和sig5的频谱,其中红色代表滤波后信号的频谱(sig5),蓝色代表滤波前信号的频谱(sig2)。由图可看出滤波后的信号与s2具有基本一致的频谱。
图30 滤波后的信号与信号s2频谱的比较
3.3 滤波器分析设计工具箱FDATOOL法
FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的基本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。
FDATool界面总共分两大部分,一部分是Design Filter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。Design Filter部分主要分为:
Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。 Design Method(设计方法)选项,包括IIR滤波器的Butterworth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法、 Chebyshev Type II(切比雪夫II型) 法、Elliptic(椭圆滤波器)法和FIR滤波器的
Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法。 Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify Order(指定阶数)和Minimum Order(最小阶数)。在Specify Order中填入所要设计的滤波器的阶数(N阶滤波器,Specify Order=N-1),如果选择Minimum Order则MATLAB根据所选择的滤波器类型自动使用最小阶数。
Frenquency Specifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项决定,例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。
Magnitude Specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。
Window Specifications选项,当选取采用窗函数设计时,该选项可定义,它包含了各种窗函数。
现用FDATOOL设计一个满足上述要求的IIR滤波器:在命令窗口里输入fdatool,即可弹出fdatool的主界面,如
图31 fdatool的主界
首先在Filter Type中选择bandstop,接着在Design Method选项中选择chebyshev typeII IIR,再在指定Filter Order项中的minimum order,
然后令units为normalized(0to1),数字阻带边缘频率分别为0.4和0.7,数字通带边缘频率为0.25和0.8,通带波动为1db最小阻带衰减为40db。设置完以后点击Design Filter即可得到所设计的FIR滤波器。通过菜单选项Analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置和滤波器系数等各种特性。
图32 所设计的带阻滤波器的幅值响应
在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,以便得到最佳效果。其它类型的FIR滤波器和IIR滤波器也都可以使用FDATool来设计。
同样地,我们也可以设计满足前面指标的FIR滤波器,其幅值响应为:
图33所设计的带通滤波器的幅值响应
在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,以便得到最佳效果。其它类型的FIR滤波器
和IIR滤波器也都可以使用FDATool来设计。 4 Simulink仿真
本文通过调用Simuink中的功能模块构成数字滤波器的仿真框图,在仿真过程中,可以双击各功能模块,随时改变参数,获得不同状态下的仿真结果。在Simulink环境下,通过设置滤波器功能模块的参数(digital filter design模块的参数)来直接设计滤波器。
我们先设计满足上述带阻IIR滤波器参数的滤波器,再进行仿真。找到Simuink功能模块,communications blockset/comm filters/filter designs link/digital filter design,找到digital filter design模块。分别在sources和sinks中找到正玄信号示波器,再在math operation中找到相加器
。
信
号
n=0:100;s1=sin(pi*0.2*n);s2=sin(pi*0.6*n);s3=sin(pi*0.9*n);s4=s1+s3; s=s1+s2+s3;修改正玄信号的参数sine type/time based、frequency分别改为0.2*pi,0.6*pi,0.9*pi,sample time改为1。其他模块的参数根据上述要求进行调整。将下图分别是仿真框图和滤波前后信号的波形:
图34 仿真框图