基于matlab的巴特沃斯滤波器设计

一、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】:机械工业出版社。
 

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值