基于MATLAB的FIR滤波器的实现(4)

2019-08-31 09:01

高通带:wp2=0.65π,Rp=1dB;高阻带:ws2=0.8π,Rs=60dB 思路:分析可知,采用凯塞窗设计该带通滤波器。

基于MATLAB的窗函数法直接设计法对FIR数字带通滤波器设计实现的编程如下: clc; clear;

wp1=0.35*pi;wp2=0.65*pi; ws1=0.2*pi;ws2=0.8*pi; Rp=1;Rs=60;

delta_w=min((wp1-ws1),(ws2-wp2)); wc1=(wp1+ws1)/2;wc2=(wp2+ws2)/2; N=ceil(10*pi/delta_w); beta=0.1102*(Rs-8.7); w_kai=(kaiser(N,beta))';

hn=fir1(N-1,[wc1,wc2]/pi,kaiser(N)); [h1,w1]=freqz(hn,1); subplot(2,2,1);

plot(w1/pi,20*log10(abs(h1))); axis([0,1,-100,5]);

xlabel('w/pi');ylabel('dB'); title('幅频特性图'); subplot(2,2,2);

plot(w1/pi,180/pi*unwrap(angle(h1))); xlabel('w/pi');ylabel('pha'); title('相频特性图'); subplot(2,2,3);

n=0:N-1;stem(n,hn,'.'); axis([0,N-1,-0.5,0.5]); xlabel('n');ylabel('h(n)'); title('实际脉冲响应'); subplot(2,2,4);

stem(n,w_kai,'.');xlabel('n');ylabel('凯塞窗'); title('凯塞窗');

基于MATLAB的窗函数法直接设计法对FIR数字带通滤波器的仿真结果如下图2.4所示:

16

图2.4 FIR数字带通滤波器的仿真结果图

如图2.4标注所示,上图中依次是该FIR数字带通滤波器的幅频特性图、相频特性图、实际脉冲响应图以及凯塞窗图。由幅频特性图可知,所设计FIR数字带通滤波器的通带截止频率分别为0.35*pi、0.65*pi,阻带截止频率分别为0.2*pi、0.8*pi,并且阻带衰减大于60dB,故满足技术指标要求;由相频特性图可知,所设计FIR数字带通滤波器具有严格的线性相位;实际脉冲响应图表示的是理想单位脉冲响应hd(n)经过凯塞窗的截断后所得到的实际单位脉冲响应h(n);凯塞窗图表示的是凯塞窗窗函数的窗谱。 2.3 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滤波

17

器的Butterworth法、Chebyshev Type I法、 Chebyshev Type II法、Elliptic(椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法

[10]

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

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

首先在Filter Type中选择Bandpass;在Design Method选项中选择FIR Window,接着在Window Specifications选项中选取Hamming;指定Filter Order项中的Specify Order=97;由于采用窗函数法设计,只要给出通带下限截止频率Fc1和通带上限截止频率Fc2,选取Fc1=80Hz,Fc2=100Hz。设置完以后点击Design Filter即可得到所设计的FIR滤波器。

通过菜单选项Analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置。滤波器系数等各种特性。设计完成后将结果保存为图2.5 DAIT.fda文件。

18

图2.5 DAIT.fda文件

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

(Magnitude Response)

中按

既得滤波器的幅频响应

图2.6 滤波器幅频响应(特性区)

19

在Response)

中按既得滤波器的相频响应(Phase

图2.7 滤波器相频响应(特性区)

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

3 FIR数字滤波器Simulink实现

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。

Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。

Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI),这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。

Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了

20


基于MATLAB的FIR滤波器的实现(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:s7-1500网络配置

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: