DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 69|回复: 0
打印 上一主题 下一主题

基于MATLAB在IIR滤波器的设计与仿真

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 17:07:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      1 引言
  在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号的处理和分析都是基于滤波器而进行的。但是,传统的数字滤波器的设计使用繁琐的公式计算,改变参数后需要重新计算,从而在设计滤波器尤其是高阶滤波器时工作量很大。利用MATLAB信号处理箱(Signal Processing Toolbox)可以快速有效地实现数字滤波器的设计与仿真。
  2 数字滤波器及传统设计方法
  数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
  IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配,所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。其设计方法主要有经典设计法、直接设计法和最大平滑滤波器设计法。FIR数字滤波器的单位脉冲响应是有限长序列。它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数

问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。
  在对滤波器实际设计时,整个过程的运算量是很大的。设计阶数较高的IIR滤波器时,计算量更大,设计过程中改变参数或滤波器类型时都要重新计算。
  设计完成后对已设计的滤波器的频率响应要进行校核。要得到幅频、相频响应特性,运算量也是很大的。平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候要根据设计要求和滤波效果不断地调整,以达到设计的最优化。在这种情况下,滤波器设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成。利用MATLAB强大的计算功能进行计算机辅助设计,可以快速有效地设计数字滤波器,大大地简化了计算量。
  3 IIR滤波器的MATLAB设计
  3.1? FDATool界面设计
  3.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文件。















  4.2? 仿真分析
  比较图2中(b)和(c)的波形可知,输入的原始信号经过滤波器滤波后,(b)中波形的毛刺部分(即干扰噪声)被滤除,输出的信号更接近正弦波,如(c)中所示波形。由此说明,传递函数为H(z)=0.15/(1-0.8z-1)的滤波器的设计是恰当的。
  5 结论
  利用MATLAB的强大运算功能,基于MATLAB的信号处理工具箱(Signal Processing Toolbox)的数字滤波器设计法可以快速有效地设计由软件组成的常规数字滤波器,设计方便、快捷,大大减轻了工作量。在设计过程中可以对比滤波器特性。随时更改参数,以达到滤波器设计的最优化。利用MATLAB设计数字滤波器在数字通信系统和计算机领域信号处理中,有着广泛的应用前景。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-27 20:23 , 耗时 0.104745 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表