K=floor(N/2);
for i=1:K
theta(i)=pi*(N-1+2*i)/(2*N);
end
for i=1:K
omega(i)=omegas/sin(theta(i));
end
for i=1:K
G(i)=(1+omega(i)^-2)/(1-2*omega0^-1*cos(theta(i))+omega0^-2+omega(i)^-2);
end
for i=1:K
a1(i)=2*(1-omega0^-2+omega(i)^-2)/(1-2*omega0^-1*cos(theta(i))+omega0^-2+omega(i)^-2);
end
for i=1:K
a2(i)=(1+2*omega0^-1*cos(theta(i))+omega0^-2+omega(i)^-2)/(1-2*omega0^-1*cos(theta(i))+omega0^-2+omega(i)^-2);
end
for i=1:K
b1(i)=2*(1-omega(i))/(1+omega(i));
end
if K<(N/2)
G0=omega0/(omega0+1);a0=(omega0-1)/(omega0+1);
else
H0=sqrt(1/(1+ep^2));
end
f=(0+eps):1/100:10;
Hf2=(cheby(N,omegas./tan(pi*f/fs))).^2./((cheby(N,omegas./tan(pi*f/fs))).^2+es^2);
plot(f,abs(Hf2));
grid;
(10)chebyshev 中用到的函数 cheby.m
function CN=cheby(N,x)
if x<=1
CN=cos(N*acos(x));
else
CN=cosh(N*log(x+sqrt(x.^2-1)));
end
上一页 [1] [2]
本文关键字:滤波器 源程序 matlab 电脑-单片机-自动控制,电子学习 - 基础知识 - 电脑-单片机-自动控制