脉冲响应不变法设计IIR数字滤波器matlab.docx
《脉冲响应不变法设计IIR数字滤波器matlab.docx》由会员分享,可在线阅读,更多相关《脉冲响应不变法设计IIR数字滤波器matlab.docx(10页珍藏版)》请在冰点文库上搜索。
脉冲响应不变法设计IIR数字滤波器matlab
实验三脉冲响应不变法设计IIR数字滤波器
一、实验目的
1.掌握利用脉冲响应不变法设计IIR数字滤波器的原理和具体方法。
2.加深理解数字滤波器与连续时间滤波器之间的技术指标转化。
3.掌握脉冲响应不变法设计IIR数字滤波器的优缺点及使用范围。
二、实验内容
1.利用巴特沃思模拟滤波器,通过脉冲响应不变法设计巴特沃思数字滤波器,数字滤波器的技术指标为
采样周期为T=2
程序代码
T=2;%设置采样周期为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');%调用butter函数设计巴特沃斯滤波器
W=linspace(0,pi,400*pi);%指定一段频率值
hf=freqs(B,A,W);%计算模拟滤波器的幅频响应
subplot(2,1,1);
plot(W/pi,abs(hf)/abs(hf
(1)));%绘出巴特沃斯模拟滤波器的幅频特性曲线
gridon;
title('巴特沃斯模拟滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
[D,C]=impinvar(B,A,fs);%调用脉冲响应不变法
Hz=freqz(D,C,W);%返回频率响应
subplot(2,1,2);
plot(W/pi,abs(Hz)/abs(Hz
(1)));%绘出巴特沃斯数字低通滤波器的幅频特性曲线
gridon;
title('巴特沃斯数字滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
进行试验
输出图像:
观察workspace,可得模拟滤波器技术指标为N=8,Wc=0.4446。
2.通过切比雪夫模拟滤波器,利用脉冲响应不变法设计切比雪夫数字滤波器,重做第一题。
程序代码I
T=2;%设置采样周期为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]=cheb1ord(Wp,Ws,Ap,As,'s');%调用cheb1ord函数确定切比雪夫I型滤波器阶数
[B,A]=cheby1(N,Ap,Wc,'s');%调用cheby1函数设计切比雪夫I型滤波器
W=linspace(0,pi,400*pi);%指定一段频率值
hf=freqs(B,A,W);%计算模拟滤波器的幅频响应
subplot(2,1,1);
plot(W/pi,abs(hf)/abs(hf
(1)));%绘出切比雪夫I型模拟滤波器的幅频特性曲线
gridon;
title('切比雪夫I型模拟滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
[D,C]=impinvar(B,A,fs);%调用脉冲响应不变法
Hz=freqz(D,C,W);%返回频率响应
subplot(2,1,2);
plot(W/pi,abs(Hz)/abs(Hz
(1)));%绘出切比雪夫I型数字低通滤波器的幅频特性曲线
gridon;
title('切比雪夫I型数字滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
进行试验I
输出图像:
观察workspace,可得模拟滤波器技术指标为N=4,Wc=0.3927。
程序代码II
T=2;%设置采样周期为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]=cheb2ord(Wp,Ws,Ap,As);%调用cheb2ord函数确定切比雪夫II型滤波器阶数
[B,A]=cheby2(N,Ap,Wc);%调用cheby2函数设计切比雪夫II型滤波器
W=linspace(0,pi,400*pi);%指定一段频率值
hf=freqs(B,A,W);%计算模拟滤波器的幅频响应
subplot(2,1,1);
plot(W/pi,abs(hf)/abs(hf
(1)));%绘出切比雪夫II型模拟滤波器的幅频特性曲线
gridon;
title('切比雪夫II型模拟滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
[D,C]=impinvar(B,A,fs);%调用脉冲响应不变法
Hz=freqz(D,C,W);%返回频率响应
subplot(2,1,2);
plot(W/pi,abs(Hz)/abs(Hz
(1)));%绘出切比雪夫II型数字低通滤波器的幅频特性曲线
gridon;
title('切比雪夫II型数字滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
进行试验II
输出图像:
观察workspace,可得模拟滤波器技术指标为N=3,Wc=0.5498。
3.利用脉冲响应不变法设计巴特沃思数字高通滤波器,数字滤波器的技术指标为
采样周期为T=1,比较当T分别为0.01,0.1,0.25,0.5,0.8是的数字滤波器的频率响应,观察是否能够通过改变采样周期来减少滤波器设计中的频谱混叠。
程序代码
T=1;%设置采样周期为1
fs=1/T;%采样频率为周期倒数
Wp=0.75*pi/T;
Ws=0.65*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,'high','s');%调用butter函数设计巴特沃斯滤波器
W=linspace(0,pi,400*pi);%指定一段频率值
hf=freqs(B,A,W);%计算模拟滤波器的幅频响应
subplot(2,1,1);
plot(W/pi,abs(hf));%绘出巴特沃斯模拟滤波器的幅频特性曲线
gridon;
title('巴特沃斯模拟滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
[D,C]=impinvar(B,A,fs);%调用脉冲响应不变法
Hz=freqz(D,C,W);%返回频率响应
subplot(2,1,2);
plot(W/pi,abs(Hz));%绘出巴特沃斯数字高通滤波器的幅频特性曲线
gridon;
title('巴特沃斯数字滤波器');
xlabel('Frequency/Hz');
ylabel('Magnitude');
进行试验
输出图像如下:
当T分别为0.01,0.1,0.25,0.5,0.8是的数字滤波器的频率响应如下几个图像所示:
其中,T=0.01“”
T=0.1“-------------”
T=0.25“—·—·—”
T=0.5“————”
T=0.8“”
由图像可以看出,当采样周期从0.01s增长到0.8s时,数字滤波器的幅度响应逐渐降低,但形状未发生变化仍然出现频谱混叠现象,即在低频区域出现较高的起伏,产生的频谱并非高通滤波器。
故对于用脉冲响应不变法设计的巴特沃思高通数字滤波器,无法通过改变采样周期来减少频谱混叠现象。
其原因是按照脉冲响应不变法的原理,只有当模拟滤波器的频响是限带于折叠频率以内时,才能使数字滤波器的频率响应在折叠频率以内,重现模拟滤波器的频率响应而不产生混叠失真。
而对于高通和带阻滤波器,无论取样周期为多少,无法满足这一条件。