2022 06月03日
作者: 小白哥
  • 浏览: 492
  • 收藏:0
  • 点赞:1
MATLAB冲激响应不变法和双线性变换法
% 采用冲激响应不变法将模拟系统函数Ha(s)=2/((s+1)*(s+3))转换为数字系统函数H(z),设采样周期T=0.5s.
b=[0 0 2];a=[1 4 3];
T=0.5;
fs=1/T;
[bz,az]=impinvar(b,a,fs)%冲激响应不变法,b和a分别为模拟系统函数的分子和分母多项式系数,fs为采样频率,返回bz和az分别为数字滤波器的分子和分母多项式系数.

1.jpg

% 采用双线性变换法设计切比雪夫I型低通数字滤波器,要求技术指标为:Wp=0.2pi,Rp=1dB,Ws=0.4pi,Rs=15dB,T=1s.
wp=0.2*pi;ws=0.4*pi;
Rp=1;Rs=15;T=1;fs=1/T;
monip=2/T*tan(wp/2);%由数字滤波器指标wp转化为模拟滤波器指标monip
monis=2/T*tan(ws/2);%由数字滤波器指标ws转化为模拟滤波器指标monis
[N,Wn]=cheb1ord(monip,monis,Rp,Rs,'s');%由模拟滤波器指标返回切比雪夫I型滤波器的参数N,Wn
[B,A]=cheby1(N,Rp,Wn,'s');%由切比雪夫I型滤波器的参数N,Rp,Wn返回模拟滤波器的分子和分母多项式的系数B,A
[b,a]=bilinear(B,A,fs);%由模拟滤波器的分子和分母多项式系数B,A和采样频率fs通过双线性变换法返回数字滤波器的分子和分母多项式系数b,a.
[h,w]=freqz(b,a,256);%由数字滤波器的分子和分母多项式系数b,a返回频率w及相应的频率响应.
figure(2)
plot(w/pi,20*log10(abs(h)));
grid;
xlabel('f in pi unit');
ylabel('gain in db');
title('双线性变换法设计切比雪夫I型低通数字滤波器');

1.jpg

% 实验任务
% 设计一 IIR 数字带通滤波器,给定指标为
% (1) 200Hz600Hz,衰减>20dB
% (3)抽样频率 fs=2kHz

% (1)用巴特沃斯滤波器,冲击响应不变法;
% (2)用巴特沃斯滤波器,双线性变换法;
% (3)用切比雪夫滤波器,冲击响应不变法;
% (4)用切比雪夫滤波器,双线性变换法。


%(1)用巴特沃斯滤波器,冲击响应不变法;
fs=2000;
Wp=2*pi*[200,400];    %模拟
Ws=2*pi*[100,600];    %模拟
Rp=2;
Rst=20;
[N,Wn]=buttord(Wp,Ws,Rp,Rst,'s');%'s'表示模拟滤波器,N 为阶数,Wn 为 3dB 截止频率.
[B,A]=butter(N,Wn,'s');%返回模拟滤波器的系统函数,B 为分子多项式,A 为分母多项式.
[bz,az]=impinvar(B,A,fs);%冲激响应不变法,B和A分别为模拟系统函数的分子和分母多项式系数,fs为采样频率,返回bz和az分别为数字滤波器的分子和分母多项式系数.
[h,w]=freqz(bz,az,256);%由数字滤波器的分子和分母多项式系数bz,az返回频率w及相应的频率响应.
figure(3)
subplot(2,2,1)
plot(w/pi,20*log10(abs(h)));
grid;
xlabel('f in pi');
ylabel('gain in db');
title('巴特沃斯滤波器,冲击响应不变法')

% (2)用巴特沃斯滤波器,双线性变换法;
fs=2000;
T=1/fs;
Wp=2*pi*[200,400];    %模拟
Ws=2*pi*[100,600];    %模拟
Rp=2;
Rst=20;
Wp=Wp*T;    %数字
Ws=Ws*T;    %数字
monip=2/T*tan(Wp/2);%由数字滤波器指标wp转化为模拟滤波器指标monip
monis=2/T*tan(Ws/2);%由数字滤波器指标ws转化为模拟滤波器指标monis
[N,Wn]=buttord(monip,monis,Rp,Rst,'s');%'s'表示模拟滤波器
[B,A]=butter(N,Wn,'s');%返回模拟滤波器的系统函数,B 为分子多项式,A 为分母多项式.
[bz,az]=bilinear(B,A,fs);%由模拟滤波器的分子和分母多项式系数B,A和采样频率fs通过双线性变换法返回数字滤波器的分子和分母多项式系数b,a.
[h,w]=freqz(bz,az,256);%由数字滤波器的分子和分母多项式系数bz,az返回频率w及相应的频率响应.
subplot(2,2,2)
plot(w/pi,20*log10(abs(h)));
grid;
xlabel('f in pi');
ylabel('gain in db');
title('巴特沃斯滤波器,双线性变换法')

% (3)用切比雪夫滤波器,冲击响应不变法;
fs=2000;
Wp=2*pi*[200,400];    %模拟
Ws=2*pi*[100,600];    %模拟
Rp=2;
Rst=20;
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rst,'s');%由模拟滤波器指标返回切比雪夫I型滤波器的参数N,Wn
[B,A]=cheby1(N,Rp,Wn,'s');%由切比雪夫I型滤波器的参数N,Rp,Wn返回模拟滤波器的分子和分母多项式的系数B,A
[bz,az]=impinvar(B,A,fs);%冲激响应不变法,B和A分别为模拟系统函数的分子和分母多项式系数,fs为采样频率,返回bz和az分别为数字滤波器的分子和分母多项式系数.
[h,w]=freqz(bz,az,256);%由数字滤波器的分子和分母多项式系数bz,az返回频率w及相应的频率响应.
subplot(2,2,3)
plot(w/pi,20*log10(abs(h)));
grid;
xlabel('f in pi');
ylabel('gain in db');
title('切比雪夫滤波器,冲击响应不变法')

%(4)用切比雪夫滤波器,双线性变换法。
fs=2000;
T=1/fs;
Wp=2*pi*[200,400];    %模拟
Ws=2*pi*[100,600];    %模拟
Rp=2;
Rst=20;
Wp=Wp*T;    %数字
Ws=Ws*T;    %数字
monip=2/T*tan(Wp/2);%由数字滤波器指标wp转化为模拟滤波器指标monip
monis=2/T*tan(Ws/2);%由数字滤波器指标ws转化为模拟滤波器指标monis
[N,Wn]=cheb1ord(monip,monis,Rp,Rst,'s');%由模拟滤波器指标返回切比雪夫I型滤波器的参数N,Wn
[B,A]=cheby1(N,Rp,Wn,'s');%由切比雪夫I型滤波器的参数N,Rp,Wn返回模拟滤波器的分子和分母多项式的系数B,A
[bz,az]=bilinear(B,A,fs);%由模拟滤波器的分子和分母多项式系数B,A和采样频率fs通过双线性变换法返回数字滤波器的分子和分母多项式系数b,a.
[h,w]=freqz(bz,az,256);%由数字滤波器的分子和分母多项式系数bz,az返回频率w及相应的频率响应.
subplot(2,2,4)
plot(w/pi,20*log10(abs(h)));
grid;
xlabel('f in pi');
ylabel('gain in db');
title('切比雪夫滤波器,双线性变换法')

1.jpg


  

发表评论

评论列表


没有评论

筛选

文章分类

热门文章

企业招聘网址

2023-12-07  浏览:3001次

BC1.2协议介绍

2023-06-14  浏览:2902次

USB2.0速度识别

2023-10-23  浏览:1333次