fccjxxw.com
非常超级学习网 学习超级帮手
当前位置:首页 >> 信息与通信 >>

实验六 离散时间滤波器设计


实验六

离散时间滤波器设计

6.1、 IIR 数字滤波器的设计 一、实验目的:
1、掌握脉冲响应不变法设计 IIR 数字滤波器的原理及方法; 2、加深理解数字滤波器与连续时间滤波器之间的技术指标转化; 3、掌握脉冲响应不变法设计 IIR 数字滤波器的优缺点及使用范围; 4、掌握利用双线性变换法设计 IIR 数字滤波器的原理及具体方法; 5、深入理解利用双线性变换法设计 IIR 数字滤波器的优缺点及使用范围。

二、实验原理:
1、脉冲响应不变法 脉冲响应不变法将模拟滤波器的 s 平面变换成数字滤波器的 z 平面, 从而将 模拟滤波器映射成数字滤波器。 IIR 滤波器的系统函数为 z ? 1 (或 z )的有理分式,有:
M

?
H (z) ?
k ?0

bk z
N

?1

1?

?
k ?1

ak z

?1

一般满足: M

? N


h a ( t ) ? ? ? ? h ( nT ) ? h ( n ) ? ? ? H ( z ) ? ?
时域采样 z 变换

转换思路: H ( s ) ? 拉普拉斯逆变换 ? ? ??? 若模拟滤波器的系统函数 H 次,表达式:
(s)

只有单阶极点,且假定分母的阶次大于分子的阶

N

H (z) ?

?
k ?1

TA 1? e

k

skT

z

?1

s 平面与 z 平面之间的映射关系为: z

? e

sT

典型的模拟低通滤波器有巴特沃思滤波器和切比雪夫 (I,II 型)滤波器。 MATLAB 信号处理工具箱中提供了 IIR 滤波器设计的函数: 1)巴特沃思滤波器设计: a:调用 buttord 函数确定巴特沃思滤波器的阶数,格式为: [N,Wc]=buttord(Wp,Ws,Ap,As) b:调用 butter 函数设计巴特沃思滤波器,格式为: [b,a]=butter(N,Wc,options) 2)切比雪夫 I 型滤波器的设计:在通带呈现纹波特性,在阻带单调衰减。 [N,Wc]=cheb1ord(Wp,Ws,Ap,As) [b,a]=cheby1(N,Ap,Wc,options)

3)切比雪夫 II 型滤波器的设计:在阻带呈现波纹特性,在通带单调衰减。 [N,Wc]=cheb2ord(Wp,Ws,Ap,As) [b,a]=cheby2(N,As,Wc,options) 已知模拟滤波器,可以利用脉冲响应不变法转换函数 impinvar 将其变换为数字 滤波器,调用格为: [bz,az]=impinvar(b,a,fs),其中 fs 为采样频率。 2、双线性变换法 为了克服脉冲响应不变法产生的频率响应的混叠失真, 采用非线性频率压缩 方法,使 s 平面与 z 平面建立一一对应的单值关系,消除多值变换型,即消除了 频谱混叠现象。 转化思路: H
( s ) ? 写出微分方程 ? ? ? 差分方程 ?
近似

? 写出 H ( z )

s 平面与 z 平面之间的映射关系: z

?

c? s c? s



已知模拟滤波器,可以利用双线性变换函数 bilinear 将其变换为数字滤波器, 调用格式为:[bz,az]=bilinear(b,a,fs),其中 fs 为采样频率。

三、实验内容:
1、要求通带截止频率 fp=3kHz,通带最大衰减 Ap=1db,阻带截止 fs=4.5kHz,阻带 最小衰减 As=15db,采样频率 fc=30kHz,用脉冲不变法设计一个切比雪夫数字低 通滤波器,并图示滤波器的幅频特性,检验 ? s , ? p 对应的衰减。 2、用双线性变换法设计一个切比雪夫数字低通滤波器。技术指标为:通带截止 频率 ? p
? 0 .2 ?

,通带最大衰减 Ap<=1db;阻带边缘频率 ? s

? 0 . 3?

,阻带最小衰

减 As>=15db。

四、实验程序: 1、
figure; fp=3000; fs=4500; f=30000; %采样频率

wp=2*pi*fp;ws=2*pi*fs; wp1=wp/f;ws1=ws/f; ap=1; as=15; [N,Wc]=cheb1ord(wp,ws,ap,as,'s') [b,a]=cheby1(N,ap,Wc,'s'); [bz,az]=impinvar(b,a,f); w0=[wp1,ws1] HX=freqz(bz,az,w0);

[H,W]=freqz(bz,az); DBHX=20*log10(abs(HX)/max(abs(H))) %DBH=20*log10(abs(H)/max(abs(H))); plot(W,abs(H)) xlabel('w') ylabel('amplitude') title('impinvar cheby1') grid
impinvar cheby1 1.4

1.2

1

amplitude

0.8

0.6

0.4

0.2

0

0

0.5

1

1.5 w

2

2.5

3

3.5

运行结果: N = 4 Wc = 1.8850e+004 w0 = 0.6283 0.9425 DBHX = 1.0005 21.5790

程序结果分析: DBHX 中的1.0005,21.5790为所设计的滤波器的通带衰减和
阻带衰减,可以看出:通带衰减基本满足要求1db,阻带衰减有较大的改进: As=21.5790>15db.

2、
figure; wp1=0.2*pi;ws1=0.3*pi; ap=0.99; as=15; f=30000; %采样频率

wp=wp1*f;ws=ws1*f; [N,Wc]=cheb1ord(wp,ws,ap,as,'s') [b,a]=cheby1(N,ap,Wc,'s'); [bz,az]=impinvar(b,a,f); w0=[wp1,ws1] HX=freqz(bz,az,w0); [H,W]=freqz(bz,az); DBHX=-20*log10(abs(HX)/max(abs(H))) %DBH=20*log10(abs(H)/max(abs(H))); plot(W,abs(H)) xlabel('w') ylabel('amplitude') title('bilinear cheby1') Grid
bilinear cheby1 1.4

1.2

1

amplitude

0.8

0.6

0.4

0.2

0

0

0.5

1

1.5 w

2

2.5

3

3.5

运行结果: N = 4 Wc = 1.8850e+004 w0 = 0.6283 0.9425 DBHX = 0.9905 21.5305

程序结果分析:通过实验当参数Ap设为1时,达不到Ap<=1db的要求,所以
实验时把Ap设为了0.99db, 这时可以满足实验要求, 且阻带衰减有了较大改善: As=21.5305>=15db。

6.2、窗函数法设计 FIR 数字滤波器 一、实验目的:
(1)掌握窗函数设计 FIR 数字滤波器的原理及具体方法; (2)深入理解吉布斯现象;理解不同窗函数的特点。

二、实验原理:
FIR 滤波器的设计问题, 就是要使设计的滤波器的频率响应 H
(e
j?

)

逼近所要

求的理想滤波器的频率响应 H d ( e j ? ) 。逼近可在时域进行,窗函数设计 FIR 数字 滤波器是在时域进行的,用窗函数截取无限长的 h d ( n ) ,这样得到的频率响应
H (e
j?

)

逼近于理想的频率响应 H d ( e j ? ) 。
H d (e
j?

设计流程:

) ? ? ? ? ? ? hd ( n ) ? ? ? ? h ( n ) ? ? ? ? ? ? H (e ? ?

序列傅里叶反变换

加窗截断

序列傅里叶变换

j?

)

Matlab 中提供的 fir1 可以用来设计 FIR 滤波器,调用格式为:
h ? fir 1 ( M , Wc , ' f t y p' , w i n d o ) e w

三、实验内容:
(1)窗函数法设计低通数字滤波器,
H (e
j?

? ?e ) ? ? ?0, ?

? j? N 2

,0 ? ? ? 0 .4? 0 .4? ? ? ? ?

N=26,分别利用矩形窗,汉宁窗和布莱克曼窗设计滤波器,且滤波器具有 线性相位。绘出脉冲响应及滤波器的频率响应; 增加 N,观察过渡带和最大肩峰值的变化。 (2)利用凯泽窗设计线性相位高通数字滤波器,
H (e
j?

? 1, ) ? ? ?0,

0 .6 ? ? ? ? 0 ? ? ? 0 .6?

要求 N=31,且滤波器具有线性相位。

四、实验程序: 1、
%测试不同点数滤波器幅频特性的函数 function testdifferentN(N) N=fix(N); a=cell(1,3);

a=[{boxcar(N)},{hanning(N)},{blackman(N)}]; b=cell(1,3); b=[{'boxcar(N)'},{'hanning(N)'},{'blackman(N)'}]; n=0:N-1; wc=0.4; for i=1:3 figure h=fir1(N-1,wc,a{i}); [H,W]=freqz(h,1); subplot(211) stem(n,h,'p'); xlabel('n') ylabel('h(n)') title('truncated h(n)') grid subplot(212) plot(W/pi,abs(H)); xlabel('w/pi') ylabel('H(w)') title(b{i}) grid end end

1、1、N=26时:
testdifferentN(26)
truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10 n boxcar(N)

15

20

25

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10 n hanning(N)

15

20

25

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10 n blackman(N)

15

20

25

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

1、2、测试不同点数:
testdifferentN(31)
truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10

15 n boxcar(N)

20

25

30

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10

15 n hanning(N)

20

25

30

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10

15 n blackman(N)

20

25

30

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

N=41 时: testdifferentN(41)
truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10

15

20 n boxcar(N)

25

30

35

40

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10

15

20 n hanning(N)

25

30

35

40

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10

15

20 25 n blackman(N)

30

35

40

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

N=51 时: testdifferentN(51)
truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10

15

20

25 30 n boxcar(N)

35

40

45

50

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10

15

20

25 30 n hanning(N)

35

40

45

50

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

truncated h(n) 0.6 0.4

h(n)

0.2 0 -0.2

0

5

10

15

20

25 30 n blackman(N)

35

40

45

50

1.5

1

H(w)
0.5 0 0

0.1

0.2

0.3

0.4

0.5 w/pi

0.6

0.7

0.8

0.9

1

2、
%kasiar window highpass filter N=31; n=0:N-1; wc=0.6; h=fir1(30,wc,'high',kaiser(N,5.44)); [H,W]=freqz(h,1); subplot(211) stem(n,h,'p') xlabel('n') ylabel('h(n)') title('truncated h(n)') grid subplot(212) plot(W/pi,abs(H)); xlabel('w') ylabel('H(w)') title('N=31,beta=5.44,kasier window highpass filter') grid

truncated h(n) 0.5

h(n)

0

-0.5

0

5

15 20 25 n N=31,beta=5.44,kasier window highpass filter

10

30

1.5

1
H(w)

0.5

0

0

0.1

0.2

0.3

0.4

0.5 w

0.6

0.7

0.8

0.9

1

五、实验结果分析:
通过测试不同点数的滤波器的幅频响应,可以看出:随着 N 的增大,矩形 窗的过渡带减小(即过渡带变陡) ,最大肩峰值越来越大,但变化率越来越小, 最后有趋于某一值的趋势。


更多相关文章:

非常超级学习网 fccjxxw.com

copyright ©right 2010-2021。
非常超级学习网内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图