数字信号处理 第7章
7.2 IIR滤波器设计:双线性变换法
令 z = ej 且有 T = 2 , s = jΩ, 得到
1 z s 1 z 1
1
1 e j e j / 2 (e j / 2 e j / 2 ) j j / 2 j / 2 j / 2 j 1 e e (e e )
返回
7.2 IIR滤波器设计:双线性变换法
7.2.1双线性变换法
从 s 平面到 z 平面的双线性变换为:
1 z 1 s 2 1 z 1 T
2/T s z 2/T s T为抽样间隔
上述变换是一对一的映射,即它将 s 平 面的一个点映射到 z 平面的一个点,反 之亦然。
7.2 IIR滤波器设计:双线性变换法
G(z) 和 Ha(s) 的关系由下式给出:
G ( z ) Ha ( s)
1 2 1 z s T 1 z 1
参数 T 对G(z)并无影响,为简化设计,一 般选T = 2 。
1 z 1 s 1 z 1
1 s z 1 s
7.3 低通IIR数字滤波器设计
对Ha(s)运用双线性变换, 得到数字滤波 器传输函数:
G ( z ) H a ( s) s 1 z
1
1 z 1
G(z)的幅度响应和增益函数如下图所示:
返回
7.6 基于加窗傅立叶级数的 FIR 滤波器设计
现在,我们介绍实系数FIR滤波器的设计。 这类滤波器的传输函数用z-1的有理多项式 表示。 一种直观的设计方法是基于对指定的频率 响应的傅立叶级数进行截短来设计。
w[n] [n] [n 2M 1]
7.6 基于加窗傅立叶级数的 FIR 滤波器设计
首先,将 hLP[n] 向右平移 M 点,得到
sin(c (n M )) hLP [n] (n M )
n
H LP (e j )
这样的理想低通滤波器 不再具有零相位,但 有线性相位。
得到因果FIR数字滤波器的冲激响应h[n]:
sin(c (n M )) h[n] (n M ) sin(c (n M )) h[n] w[n]; (n M )
7.3 低通IIR数字滤波器设计
得到: c= 1.419915(p)=0.588148
使用MATLA中的函数buttap,得到:
3阶归一化(c=1)低通巴特沃兹传输函数为: Han(s)=1/[(s+1)(s2+s+1)] 对其解归一化,得到c=0.588148的传输函数: Ha(s)= Han(s/0.588148)
c
7.6 基于加窗傅立叶级数的 FIR 滤波器设计
hLP[n] 画于右图:
可以看出 : hLP[n] 是非因果的,双边无限长的,是
无法实现的。
7.6 基于加窗傅立叶级数的 FIR 滤波器设计
注意: 我们希望得到定义在0≤n≤2M区间的 2M+1点长的冲激响应h[n] 。
因此,将 hLP[n] 向右平移 M 点,并用 2M+1长的矩形窗函数w[n]截断
7.2 IIR滤波器设计:双线性变换法
IIR 数字滤波器设计的 3 个步骤:
1. 对指定滤波器的指标进行双线性逆变换, 得到模拟低通原型滤波器的指标; 2. 确定 Ha(s) 3. 对进行Ha(s)进行双线性变换,得到 G(z)
7.2 IIR滤波器设计:双线性变换法
• s-平面到 z-平面的映射:
7.6 基于加窗傅立叶级数的 FIR 滤波器设计
7.6.2 理想滤波器的冲激响应 先复习一下理想低通滤波器的 hLP[n] 。 假设一个理想低通滤波器,具有零相位, 它的频率响应如下图所示:
冲激响应为:
sin(c n) hLP [n] n
1
H LP (e j )
n
c
对上式应用双线性变换,得到一阶巴特沃 兹数字低通滤波器的传输函数:
G ( z ) H a (s)
s 1 z 1 1 z
1
c (1 z 1 ) (1 z 1 ) c (1 z 1 )
化简,得到:
1 1 z 1 G( z) 2 1 z 1
sin( / 2) j j cos( / 2)
或 =tan(/2)
7.2 IIR滤波器设计:双线性变换法
映射:
• 高度非线性 • 一对一
7.2 IIR滤波器设计:双线性变换法
例 7.7- 考虑:
c H a (s) s c
example7_7.m
Ωc=0.5*2*pi
7.2 IIR滤波器设计:双线性变换法
X: 0.5029 Y: -3.05
Gain, dB
1
magnitude response
1
7.3 低通IIR数字滤波器设计
例 – 设计一个巴特沃兹低通数字滤波器, 满足:p = 0.25, s = 0.55, p 0.5 dB,和 s 15 dB. 解答: 首先确定参数 和 A. 则:2 = 0.1220185, A2 = 31.622777 若 |G(ej0)| =1, 意味着: 20log10|G(ej0.25)| -0.5 20log10|G(ej0.55)| -15
第7章 数字滤波器设计
内容
• 预备知识
• IIR数字滤波器设计方法
• IIR滤波器设计示例
• FIR数字滤波器设计
• 使用MATLAB设计数字滤波器
7.1 预备知识
7.1.1 数字滤波器指标 通常给出频域内的几个技术指标。
1. 最大通带衰减p dB; 2. 最小阻带衰减 s dB; 3. 通带截止频率 ωp; 4. 阻带截止频率 ωs;
1 c 1 c
7.2 IIR滤波器设计:双线性变换法
example7_7.m
Ωc=0.5*2*pi
返回
• • • • • • • • • • • • • • • • • •
%example7_7 [b,a] = butter(1, 0.5*2*pi, 's') b= 0 3.1416 [h,omega] = freqs(b,a); a = 1.0000 3.1416 [num,den] = bilinear(b,a,0.5) w=0:0.02:2*pi num= 0.7585 0.7585 h1= freqz(num,den,w); den= 1.0000 0.5171 subplot(221) plot(omega/pi,abs(h));grid; title('magnitude response of Ha(s)'); subplot(222) splane(b,a) xlabel('real part'); ylabel('imagary part');title('zero-pole plot'); subplot(223) plot(w/pi,abs(h1));grid; title('magnitude response of H(z)'); subplot(224) zplane(num,den) xlabel('real part'); ylabel('imagary part');
7.1预备知识
下图画出了低通滤波器的技术指标。 2 p 20 log10 ( 1 )
p 10 log10 (1 2 )
s 20 log10
用 FT 表示抽样频率(单位Hz), Fp 和 Fs 分别表示通带和阻带截止频率. 则:
用MATLAB编程直接实现数字滤波器 Bandpass Filter IIR Butterworth 0 • [b,a] = butter(1,0.5) -20 • w=0:0.02:pi • h= freqz(b,a,w); -40 -60 • gain = 20*log10(abs(h)); -80 • subplot(211) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 / • plot (w/pi,gain);grid; 1 • xlabel('\omega/\pi'); ylabel('Gain, dB'); 0.8 • title('IIR Butterworth Bandpass Filter'); 0.6 • subplot(212) 0.4 • plot (w/pi,abs(h));grid; 0.2 • xlabel('\omega/\pi');0 ylabel('magnitude response'); 0.9 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 / 得到: 1 1 z 1 b = 0.5000 0.5000 G( z) 2 1 z 1 a = 1.0000 -5.5511e-017
3 s 2 0.24 25
7.1预备知识
7.1.2 滤波器类型的选择 比较一下IIR数字滤波器和FIR数字滤波器
对于IIR 数字滤波器, 传输函数为关于 z-1的有理函数:
p0 p1 z 1 , , pM z M H ( z) d 0 d1 z 1 , , d N z N
7.1预备知识
而且,应用最为广泛的是7.2节介绍的双 线性变换。 与IIR滤波器设计不同,FIR滤波器设计是 基于对指定频率响应的直接逼近, 并且 通常要求其具有线性相位。
7.1预备知识
FIR滤波器设计的常用方法: (1) 基于加窗傅立叶级数的方法; (2) 基于频域抽样的方法; (3) 基于计算机的优化方法.
7.3 低通IIR数字滤波器设计