基于MATLAB 设计数字带通滤波器
2020-06-18杨贵鑫杨跃张鹏飞铜仁学院大数据学院
杨贵鑫 杨跃 张鹏飞 铜仁学院大数据学院
引言
我们都知道滤波器是用来筛选信号的,不同的滤波器有不同的功能,但它们都可以设定一定的门限值来阻止或允许特定频率的通过。带通滤波器是一种仅允许特定频率通过,同时对其余频率的信号进行有效抑制的电路。因为它可以对信号具有选择性,所以被广泛应用于现代的电子设计中。常用的经典数字滤波器主要有以下类型:切比雪夫、巴特沃斯、椭圆滤波器等等。
一、切比雪夫滤波器
切比雪夫型滤波器是能在通带或阻带上频率响应幅度等波纹波动的滤波器,它的振幅特性在通带内是等波纹。当它在阻带内是单调时,我们称它为切比雪夫I 型滤波器;当它振幅特性在通带内是单调的,在阻带内是等波纹的时候,我们称它为切比雪夫II 型滤波器。
二、切比雪夫I 型
wp=[0.1*2*pi 0.15*2*pi]; %设置通带频率
ws=[0.05*2*pi 0.2*2*pi]; %设置阻带频率
Rp=1; %设置通带波纹系数
Rs=20; %阻带波纹系数
[N,Wn]=cheb1ord(wp,ws,Rp,Rs,'s'); %求滤波器阶数
fprintf('切比雪夫I 型滤波器 N= %4d ',N); %显示滤波器阶数
[bc1,ac1]=cheby1(N,Rp,Wn,'s'); %求滤波器系数
[Hc1,wc1]=freqs(bc1,ac1,W); %求切比雪夫I 型滤波器频率响应
plot(wc1/pi,20*log10(abs(Hc1)),'c'); %作图
xlabel('角频率{omega}/{pi}');
ylabel('幅值/dB');
切比雪夫Ⅱ型
wp=[0.1*2*pi 0.15*2*pi]; %设置通带频率
ws=[0.05*2*pi 0.2*2*pi]; %设置阻带频率
Rp=1; %设置通带波纹系数
Rs=20; %设置阻带波纹系数
[N,Wn]=cheb2ord(wp,ws,Rp,Rs,'s'); %求切比雪夫II型滤波器阶数
fprintf('切比雪夫II 型滤波器 N= %4d ',N);%显示滤波器阶数
[bc2,ac2]=cheby2(N,Rs,Wn,'s'); %求切比雪夫II 型滤波器系数
[Hc2,wc2]=freqs(bc2,ac2,W); %求切比雪夫II 型滤波器频率响应
plot(wc2/pi,20*log10(abs(Hc2)),'*r'); %作图
xlabel('角频率{omega}/{pi}');
ylabel('幅值/dB');
三、巴特沃斯滤波器
巴特沃斯滤波器的特点就是在通频带内频率响应曲线最大限度平坦没有起伏,而在阻频带则逐渐下降为零。它在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅会随角频率的增加而逐渐减少,然后趋向负无穷大。
wp=[0.1*2*pi 0.15*2*pi]; %设置通带频率
ws=[0.05*2*pi 0.2*2*pi]; %设置阻带频率
Rp=1; %设置通带波纹系数
Rs=20; %设置阻带波纹系数
[N,Wn]=buttord(wp,ws,Rp,Rs,'s'); %求巴特沃斯滤波器阶数fprintf('巴特沃斯滤波器 N= %4d ',N); %显示滤波器阶数
[bb,ab]=butter(N,Wn,'s'); %求巴特沃斯滤波器系数W=0:0.01:2; %设置模拟频率
[Hb,wb]=freqs(bb,ab,W); %求巴特沃斯滤波器频率响应
plot(wb/pi,20*log10(abs(Hb)),'+b'); %作图
xlabel('角频率{omega}/{pi}');
ylabel('幅值/dB');