下面将通过matlab设计出制定要求的滤波器,并给出相应的频率特性。
1.巴特沃兹低通滤波器
%—————————————————————————– % 巴特沃兹低通 % 设计要求: fp=100hz, fs=0hz; αp=3db, αs=20db; Fs=1000hz % 10^(-3/20)=0.707; 10^(-20/20)=0.1 %—————————————————————————– clear; close; clc;
fp=100;fs=300; Fs=1000; wp=fp*2*pi/Fs; ws=fs*2*pi/Fs; Fs=1000; rp=3;rs=20; % Firstly to finish frequency prewarping; [n,wn]=buttord(wp/pi,ws/pi,rp,rs); %wn:buttord得到的自然截至频率 一般>wp [bz,az]=butter(n,wp/pi) %参数2输入通带截至频率 % [bz1,az1]=butter(n,wn)
[h,w]=freqz(bz,az,128,Fs); [h1,w1]=freqz(bz1,az1,128,Fs); plot(w,abs(h), w1,abs(h1),’g.’);grid on; % plot(w,abs(h));grid on;
2.巴特沃兹带通滤波器
%————————————————————————– % 巴特沃兹带通 % 设计要求: % 通带范围:300-400hz; 采样频率Fs=1000hz % 带边频率衰减<=3db; 200hz以下500hz以上衰减>=18db % 10^(-3/20)=0.707; 10^(-18/20)=0.125 % to design a Butterworth Bandpass digital filter. % ————————————————————————- clear; close; clc;
fp=[300 400];fs=[200 500]; rp=3;rs=18; Fs=2000; wp=fp*2*pi/Fs;ws=fs*2*pi/Fs; % % 求出阶次; [n,wn]=buttord(wp/pi,ws/pi,rp,rs);
% 再设计 Butterworth 带通滤波器; [b,a]=butter(n,wp/pi); [h,w]=freqz(b,a,256,Fs); % h=20*log10(abs(h)); plot(w,abs(h));grid;
ylabel(‘Bandpass DF’) xlabel(’ Hz’)
切比雪夫1型滤波器%—————————————————————————- % 切比雪夫1型滤波器设计要求: % fsl=200hz,fsh=600hz;fl=300hz,fh=500hz; % 通带衰减<=0.1db,阻带衰减>=30db % 10^(-0.1/20)=0.9885; 10^(-30/20)=0.0316 % to test cheb1ord,cheby1, % to design a Chebyshev-I Bandpass DF. %—————————————————————————- clear all;
f1=300;f3=500; fsl=200;fsh=600; rp=0.1;rs=30; 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]; % % 设计切比雪夫滤波器; [n,wn]=cheb1ord(ws/pi,wp/pi,rp,rs); [bz1,az1]=cheby1(n,rp,wp/pi) [h,w]=freqz(bz1,az1,256,Fs); % h=20*log10(abs(h)); h = abs(h);
4.切比雪夫2型滤波器
%—————————————————————————- % 切比雪夫2型滤波器设计要求: % fsl=200hz,fsh=600hz;fl=300hz,fh=500hz; % 通带衰减<=0.1db,阻带衰减>=30db % 10^(-0.1/20)=0.9885; 10^(-30/20)=0.0316 % to test cheb1ord,cheby1, % to design a Chebyshev-I Bandpass DF. %—————————————————————————- clear all;
f1=300;f3=500; fsl=200;fsh=600; rp=0.1;rs=30; 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]; % % 设计切比雪夫滤波器; [n,wn]=cheb2ord(ws/pi,wp/pi,rp,rs); [bz1,az1]=cheby2(n,rp,wp/pi) [h,w]=freqz(bz1,az1,256,Fs); h=20*log10(abs(h)); % h = abs(h); plot(w,h);grid on;
椭圆滤波器:
%—————————————————————————- % 椭圆滤波器设计要求: % fsl=200hz,fsh=600hz;fl=300hz,fh=500hz; % 通带衰减<=0.1db,阻带衰减>=30db % 10^(-0.1/20)=0.9885; 10^(-30/20)=0.0316 % to test cheb1ord,cheby1, % to design a Chebyshev-I Bandpass DF. %—————————————————————————- clear all;
f1=300;f3=500; fsl=200;fsh=600; rp=0.1;rs=30; 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]; % [n,wn]=ellipord(ws/pi,wp/pi,rp,rs); [bz1,az1]=ellip(n,rp,rs,wp/pi); [h,w]=freqz(bz1,az1,256,Fs); h=20*log10(abs(h)); % h = abs(h); plot(w,h);grid on;
当滤波器具有相同阶数时: 巴特沃斯滤波器通带最平坦,阻带下降慢。 切比雪夫滤波器通带等纹波,阻带下降较快。 椭圆滤波器,椭圆滤波器在通带等纹波(阻带平坦或等纹波),阻带下降最快。 贝塞尔滤波器通带等纹波,阻带下降慢。也就是说幅频特性的选频特性最差。但是,贝塞尔滤波器具有最佳的线性相位特性。