IIR滤波器设计

matlab代码在最后,仅供参考。

高通滤波器设计

HP:fp=400Hzfs=300HzFs=1000Hzαp=3dBαs=35dB

巴特沃斯高通滤波器设计

 

切比雪夫高通滤波器设计

带通滤波器设计

 

 BP:fsl=200Hzf1=300Hzfsh=500Hzf2=400HzFs=2000Hzαp=3dBαs=40dB

 巴特沃斯带通滤波器

 

切比雪夫带通滤波器设计

 

 

 

%----------------------------------------------------------------------------
% To design IIR Butteworth Highpass DF by analog-lowpass,
% ---------------------------------------------------------------------------
clear all;

fp=400;fs=300;
%wp=[.19*pi 0.21*pi];ws=[.198*pi 0.202*pi];
Fs=1000;
rp=3;rs=35;
wp=fp*2*pi/Fs;ws=fs*2*pi/Fs;
%
% Firstly to finish frequency prewarping;
wap=2*Fs*tan(wp./2)
was=2*Fs*tan(ws./2);
[n,wn]=buttord(wap,was,rp,rs,'s');
% Note: 's'!
[z,p,k]=buttap(n);
[b,a]=zp2tf(z,p,k)

[bt,at]=lp2hp(b,a,wap)
%
% Note: z=(2/ts)(z-1)/(z+1);
[bz1,az1]=bilinear(bt,at,Fs)
[h,w]=freqz(bz1,az1,256,Fs);
figure
plot(w/500,20*log10(abs(h)))
title('巴特沃斯滤波器幅值谱')
xlabel('角频率{\omega}/{\pi}');
ylabel('幅值/dB');

figure
plot(w/500,(angle(h)))
title('巴特沃斯滤波器相位谱')
xlabel('角频率{\omega}/{\pi}');
ylabel('相位/rad');


%%
% % ----------------------------------------------------------------------------
% % to design a Chebyshev-I Highpass DF.
% % ----------------------------------------------------------------------------
clear all;

fp=400;fs=300;
%wp=[.19*pi 0.21*pi];ws=[.198*pi 0.202*pi];
Fs=1000;
rp=3;rs=35;
wp=fp*2*pi/Fs;ws=fs*2*pi/Fs;
%

%
% Firstly to finish frequency prewarping;
wap=2*Fs*tan(wp./2);
was=2*Fs*tan(ws./2);
[n,wn]=cheb1ord(wap,was,rp,rs,'s');
% Note: 's'!
[z,p,k]=cheb1ap(n,rp);
[bp,ap]=zp2tf(z,p,k)

[bs,as]=lp2hp(bp,ap,wap)
%
% Note: z=(2/Ts)(z-1)/(z+1);
[bz1,az1]=bilinear(bs,as,Fs)
[h,w]=freqz(bz1,az1,256,Fs);
figure
plot(w/500,20*log10(abs(h)))
title('切比雪夫波器幅值谱')
xlabel('角频率{\omega}/{\pi}');
ylabel('幅值/dB');

figure
plot(w/500,(angle(h)))
title('切比雪夫滤波器相位谱')
xlabel('角频率{\omega}/{\pi}');
ylabel('相位/rad');

%%
%----------------------------------------------------------------------------
% to test cheb1ord,cheb1ap, 
% to design a Chebyshev-I Bandpass DF.
%----------------------------------------------------------------------------
clear all;

f1=300;f3=400;
fsl=200;fsh=500;
rp=3;rs=40;
Fs=2000;
%
wp1=2*pi*f1/Fs;
wp3=2*pi*f3/Fs;
wsl=2*pi*fsl/Fs;
wsh=2*pi*fsh/Fs;
wp=[wp1 wp3];ws=[wsl wsh];
%
% Firstly to finish frequency prewarping;
wap=2*Fs*tan(wp./2);
was=2*Fs*tan(ws./2);
[n,wn]=cheb1ord(wap,was,rp,rs,'s');
% Note: 's'!
[z,p,k]=cheb1ap(n,rp);
[bp,ap]=zp2tf(z,p,k)
bw=wap(2)-wap(1)
w0=sqrt(wap(1)*wap(2))
[bs,as]=lp2bp(bp,ap,w0,bw)
%
% Note: z=(2/Ts)(z-1)/(z+1);
[bz1,az1]=bilinear(bs,as,Fs)
[h,w]=freqz(bz1,az1,256,Fs);
figure
plot(w/1000,20*log10(abs(h)))
title('切比雪夫波器幅值谱')
xlabel('角频率{\omega}/{\pi}');
ylabel('幅值/dB');

figure
plot(w/1000,(angle(h)))
title('切比雪夫滤波器相位谱')
xlabel('角频率{\omega}/{\pi}');
ylabel('相位/rad');

%%
%----------------------------------------------------------------------------
% To design IIR Butteworth bandpass DF by analog-lowpass,
% ---------------------------------------------------------------------------
clear all;

fp=[300 400];fs=[200 500];
%wp=[.19*pi 0.21*pi];ws=[.198*pi 0.202*pi];
Fs=2000;
rp=3;rs=18;
wp=fp*2*pi/Fs;ws=fs*2*pi/Fs;
%
% Firstly to finish frequency prewarping;
wap=2*Fs*tan(wp./2)
was=2*Fs*tan(ws./2);
[n,wn]=buttord(wap,was,rp,rs,'s');
% Note: 's'!
[z,p,k]=buttap(n);
[b,a]=zp2tf(z,p,k)
bw=wap(2)-wap(1)
w0=sqrt(wap(1)*wap(2))
[bt,at]=lp2bp(b,a,w0,bw)
%
% Note: z=(2/ts)(z-1)/(z+1);
[bz1,az1]=bilinear(bt,at,Fs)
[h,w]=freqz(bz1,az1,256,Fs);
figure
plot(w/500,20*log10(abs(h)))
title('巴特沃斯滤波器幅值谱')
xlabel('角频率{\omega}/{\pi}');
ylabel('幅值/dB');

figure
plot(w/500,(angle(h)))
title('巴特沃斯滤波器相位谱')
xlabel('角频率{\omega}/{\pi}');
ylabel('相位/rad');

 

 

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值