📄 fir_lp.m
字号:
function h=FIR_LP(Wp,Ws,delta1,delta2)
%FIR_LP; 根据指标设计低通FIR滤波器
%输入参数:
% Wp:通带截止频率,0~pi
% Ws:阻带截止频率,0~pi
% delta1:通带容限
% delta2:阻带容限
%输出参数:
% h:FIR滤波器系数
Ap=20*log10(2/(1-delta1)-1); %设计要求的通带最大衰减(db)
As=-20*log10(delta2/(delta1+1)); %设计要求的阻带最小衰减(db)
delta_w=2*pi/1000;
Wsi=Ws/delta_w+1;
Wpi=Wp/delta_w;
f=[Wp/pi,Ws/pi]; %归一化边缘频率
m=[1,0]; %与f对应的幅值
dev=[delta1,delta2];%与f对应的各频带的波动
[n,fo,ao,weights]=firpmord(f,m,dev);
h=firpm(n,fo,ao,weights);
[H,w]=freqz(h,1,1000,'whole');
H=(H(1:1:501))';
w=(w(1:1:501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
Asd=-max(db(Wsi:1:501));
while Asd<As %判断阻带衰减指标是否满足设计要求,以完成对n的调整。
n=n+1;
h=firpm(n,fo,ao,weights);
[H,w]=freqz(h,1,1000,'whole');
H=(H(1:1:501))';
w=(w(1:1:501))';
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
Asd=-max(db(Wsi:1:501));
end
M=n;
h=firpm(M,fo,ao,weights);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -