clear; close all; syms w; chebyshev = @(c1,c0) 2*w*c1 - c0; c0 = 1; c1 = w; cs = [c0 c1]; for n=2:10 cn_prev = cs(n-1); cn = cs(n); cn_next = chebyshev(cn, cn_prev); cs(end+1) = cn_next; end n = 5; xis = [0.1 0.5 1.0]; for idx=1:length(xis) xi = xis(idx); e = sqrt(10.^(xi/10)-1); H_gain = 1/(1+e^2*cs(n+1)^2); omega = 0:0.05:2; figure(1); xistr = sprintf('ξ=%.3gdB',xi); plot(omega, subs(H_gain, w, omega),'DisplayName',xistr); hold on; end nstr=sprintf('Chebyshev filter (n=%.3g)',n); figure(1); legend; title(nstr); n = 8; xis = [0.1 0.5 1.0]; for idx=1:length(xis) xi = xis(idx); e = sqrt(10.^(xi/10)-1); H_gain = 1/(1+e^2*cs(n+1)^2); omega = 0:0.05:2; figure(2); xistr = sprintf('ξ=%.3gdB',xi); plot(omega, subs(H_gain, w, omega),'DisplayName',xistr); hold on; end nstr=sprintf('Chebyshev filter (n=%.3g)',n); figure(2); legend; title(nstr); n = 10; xis = [0.1 0.5 1.0]; for idx=1:length(xis) xi = xis(idx); e = sqrt(10.^(xi/10)-1); H_gain = 1/(1+e^2*cs(n+1)^2); omega = 0:0.01:2; figure(3); xistr = sprintf('ξ=%.3gdB',xi); plot(omega, subs(H_gain, w, omega),'DisplayName',xistr); hold on; end nstr=sprintf('Chebyshev filter (n=%.3g)',n); figure(3); legend; title(nstr); big;