早教吧 育儿知识 作业答案 考试题库 百科 知识分享

如何指定数字滤波器的阶数我想设计一个带通的巴特沃斯数字滤波器,wp1=1063dB;wp2=1065dB;ws1=1062dB;ws2=1066dB;rp=2分贝;rs=15分贝但是如何指定阶数(我想设计16阶的)?麻烦将大致的程序结构发给我,

题目详情
如何指定数字滤波器的阶数
我想设计一个带通的巴特沃斯数字滤波器,
wp1=1063dB;wp2=1065dB;
ws1=1062dB;ws2=1066dB;
rp=2分贝;rs=15分贝
但是如何指定阶数(我想设计16阶的)?麻烦将大致的程序结构发给我,
(注:要有完整思路的程序)
▼优质解答
答案和解析
%设计数字巴特沃斯带通滤波器,
%通带0.25pi rad%通带最大衰减为3dB,阻带最小衰减为40dB
%阻带范围0clc;
clear all;
close all;
wp=[0.25,0.45];
ws=[0.15,0.55];
rp=3;
rs=40;
[N,wc]=buttord(wp,ws,rp,rs);
[B,A]=butter(N,wc);//这里的N是最低阶数,我想将N改变一下就可以了吧
plot(linspace(0,pi,1024),20*log10(abs(freqz(B,A,1024))))
grid on;
xlabel('\\omega(0,pi)');
ylabel('dB');
title('滤波器衰减函数曲线图');
我想这样也行吧:
wc=wp*(10^(0.1*ap)-1)^(-1/(2N))
wc为中心频率;
wp为通带截止频率
ap为通带衰减;
N为滤波器阶数
再用[B,A]=butter(N,wc)