Info
This question is closed. Reopen it to edit or answer.
IIR filter, Bandpass butterworth, cheb1,cheb2
6 views (last 30 days)
Show older comments
Butterworth
clear
close all
clc
wm = 200e3;
fm = wm/2/pi;
wp = [14e3 16e3];
Ap = 1;
ws = [10e3 20e3];
As = 40;
wap = wm/pi*tan(wp/wm*pi);
was = wm/pi*tan(ws/wm*pi);
wx2 = prod(wap);
if prod(was)<wx2
was(1) = wx2/was(2);
else
was(2) = wx2/was(1);
end
wlpp = wap(2)-wap(1);
wlps = was(2)-was(1);
e2 = 10^(Ap/10)-1;
n = log10(sqrt((10^(As/10)-1)/e2))/log10(wlps/wlpp);
n = ceil(n);
wc = wlpp/(e2^(1/n/2));
[Z, P, K] = buttap(n);
[Bn, An] = zp2tf(Z, P, K);
[B, A] = lp2bp(Bn, An, sqrt(wx2), wc);
[Bz, Az] = bilinear(B, A, fm);
figure();
freqz(Bz, Az, 5000, fm);
figure();
grpdelay(Bz, Az, 5000, fm);
figure();
impz(Bz,Az,50);
Cheb1
clear
close all
clc
wm = 200e3;
fm = wm/2/pi;
wp = [14e3 16e3];
Ap = 1;
ws = [10e3 20e3];
As = 40;
wap = wm/pi*tan(wp/wm*pi);
was = wm/pi*tan(ws/wm*pi);
wx2 = prod(wap);
if prod(was)<wx2
was(1) = wx2/was(2);
else
was(2) = wx2/was(1);
end
wlpp = wap(2)-wap(1);
wlps = was(2)-was(1);
e2 = 10^(Ap/10)-1;
n = acosh(sqrt((10^(As/10)-1)/e2))/acosh(wlps/wlpp);
n = ceil(n);
wc = wlpp;
[Z, P, K] = cheb1ap(n, Ap);
[Bn, An] = zp2tf(Z, P, K);
[B, A] = lp2bp(Bn, An, sqrt(wx2), wc);
[Bz, Az] = bilinear(B, A, fm);
figure();
freqz(Bz, Az, 5000, fm);
figure();
grpdelay(Bz, Az, 5000, fm);
figure();
impz(Bz,Az,50);
Cheb2
clear
close all
clc
wm = 200e3;
fm = wm/2/pi;
wp = [14e3 16e3];
Ap = 1;
ws = [10e3 20e3];
As = 40;
wap = wm/pi*tan(wp/wm*pi);
was = wm/pi*tan(ws/wm*pi);
wx2 = prod(wap);
if prod(was)<wx2
was(1) = wx2/was(2);
else
was(2) = wx2/was(1);
end
wlpp = wap(2)-wap(1);
wlps = was(2)-was(1);
e2 = 1/(10^(As/10)-1);
n = acosh(sqrt(1/(10^(Ap/10)-1)/e2))/acosh(wlps/wlpp);
n = ceil(n);
wc = wlps;
[Z, P, K] = cheb2ap(n, As);
[Bn, An] = zp2tf(Z, P, K);
[B, A] = lp2bp(Bn, An, sqrt(wx2), wc);
[Bz, Az] = bilinear(B, A, fm);
figure();
freqz(Bz, Az, 5000, fm);
figure();
grpdelay(Bz, Az, 5000, fm);
figure();
impz(Bz,Az,50);
1 Comment
Answers (0)
This question is closed.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!