一、butterworth滤波器也称最平响应特性滤波器,其特征多项式为:

|K(jΩ)|^2=K(jΩ)K(-jΩ)=(Ω/Ωc)^2N

巴特沃斯滤波器的模平方函数为:

       |H(jΩ)|^2=1/(1+|K(jΩ)|^2)=1/(1+(Ω/Ωc)^2N)

       N为滤波器的阶数;

当Ω=Ωс时,|H(jΩ)|=1/√2,所以Ωc为滤波器的半功率点或幅频特性(-3dB)点,随着N增大,通带边缘变化加快,幅频特性更加逼近,但无论N取多少,幅频特性总经过(-3dB)点。

二、为巴特沃斯滤波器设计技术标准:

通带截止频率fp=6kHz;

阻带截止频率fs=12kHz;

通带最大衰减1dB;

阻带最大衰减30dB;

三、在matlab中程序编写如下:

clear
clc
OmegaP=12*pi*10^3;%通带截止频率
OmegaS=24*pi*10^3;%阻带截止频率
Rp=1;As=30;
[N,OmegaC]=buttord(OmegaP,OmegaS,Rp,As,'s');%计算模拟巴特沃思阶数N和3dB截止频率OmegaC
[b,a]=butter(N,OmegaC,'s');%“s”表示模拟滤波器
w0=[OmegaC,OmegaS];%以下4句是检验Ωp,Ωs对应的衰减指标
[H,w]=freqs(b,a);
Hx=freqs(b,a,w0);
dbHx=-20*log10(abs(Hx)/max(abs(H)));
plot(w,20*log10(abs(H)));
xlabel('w');
ylabel('分贝');
set(gca,'xtickmode','manual','xtick',[0,5*10^5,10*10^5,15*10^5,20*10^5,]);
set(gca,'ytickmode','manual','ytick',[-200,-150,-100,-50,-1,]);

运行结果如下:
function createfigure(X1, Y1) %CREATEFIGURE(X1, Y1) % X1: x 数据的矢量 % Y1: y
数据的矢量 % 由 MATLAB 于 28-Nov-2021 11:50:06 自动生成 % 创建 figure figure1 = figure; % 创建
axes axes1 = axes('Parent',figure1); hold(axes1,'on'); % 创建 plot plot(X1,Y1); %
创建 xlabel xlabel('w','FontSize',11); % 创建 ylabel ylabel('分贝','FontSize',11);
box(axes1,'on'); % 设置其余坐标轴属性 set(axes1,'XTick',[0 500000 1000000 1500000
2000000],'YTick',... [-200 -150 -100 -50 -1]);
验证结果

经仿真后图像可知随着频率的增大,其幅度单调递减,符合巴特沃斯滤波器的设计。 

总结:matlab对于简化滤波器的计算具有重大意义,而且能从matlab仿真图像上更清晰的判断

滤波器的设计是否合理。

参考文献:【1】张小虹。数字信号处理第二版【M】:机械工业出版社。
 

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信