基于MATLAB的IIR数字滤波器设计与实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 数字滤波器分类
所谓数字滤波器,是指输入、输出均为数字信号,通过一
定运算关系改变输入信号所含频率成分的相对比例或者滤除某
些频率成分的器件。
数字滤波器从通带特性可以划分为:低通、高通、带通、
带阻这四类,在实际的设计中,滤波器的技术指标就直接指定
了它的具体类型。
从设计方法上划分为:巴特沃茨 (Butterworth) 滤波器,切
较之于 IIR 低,但是线性相位。另外有限的单位响应也有利于对
数字信号的处理,便于编程。
从处理信号分,一类称为经典滤波器,即一般的滤波器,
另一类为现代滤波器。
2 滤波器设计指标
以低通滤波器 (LPF) 为例,介绍滤波器的技术指标。需要
注意的是,传统的设计指标只是限制了滤波器的幅频特性,而
没有考虑相频特性。对于离散传函为 H(z) 的 LPF,其技术指标
图 1 传函及系数矩阵
图 2 低通滤波器 3.4 IIR 低通滤波器验证 若 产 生 一 个 连 续 信 号,x(t)=sin(2π*2t)+ sin(2频分量,对其进行采样,进行 频谱分析 程序如下: f1=2;
— 92 —
f2=200; f3=500; t=(1:100)/2000; x1=sin(2*pi*t*f1); x2=sin(2*pi*t*f2); x3=sin(2*pi*t*f3); x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3); n=[1:100];t=n/2000 X=fft(x,512);w=(0:255)/256*1000; x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3); Ft=100; Fp=5; Fs=10; As=40 ; Ap=3; wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; fp=2*Fp*tan(wp/2); fs=2*Fs*tan(ws/2); [n11,wn11]=buttord(wp,ws,1,50,’s’); [b11,a11]=butter(n11,wn11,’s’); [num11,den11]=bilinear(b11,a11,0.5); [h,w]=freqz(num11,den11); z11=filter(num11,den11,x); m11=fft(z11); figure plot(abs(x),‘g‘); xlabel(‚t‘);ylabel(‚ 幅度 '); title(‚ 滤波前信号的频谱 '); figure plot(abs(m11),’r’); xlabel(‘t’);ylabel(‘幅度 '); title(‘滤波后信号频谱 '); figure plot(x); xlabel(‘Hz’);ylabel(‘频率响应幅度 '); title(‘滤波前信号的波形 '); figure plot(z11); xlabel(‘Hz’);ylabel(‘频率响幅度 '); title(‘滤波后的信号波形 ');
(4)再用 freqz 函数验证设计结果 3.3 设计范例 IIR 低通滤波器的设计程序为: Ft=100; Fp=5; Fs=10; As=40; Ap=3; wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; fp=2*Fp*tan(wp/2); fs=2*Fs*tan(ws/2); [n11,wn11]=buttord(wp,ws,3,40,’s’); [b11,a11]=butter(n11,wn11,’s’); [num11,den11]=bilinear(b11,a11,0.5); [h,w]=freqz(num11,den11); figure plot(w*100*0.5/pi,abs(h)); xlabel(‘Frequency/Hz’); ylabel(‘Magnitude’); title(‘巴特沃茨数字低通滤波器 '); sys=tf(b11,a11) [A,B,C,D]=tf2ss(b11,a11) 运行程序得到传递函数如图 1,和状态空间系数矩阵如图 2, 在 command window 里输入 n11, 回车得到滤波器阶数为 7。
科技展望 2015/02
基于 MATLAB 的 IIR 数字滤波器设计与实例
吴颖君 耿 攀 朱 军
(上海海事大学物流工程学院,上海 201306)
【摘 要】数字滤波器应用广泛,与模拟滤波器相比具有很多优点, 如具有精度高、稳定、灵活、不要求阻抗匹配以及能实现模拟滤波 器无法进行的特殊滤波等。本文主要介绍无限冲激响应数字滤波器 (IIR)的设计原理、方法、步骤以及在 MATLAB 中的实现,并以 实例形式列出设计程序和运行结果。 【关键词】数字滤波器 MATLAB IIR 设计
包括:通带上限频率 ω p ,阻带下限频率 ωs ,通带最大衰减系数 α p ,阻带最小衰减系数αs 。这样的一组数据 { ωp , ωs ,α p , αs } 就称为一组技术指标。实际设计中,通常还对其中的频率 值 ω p 和ωs 进行归一化。
3IIR 数字滤波器设计
3.1 设计思路
对于 IIR 数字滤波器,一种经典设计方法是设计出符合技
技术与应用
图 3 滤波器在滤波前后的频谱和波形图 上图频谱变化表明 : 信号的低频率段被保留,高频率段被 滤除。分析滤波前后的波形变化,滤波后波形变得清晰稳定, 到达了滤波器设计基本指标要求。 4 结语 采用 MATLAB 设计数字滤波器,使原来比较繁琐复杂的程 序设计变成了简单的函数调用,为滤波器的设计和实现开辟了 广阔的天地,尤其是 MATLAB 工具箱 fdatool,filterbuilder 的使用, 简单易懂。滤波器实质上是一个传递函数,本文以低通滤波器 为例,设计了 IIR 滤波器,并以实例验证了滤波器达到设计指标, 滤除高频部分,使波形趋于稳定。在设计数字滤波器时 , 善于应 用 MATLAB 进行辅助设计 , 能够大大提高设计效率。
参考文献: [1] 徐欢 , 胡津津 , 袁媛 . 基于 MATLAB 的 FIR 数字滤波器的窗 函数法设计与仿真 [J]. 通化师范学院学报 ,2013(4). [2] 张莉 , 熊维德 . 基于 IIR 数字滤波器的复合信号分离 [J]. 红河 学院学报 ,2013(2). [3] 李兰英 , 王志超 , 王峰 , 高明 , 佀铁强 .FIR 数字滤波器设计与 仿真 [J]. 哈尔滨理工大学学报 ,2013(3).
(3)通过 n,wn,在 matlab 中可直接得出离散滤波器的各 项参数,语句如下:
[b,a] = butter(n,wn); b,a 分别为滤波器传递函数的分子和分 母系数数组;
[z,p,k] = butter(n,wn); z,p,k 分别为传递函数的零点,极点, 增益;
[A,B,C,D] = butter(n,wn); A,B,C,D 分 别 为 传 函 所 对 应 的 状 态 方 程 的 系 数 矩 阵。 在 matlab 中 也 可 由 下 列 语 句 得 到: [A,B,C,D]=tf2ss(b,a);[b,a]=ss2tf(A,B,C,D)
比雪夫 (Chebyshev) 滤波器,椭圆 (Ellipse) 滤波器等。
从单位脉冲响应的角度,可以把数字滤波器分为:无线冲
击响应 IIR(Infinite Impulse Response)滤波器和有限冲击响应
FIR(Finite Impulse Response)滤波器。这两种滤波器区别是,
IIR 幅频特性精度很高,但不是线性相位的;FIR 幅频特性精度
作者简介:吴颖君(1989-),女,江苏南通人,上海海事 大学,硕士,研究方向:光伏逆变器。
— 93 —
术指标的模拟滤波器,然后再通过脉冲响应不变法或双线性变
换法,完成从模拟到数字的变换,即进行离散化。其优势是可
以利用一些经典的模拟滤波器形式快速完成设计。常用的模拟
滤波器有巴特沃斯 (Butterworth) 滤波器、切比雪夫 (Chebyshev)
滤波器、椭圆 (Ellipse) 滤波器、贝塞尔 (Bessel) 滤波器等。滤波
器的模拟数字变换,通常是复变函数的映射变换。
3.2 采用 MATLAB 设计巴特沃兹低通滤波器
(1)将设计指标归一化处理, ωp 和 ωs 分别为归一化的通
带截止频率和阻带频率。 ω p
=
通带上限频率(rad fs / 2
/
s) ,
ωs
=
阻带下限频率(rad fs / 2
/
s) ,fs
为采样频率。
(2) 确 定 巴 特 沃 茨 低 通 滤 波 器 阶 数 n 和 截 止 频 率 wn, matlab 语句:[n,wn]=buttord(wp,ws,ap,as);
相关文档
最新文档