IIR滤波器的MATLAB设计
1  FDATool界面设计
1.1 FDATool的介绍
    FDATool(Filter Design&Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB 6.O以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。
    FDATool。界面总共分两大部分,一部分是Design Filter。在界面的下半部,用来设置滤波器的设计参数;另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。Design Filter部分主要分为:Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。
   Design Method(设计方法)选项,包括IIR滤波器的Butterwotth(巴特沃思)法、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根据所选择的滤波器类型自动使用最小阶数。
  Frequency SpecificatiONs选项,可以详细定义频带的各参数,包括采样频率和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项决定。例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定,所以只需定义通带截止频率,而不必定义阻带参数。
    Magnitude Specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。
  Window Specifications选项,当选取采用窗函数设计,该选项可定义,它包含了各种窗函数。

3.1.2  IIR滤波器设计实例
    本文以一个IIR滤波器的设计为例说明如何使用MATLAB设计数字滤波器。要求设计一个10阶的带通Chebyshev I滤波器,它的通带范围是100到200Hz,采样频率为1000Hz,Rp=0.5。
    本例中,首先在Filter Type中选择Bandpass(带通滤波器);在Design Method选项中选择IIR,接着在相邻的右则选项中选择Chebyshev I(切比雪夫I型);指定Filter Order项中的Specify Order=10;由于采用的是切比雪夫设计,不必在Options中选择;然后在Frequency Specifications中选择Unit为Hz,给出采样频率Fs=1000,通带Fpass1=100和Fpass2=200;最后在Magnitude Specifications中选择Unit为db,Apass=0.5。设置完成后
点击Design Filter即可得到所设计的IIR滤波器。通过菜单选项Analysis可以在特性区看到所设计的幅频响应、相频响应、冲击响应和零极点配置等特性,如图1所示。设计完成后将结果保存为filterl.fda文件。

图1滤波器的幅频、相频和冲激响应(特性区)

3.2  程序设计法
  在MATLAB中,对各种滤波器的设计都有相应的计算振幅、相位和冲激响应的函数,可以用来做滤波器程序设计。
  上例的IIR滤波器的冲激响应可用程序设计如下:
%ehebyshevl bpf
n=10;    %阶数为10
Rp=0.5;  %幅值衰减为0.5
Wn[100 200]/500;
[b,a]=chebyl(n,Rp,wn);
[y,t]impz(b,a,101);
stem(t,y,'.');
    在MATLAB环境下运行该程序即可得到滤波器的时域冲激响应。由于篇幅所限,这里不再详述源程序。

3.3设计实例分析
   由图1(a)可知,这种滤波器在100-200Hz的通带范围内是等波纹的,而在阻带中是单调的,这是Chebyshev I滤波器的幅频特性。由图1(b)可知,在100-200Hz的范围内相移较小,其曲线近似一条直线,失真较小;当频率超过这一范围时,相移较大,而且其曲线是非直线的,所以失真也较大。图1(c)得到了Chebyshev  I滤波器的时域冲激响应,在5ms-100ms有冲激响应,超过这一范围的冲激响应近似为零,进而实现了Chebyshev I带通
滤波器的设计。

4 Simulink仿真
4.1 Simulink仿真实例
    通过调用Simulink中的功能模块,可以构成数字滤波器的仿真框图。在仿真过程中,双击各功能模块,随时改变参数,获得不同状态下的仿真结果。例如原始信号x(t)=2sin(0.05wt)+w(t),w(t)为随机信号,幅值为0.2,通过一传递函数为H(z)=0.15/(1-0.8z-1)的滤波器可得到如图2的仿真结果。其中仿真过程中可导入FDATool所设计的滤波器文件。

4.2  仿真分析
    比较图2中(b)和(c)的波形可知,输入的原始信号经过滤波器滤波后,(b)中波形的毛刺部分(即干扰噪声)被滤除,输出的信号更接近正弦波,如(c)中所示波形。由此说明,传递函数为H(z)=0.15/(1-0.8z-1)的滤波器的设计是恰当的。

5 结论
    利用MATLAB的强大运算功能,基于MATLAB的信号处理工具箱(Signal Processing Toolbox)的数字滤波器设计法可以快速有效地设计由软件组成的常规数字滤波器,设计方便、快捷,大大减轻了工作量。在设计过程中可以对比滤波器特性。随时更改参数,以达到滤波器设计的最优化。利用MATLAB设计数字滤波器在数字通信系统和计算机领域信号处理中,有着广泛的应用前景,可关注。

FDATOOL设计数字滤波器相关推荐

  1. matlab 6.5 设计数字滤波器

      1.用脉冲响应不变法设计一个Butterworth低通数字滤波器,通带截止频率为0.4π   ,通带波纹Rp小于3dB,阻带边界频率为0.6π,阻带衰减大于15dB,采样频率Fs=10000Hz. ...

  2. FDATool设计FIR低通滤波器

    (一) 设计一个低通滤波器 采样频率 Fs = 50Hz   Fpass = 10Hz   Fstop = 20Hz 打开matlab,键入fdatool后,会弹出该工具的对话框.然后按照下图设置相关 ...

  3. MATLAB中用FDATool设计滤波器及使用

    from: http://blog.sina.com.cn/s/blog_3e4367660100nyz1.html 1. 在Matlab中键入fdatool运行Filter Design and A ...

  4. matlab mat文件转fcf,Matlab的FDATool设计滤波器导出

    在LZ给出的SOS matrix和Scale Factors参数中已包含有滤波器的信息.这里给出2种方法形成滤波器参数,这是一个18阶的IIR滤波器,一种是分解成9个2阶IIR滤波器串接,另一种是18 ...

  5. 基于MATLAB GUI的数字滤波仿真平台设计

    基于MATLAB GUI的数字滤波仿真平台设计 一.平台介绍 二.设计原理 1. 登陆系统设计原理 2. IIR数字滤波器设计 3. FIR数字滤波器设计 三.程序实现 1. 用户登陆系统程序 2. ...

  6. 数字信号处理实验matlab版答案刘舒帆,数字信号处理实验(MATLAB版) 刘舒帆,费诺,陆辉 西安电子科技大学出版社 9787560620060...

    商品描述: 基本信息 书名:数字信号处理实验(MATLAB版) 原价:31.00元 作者:刘舒帆,费诺,陆辉 著 出版社:西安电子科技大学出版社 出版日期:2013-7-1 ISBN:97875606 ...

  7. 学会System Generator(2)数字滤波器设计

    本文是该系列的第2篇,上一篇介绍了System Generator的基本知识以及软件的安装.本文将以一个简单的数字滤波器的设计为主题,介绍Sysgem Generator的完整设计流程,同时详细介绍使 ...

  8. 用MATLAB设计FIR数字滤波器实验,基于Matlab的FIR数字滤波器设计

    摘要:提出FIR敷字滤波器的设计方案,并基于Matlab实现滤波仿真.通过使用Matlab信号处理工具箱提供的函数,选择适当的窗函数编写程序,其中窗函数按照实际信号的处理需求,参数折中选择.实验获得了 ...

  9. 基于matlab数字滤波器设计,基于MATLAB的FIR数字滤波器的设计

    摘 要 传统的数字滤波器的设计过程复杂,计算工作量大,滤波特性调整困难,影响了它的应用.本文介绍了一种利用MATLAB信号处理工具箱(Signal Processing Toolbox)快速有效的设计 ...

最新文章

  1. Codeforces Round #232 Editorial Div2-B
  2. 聚集索引和非聚集索引(整理)
  3. firefox 39 linux,Mozilla Firefox 39.0 Beta 4 发布下载
  4. 微信小程序跳转页面后onload中获取到的参数值和跳转页面时传的参数不一样
  5. 热乎的宇宙条总部面经,已拿offer,速来围观
  6. Ubuntu中MongoDB的安装
  7. python列表切片规则_Python 列表切片
  8. ionic 上拉加载更多
  9. linux查看java堆栈信息_Java运行状态分析2:获取线程堆栈信息
  10. 流媒体之RTMP——librtmp拉流测试
  11. Pr:音频剪辑混合器和音轨混合器
  12. 【SSL】谷仓的安保
  13. Ubuntu 怎么创建可视化界面
  14. KaTex的一个简单例子
  15. 网吧计算机系统 影子,影子系统怎么用?实现像网吧电脑一样重启后自动还原系统教程(2)...
  16. 每周全球科技十大新闻(2021.7.5-7.11)
  17. 商业化广告--体系学习-- 6 -- 行业蓝图篇 -- 那些产品适合采用广告模式变现
  18. 图解 K8S(05):调度利器之标签与选择器(分组调度)
  19. python系统设计与实现_毕业设计5:基于MicroPython的智能火灾报警器系统的设计与实现...
  20. 外贸ERP有什么用?

热门文章

  1. 2021年春季学期-信号与系统-第十三次作业参考答案-第六小题
  2. RASPBERRY 端口(GPIO)基本测试
  3. 42HS48EIS步进闭环电机最大转速
  4. 幅度调制后的频率混叠
  5. vs2017运行yolov4_windows10+vs2017+opencv3.4.1配置YOLOV4
  6. mysql中堆和栈_堆和栈的区别
  7. linux异常断电usb驱动丢失,如何修复Linux中损坏的USB驱动器 | MOS86
  8. 服务器系统摁c,如何系统有效学习c服务器开发
  9. 微信小程序超级占内存_6款宝藏微信小程序,简单又实用,节约内存就靠它了...
  10. php 最大数字,PHP 计算至少是其他数字两倍的最大数的实现代码