好文档 - 专业文书写作范文服务资料分享网站

基于matlab 数字滤波器的设计 

天下 分享 时间: 加入收藏 我要投稿 点赞

4.3.2.1 FDATool界面设计

FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的基本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。在MATLAB命令窗口输入FDATool后回车就会弹出FDATool界面。

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选项,当选取采用窗函数设计时,该选项可定义,它包含了各种窗函数。

4.3.2.2 带通滤波器设计实例

19

在小电流接地系统中注入84.6Hz的正弦信号,对其进行跟踪分析,要求设计一带通数字滤波器,滤除工频及整次谐波,以便在非常复杂的信号中分离出该注入信号。参数要求:98阶FIR数字滤波器,采样频率1000Hz,采用Hamming窗函数设计。

首先在Filter Type中选择Bandpass(带通滤波器);在Design Method选项中选择FIR Window(FIR滤波器窗函数法),接着在Window Specifications选项中选取Hamming;指定Filter Order项中的Specify Order=97;由于采用窗函数法设计,只要给出通带下限截止频率Fc1和通带上限截止频率Fc2,选取Fc1=80Hz,Fc2=100Hz。设置完以后点击Design Filter即可得到所设计的FIR滤波器。通过菜单选项Analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置和滤波器系数等各种特性。设计完成后将结果保存为图4-1 1.fda文件。

图4-1 1.fda文件

20

在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,以便得到最佳效果。其它类型的FIR滤波器和IIR滤波器也都可以使用FDATool来设计。

Magnitude Response

中按

(Magnitude Response)。

Phase Response

中按

(Phase Response)。

图4-2滤波器幅频和相频响应(特性区)

21

与其他高级语言的程序设计相比,MA TLAB环境下可以更方便、快捷地设计出具有严格线性相位的FIR 滤波器,节省大量的编程时间,提高编程效率,且参数的修改也十分方便. 还可以进一步进行优化设计,相信随着版本的不断更新,MA TLAB在数字滤波器技术中必将发挥更大的作用.

4.3.2.3 高通滤波器的设计实例

用窗函数设计高通滤波器,性能指标如下:通带截止频率ωs=0.2π,阻带截止频率ωp=0.3π,实际通带波动Rp=0.25dB,最小阻带衰减As=70dB。

分析:凯泽窗能提供74dB的最小阻带衰减,所以选用凯泽窗进行设计,程序主要部分如下: As=70; ωs=0.2*π; ωp=0.3*π

tr_width=ωp-ωs; %计 算过渡带宽

M=ceil((As-7.95)*2*π/(14.36*tr_width)+1)+1; %按凯泽窗计算滤波器长度

disp([’滤波器的长度为’,num2str(M)]); beta=0.1102*(As-8.7); %计算凯泽窗的β值 n=[0:1:M-1];

disp([’线性相位斜率为’,num2str(beta)]); w_kai=(kaiser(M,beta))’; %求凯泽窗函数 ωc=(ωs+ωp)/2;

hd=ideal_lp(π,M)-ideal_lp(ωc,M); %求理想脉冲响应 h=hd.*w_kai; %设计的脉冲响应为理想脉冲响应与窗函数乘积 [db,mag,pha,grd,ω]=freqz_m(h,[1]); delta_ω=2*π/1000;

Rp=-(min(db(ωp/delta_ω+1:1:501)));

disp([’实际通带波动为’,num2str(Rp)]); %以下为作图程序 As=-round(max(db(1:1:ωs/delta_ω+1))); disp([’最小阻带衰减为’,num2str(As)]); subplot(1,1,1); subplot(2,2,1);

22

stem(n,hd);

title(’理想脉冲响应’); axis([0 M-1 -0.4 0.8]); ylabel(’hd(n)’); subplot(2,2,2); stem(n,w_kai);

title(’凯泽窗’); axis([0 M-1 0 1.1]); ylabel(’wd(n)’); subplot(2,2,3); stem(n,h);

title(’实际脉冲响应’); axis([0 M-1 -0.4 0.8]);

xlabel(’n’);ylabel(’h(n)’); subplot(2,2,4); plot(ω/π,db);

title(’幅度响应/dB’); axis([0 1 -100 10]); grid;

xlabel(’以π为单位的频率’); ylabel(’分贝数/dB’);

程序运行结果如图1所示。实际通带波动为0.04369,最小阻带衰减为70,滤波器长度为89,线性相位斜率为6.7553,符合设计要求。

23

基于matlab 数字滤波器的设计 

4.3.2.1FDATool界面设计FDATool(FilterDesign&AnalysisTool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(FilterDesignToolbox)。FDATool可以设计几乎所有的基本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活
推荐度:
点击下载文档文档为doc格式
6n2n99jf309sc9l3qd3v
领取福利

微信扫码领取福利

微信扫码分享