%
% IIR-design på slutten av forelesing i INF3470
%
% S Holm, 19.11.2013
%
disp('Krav:')
disp('------------------------------------------')
echo on
Fsample=4;      % samplefrekvens, kHz 
Fp=0.8;         % passbånd slutt, kHz, 
Fs=1;           % stoppbånd start, kHz 
alpha_p = 0.5;  % max passbånd ripple, dB 
alpha_s=40;     % max stoppbånd ripple, dB
echo off
disp('------------------------------------------')
pause

maxdB = 10; % in display
mindB = -50; % in display
maxphi = 0; % in phase display
minphi = -1500; % in phase display

disp('Butterworth')
[Nb,Fb] = buttord(Fp/(Fsample/2), Fs/(Fsample/2), alpha_p, alpha_s)
disp(['-3 dB ved ',num2str(Fb)])
[b, a] = butter(Nb, Fb);
figure(1)
freqz(b,a);
title(['Butterworth, orden ',num2str(Nb)])
axis([0 1 mindB maxdB])
subplot(2,1,2)
axis([0 1 minphi maxphi])

pause
disp('Tsjebysjeff I')
[Nc1,Fc1] = cheb1ord(Fp/(Fsample/2), Fs/(Fsample/2), alpha_p, alpha_s)
disp(['Slutten av passbånd ved ',num2str(Fc1)])
[b, a] = cheby1(Nc1, alpha_p, Fc1);
figure(2)
freqz(b,a);
title(['Tsjebysjeff I, orden ',num2str(Nc1)])
axis([0 1 mindB maxdB])
subplot(2,1,2)
axis([0 1 minphi maxphi])

pause
disp('Tsjebysjeff II')
[Nc2,Fc2] = cheb2ord(Fp/(Fsample/2), Fs/(Fsample/2), alpha_p, alpha_s)
disp(['Begynnelsen av stoppbånd ved ',num2str(Fc2)])
[b, a] = cheby2(Nc2, alpha_s, Fc2);
figure(3)
freqz(b,a);
title(['Tsjebysjeff II, orden ',num2str(Nc2)])
axis([0 1 mindB maxdB])
subplot(2,1,2)
axis([0 1 minphi maxphi])

pause
disp('Elliptisk')
[Ne,Fe] = ellipord(Fp/(Fsample/2), Fs/(Fsample/2), alpha_p, alpha_s)
disp(['Slutten av passbånd ved ',num2str(Fe)])
[b, a] = ellip(Ne, alpha_p, alpha_s, Fe);
figure(4)
freqz(b,a);
title(['Elliptisk, orden ',num2str(Ne)])
axis([0 1 mindB maxdB])
subplot(2,1,2)
axis([0 1 minphi maxphi])
disp(' ')
disp('Zoom inn på passbåndene i plottene for å se ripple!')