概述
一、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】:机械工业出版社。
最后
以上就是傻傻热狗为你收集整理的基于matlab的巴特沃斯滤波器设计的全部内容,希望文章能够帮你解决基于matlab的巴特沃斯滤波器设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复