📄 iir_df_bw.m
字号:
function Hz_ejw = IIR_DF_BW(Ucd,Ap,Usd,As,t,sum)
% 巴特沃思滤波器
E = (10^(0.1*Ap)-1)^0.5;
V = (10^(0.1*As)-1)^0.5;
Wc = Ucd*t;
Ws = Usd*t;
Ucd = Wc/t;
Usd = Ws/t;
Uca = (2/t)*tan(Ucd*t/2); Usa=(2/t)*tan(Usd*t/2);
N = ceil(log10(V/E)/log10(Usa/Uca));
k = [1:2*N];
Spk = exp(j*(pi/2+(2*k-1)/(2*N)*pi));
i = find(real(Spk)<0);
Sk(1:N) = Spk(i);
den = real(poly(Sk'));
k0 = polyval(den,0);
disp('模拟巴特沃思滤波器的归一化统函数 Ha(s) 为')
tf(k0,den)
%-----------------------------------------------%
syms s z T;
den_jU = 1;
s = s/Uca;
for i=1:N
den_jU = s^(N-i+1)*den(i)+den_jU;
end
Ha_s = simple(1/den_jU);
H_z = subs(Ha_s,'s',(2/T)*((1-1/z)/(1+1/z)));
k = 1:sum;
w = (2*pi/sum)*k;
ejw = exp(j*w);
Hz_ejw = subs(H_z,{z,T},{ejw,t*ones(1,length(ejw))});
figure(1),plot(w,abs(Hz_ejw)); grid on
title('巴特沃思低通滤波器')
axis([2*pi/sum,pi,-0.2,1.2*max(abs(Hz_ejw))])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -