常见几种滤波器的比较

经典的数字滤波器有巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器和贝塞尔滤波器等。。

巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。巴特沃斯滤波器的频率特性曲线,无论在通带内还是阻带内都是频率的单调函数。因此,当通带的边界处满足指标要求时,通带内肯定会有裕量。所以,更有效的设计方法应该是将精确度均匀的分布在整个通带或阻带内,或者同时分布在两者之内。这样就可用较低阶数的系统满足要求。这可通过选择具有等波纹特性的逼近函数来达到。

切比雪夫滤波器是在通带或阻带上频率响应幅度等波纹波动的滤波器,振幅特性在通带内是等波纹。在阻带内是单调的称为切比雪夫I型滤波器;振幅特性在通带内是单调的,在阻带内是等波纹的称为切比雪夫II型滤波器。采用何种形式的切比雪夫滤波器取决于实际用途。

椭圆滤波器(Elliptic filter)又称考尔滤波器(Cauer filter),是在通带和阻带等波纹的一种滤波器。它比切比雪夫方式更进一步地是同时用通带和阻带的起伏为代价来换取过渡带更为陡峭的特性。相较其他类型的滤波器,椭圆滤波器在阶数相同的条件下有着最小的通带和阻带波动。

clc;

clear all;
%
wp=30;ws=35;Fs=100;
rp=0.5;rs=40;
[n,wn]=buttord(wp/(Fs/2),ws/(Fs/2),rp,rs);
[num,den]=butter(n,wn);
[H,W]=freqz(num,den);
 plot(W*Fs/(2*pi),abs(H),'LineWidth',2);hold on;

[n1,wn1]=cheb1ord(wp/(Fs/2),ws/(Fs/2),rp,rs);
[num1,den1]=cheby1(n1,rp,wn1);
[H1,W1]=freqz(num1,den1);
plot(W1*Fs/(2*pi),abs(H1),'--','LineWidth',2);hold on;

[n2,wn2]=cheb2ord(wp/(Fs/2),ws/(Fs/2),rp,rs);
[num2,den2]=ellip(n2,rp,rs,wn2);
[H2,W2]=freqz(num2,den2);
plot(W2*Fs/(2*pi),abs(H2),'-.','LineWidth',2);hold on;


xlabel('频率(Hz)');
ylabel('幅值(dB)');
title('滤波器对比图');
legend('巴特沃斯','切比雪夫','椭圆型');
grid on;


你可能感兴趣的:(MATLAB)