利用模拟低通滤波器设计带通、带阻、高通模拟滤波器

利用模拟低通滤波器设计带通、带阻、高通模拟滤波器

参考:《数字信号处理 第四版》高西全、丁玉美
最近学到第六章了,利用模拟低通滤波器设计不同类型的模拟滤波器,我们重点在设计巴特沃斯滤波器。
巴特沃斯滤波器通带、阻带具有单调下降的幅频特征,过渡带在与切比雪夫、椭圆滤波器相比中最宽。
利用高通到低通、带通到低通、带阻到低通的频率变换公式可以利用低通滤波器设计不同类型的模拟滤波器。
代码如下:主要是做一个低通滤波器和对应类型滤波器的对比

%%模拟滤波器
%程序作者:Grace  2018/11/4
%程序描述:利用matlab实现模拟滤波器的设计,低通、低通到高通、低通到
%带通,低通到带阻的滤波器设计和波形比较。

%巴特沃斯——低通滤波器设计例题6.2.1
wp=2*pi*5000;ws=2*pi*12000;Rp=2;As=30;
[N,wc]=buttord(wp,ws,Rp,As,'s')%计算率波器的阶数和3dB截止频率
[B,A]=butter(N,wc,'s');%计算滤波器系统函数分子分母多项式
fk=0:800/512:20000;wk=2*pi*fk;
Hk=freqs(B,A,wk);
%figure
subplot(4,2,1)
subplot(4,2,1)
plot(fk/1000,20*log10(abs(Hk)));
grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')
title('巴特沃斯低通模拟滤波器')
axis([0,20,-35,5])

%巴特沃斯——高通滤波器设计例题6.2.6
wp=1;ws=4;Rp=0.1;As=40;
[N,wc]=buttord(wp,ws,Rp,As,'s')%计算率波器的阶数和3dB截止频率
[B,A]=butter(N,wc,'s');%计算滤波器系统函数分子分母多项式
wph=2*pi*4000;
[BH,AH]=lp2hp(B,A,wph);
fk=0:800/512:20000;wk=2*pi*fk;
Hk=freqs(BH,AH,wk);
Hk1=freqs(B,A,wk);
%figure
subplot(4,2,3);
plot(fk/1000,20*log10(abs(Hk1)));
grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')
title('巴特沃斯低通模拟滤波器(利用低通转高通)')
subplot(4,2,4)
plot(fk/1000,20*log10(abs(Hk)));
grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')
title('巴特沃斯高通模拟滤波器(利用低通转高通)')
axis([0,10,-35,5])

%巴特沃斯——带通滤波器设计例题6.2.7
wp=1;ws=1.963;Rp=1;As=20;
[N,wc]=buttord(wp,ws,Rp,As,'s')%计算率波器的阶数和3dB截止频率
[B,A]=butter(N,wc,'s');%计算滤波器系统函数分子分母多项式
wph=2*pi*4000;
fk=0:800/512:20000;wk=2*pi*fk;
Hk1=freqs(B,A,wk);
%figure
subplot(4,2,5);
plot(fk/1000,20*log10(abs(Hk1)));
grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')
title('巴特沃斯低通模拟滤波器(利用低通转带通)')
wp=2*pi*[4000,7000];ws=2*pi*[2000,9000];Rp=1;As=20;
[N,wc]=buttord(wp,ws,Rp,As,'s')%计算率波器的阶数和3dB截止频率
[B,A]=butter(N,wc,'s');%计算滤波器系统函数分子分母多项式
fk=0:800/512:20000;wk=2*pi*fk;
Hk1=freqs(B,A,wk);
%figure
subplot(4,2,6);
plot(fk/1000,20*log10(abs(Hk1)));
grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')
title('巴特沃斯带通模拟滤波器(利用低通转带通)')
axis([0,10,-35,5])

%巴特沃斯——低通转带阻滤波器例题6.2.8
wp=0.4286;ws=1;Rp=1;As=20;
[N,wc]=buttord(wp,ws,Rp,As,'s')%计算率波器的阶数和3dB截止频率
[B,A]=butter(N,wc,'s');%计算滤波器系统函数分子分母多项式
wph=2*pi*4000;
fk=0:800/512:20000;wk=2*pi*fk;
Hk1=freqs(B,A,wk);
%figure
subplot(4,2,7);
plot(fk/1000,20*log10(abs(Hk1)));
grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')
title('巴特沃斯低通模拟滤波器(利用低通转带阻)')
wp=2*pi*[2000,9000];ws=2*pi*[4000,7000];Rp=1;As=20;
[N,wc]=buttord(wp,ws,Rp,As,'s')%计算率波器的阶数和3dB截止频率
[B,A]=butter(N,wc,'stop','s');%计算滤波器系统函数分子分母多项式
fk=0:800/512:20000;wk=2*pi*fk;
Hk1=freqs(B,A,wk);
%figure
subplot(4,2,8);
plot(fk/1000,20*log10(abs(Hk1)));
grid on,xlabel('频率(kHz)'),ylabel('幅度(dB)')
title('巴特沃斯带阻模拟滤波器(利用低通转带阻)')
axis([0,10,-35,5])

结果如下:
利用模拟低通滤波器设计带通、带阻、高通模拟滤波器_第1张图片

你可能感兴趣的:(数字信号处理)