实验四 双线性变换法设计 IIR 数字滤波器
一、 实验目的
1. 掌握利用双线性变换法设计 IIR 数字滤波器的原理和具体方法。
2. 深入理解利用双线性变换法设计 IIR 数字滤波器的优缺点及使用范围。
二、 实验内容
1. 利用巴特沃思模拟滤波器,通过双线性变换法设计巴特沃思数字滤波器,数字
滤波器的技术指标为
采样周期为 T=1。
程序代码
%设置归一化通带和阻带截止频率
%设置通带最大和最小衰减
%设置采样周期为 2
%采样频率为周期倒数
%调用 butter 函数设计巴特沃斯滤波器
%指定一段频率值
%计算模拟滤波器的幅频响应
T=2;
fs=1/T;
Wp=0.25*pi/T;
Ws=0.35*pi/T;
Ap=20*log10(1/0.9);
As=20*log10(1/0.18);
[N,Wc]=buttord(Wp,Ws,Ap,As,'s'); %调用 butter 函数确定巴特沃斯滤波器阶数
[B,A]=butter(N,Wc,'s');
W=linspace(0,pi,400*pi);
hf=freqs(B,A,W);
subplot(2,1,1);
plot(W/pi,abs(hf)/abs(hf(1)));
grid on;
title('巴特沃斯模拟滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
[D,C]= bilinear (B,A,fs);
Hz=freqz(D,C,W);
subplot(2,1,2);
plot(W/pi,abs(Hz)/abs(Hz(1)));
grid on;
%绘出巴特沃斯模拟滤波器的幅频特性曲线
%调用双线性变换法
%返回频率响应
1
%绘出巴特沃斯数字低通滤波器的幅频特性曲线
title('巴特沃斯数字滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
进行试验
输出图像:
1
e
d
u
t
i
n
g
a
M
0.5
0
0
1.5
e
d
u
t
i
n
g
a
M
1
0.5
0.1
0.2
0.3
0
0
0.1
0.2
0.3
巴 特 沃 斯 模 拟 滤 波 器
0.4
0.5
0.6
Frequency/Hz
巴 特 沃 斯 数 字 滤 波 器
0.4
0.5
0.6
Frequency/Hz
0.7
0.8
0.9
1
0.7
0.8
0.9
1
实验分析
通过查 workspace 可以得出脉冲响应为:
滤波器幅度响应:
滤波器相位响应:
2. 利用巴特沃思模拟滤波器,通过双线性变换法设计数字带阻滤波器,数字滤
波器的技术指标为
2
采样周期为 T=1。
程序代码
%设置归一化通带和阻带截止频率
%设置通带最大和最小衰减
%设置采样周期为 1
%采样频率为周期倒数
%调用 butter 函数设计巴特沃斯滤波器
%指定一段频率值
%计算模拟滤波器的幅频响应
T=1;
fs=1/T;
wp=[0.25*pi,0.75*pi];
ws=[0.35*pi,0.65*pi];
Wp=(2/T)*tan(wp/2);
Ws=(2/T)*tan(ws/2);
Ap=20*log10(1/0.9);
As=20*log10(1/0.18);
[N,Wc]=buttord(Wp,Ws,Ap,As,'s');%调用 butter 函数确定巴特沃斯滤波器阶数
[B,A]=butter(N,Wc, 'stop','s');
W=linspace(0,2*pi,400*pi);
hf=freqs(B,A,W);
subplot(2,1,1);
plot(W/pi,abs(hf));
grid on;
title('巴特沃斯模拟滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
[D,C]=bilinear(B,A,fs);
Hz=freqz(D,C,W);
subplot(2,1,2);
plot(W/pi,abs(Hz));
grid on;
title('巴特沃斯数字滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
%绘出巴特沃斯模拟滤波器的幅频特性曲线
%调用双线性变换法
%返回频率响应
%绘出巴特沃斯数字带阻滤波器的幅频特性曲线
进行试验
输出图像:
3
1
e
d
u
t
i
n
g
a
M
0.5
0
0
1
e
d
u
t
i
n
g
a
M
0.5
0.2
0.4
0.6
0
0
0.2
0.4
0.6
巴 特 沃 斯 模 拟 滤 波 器
0.8
1
1.2
Frequency/Hz
巴 特 沃 斯 数 字 滤 波 器
0.8
1
1.2
Frequency/Hz
1.4
1.6
1.8
2
1.4
1.6
1.8
2
实验分析
通过查 workspace 可以得出脉冲响应为:
滤波器幅度响应:
滤波器相位响应:
3. 通过切比雪夫模拟滤波器,利用双线性变换法设计数字高通滤波器,数字滤
波器的技术指标为
采样周期为 T=1,并观察 T 分别为 0.01,0.1,0.25,0.5,0.8 时数字滤波器
的频率响应。
4
程序代码
%设置采样周期为 1
%采样频率为周期倒数
%设置归一化通带和阻带截止频率
%设置通带最大和最小衰减
%绘出切比雪夫 I 型模拟滤波器的幅频特性曲线
%指定一段频率值
%计算模拟滤波器的幅频响应
T=1;
fs=1/T;
Wp=(2/T)*tan(0.75*pi/2);
Ws=(2/T)*tan(0.65*pi/2);
Ap=20*log10(1/0.9);
As=20*log10(1/0.18);
[N,Wc]=cheb1ord(Wp,Ws,Ap,As,'s');%调用 cheb1ord 函数确定切比雪夫 I 型滤波器阶数
[B,A]=cheby1(N,Ap,Wc, 'high','s');
%调用 cheby1 函数设计切比雪夫 I 型滤波器
W=linspace(0,7*pi,400*pi);
hf=freqs(B,A,W);
subplot(2,1,1);
plot(W/pi,abs(hf));
grid on;
title('切比雪夫 I 型模拟滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
w=linspace(0,pi,400*pi);
[D,C]=bilinear(B,A,fs);
Hz=freqz(D,C,w);
subplot(2,1,2);
plot(w/pi,abs(Hz));
grid on;
title('切比雪夫 I 型数字滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
%指定一段频率值
%调用双线性变换法
%返回频率响应
%绘出切比雪夫 I 型数字带阻滤波器的幅频特性曲线
进行试验
输出图像如下:
5
切 比 雪 夫 I型 模 拟 滤 波 器
1
2
3
4
Frequency/Hz
切 比 雪 夫 I型 数 字 滤 波 器
5
6
7
1
e
d
u
t
i
n
g
a
M
0.5
0
0
1
e
d
u
t
i
n
g
a
M
0.5
0
0
0.1
0.2
0.3
0.4
Frequency/Hz
0.5
0.6
0.7
0.8
0.9
1
实验分析
通过查 workspace 可以得出脉冲响应为:
滤波器幅度响应:
滤波器相位响应:
当 T 分别为 0.01,0.1,0.25,0.5,0.8 时的数字滤波器的频率响应如下图像
所示:
6
切 比 雪 夫 I型 数 字 滤 波 器
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
e
d
u
t
i
n
g
a
M
0.5
0.6
0.4
Frequency/Hz
0.7
0.8
0.9
1
0
0
0.1
0.2
0.3
其中, T=0.01 “
”
T=0. 1 “-------------”
T=0.25 “—·—·—”
T=0.5 “————”
T=0.8 “
”
由图像可以看出,当采样周期从 0.01s 增长到 0.8s 时,数字滤波器的幅度响
应没有任何变化。故对于用双线性变换法设计的切比雪夫高通数字滤波器,由于
事先做了预畸处理,消除了频率映射时引起的非线性关系,所得数字滤波器的幅
度响应较为稳定。
对比用双线性变换法和脉冲响应不变法得到的数字高通滤波器幅度响应形
状可知:双线性变换法不会出现由于高频部分超过折叠频率而混叠到低频部分去
的现象。这意味着,模拟滤波器的全部频率响应被压缩于等效的数字频率范围(0,
π)之内。这是双线性变换法的主要优点,虽然这是以频率的严重非线性关系为
代价的,但因为可以用预畸的方法进行补偿,所以仍可以得到比较理想的数字滤
波器幅度响应。
7