Contents

% analysis of 2nd order sections
% lab3_3.m * mw * 03/06/2007

Zero-pole plots

FIG1 = figure('Name','lab3_3 : zero-pole plots ',...
    'NumberTitle','off');
for k=1:3
    subplot(2,2,k), zplane(SOS(k,1:3),SOS(k,4:6)) % section k
    title(['Section ',num2str(k)])
end
[b,a] = sos2tf(SOS,G); % complete system direct form II
subplot(2,2,4), zplane(b,a)
title('Cascade')

Frequency responses

N = 1024;
[H,w] = freqz(b,a,N);
HS = zeros(3,N);
for k=1:3
    HS(k,:) = freqz(G(1)^(1/3)*SOS(k,1:3),SOS(k,4:6),N);
end
FIG3 = figure('Name','lab3_3 : Frequency responses ',...
    'NumberTitle','off');
subplot(2,2,1),plot(w/pi,abs(HS(1,:)),w/pi,abs(HS(2,:)),w/pi,abs(HS(3,:))), grid
xlabel('\Omega / \pi \rightarrow'), ylabel('|H_i(ej\Omega)| \rightarrow')
title('Section 1,2 and 3')
subplot(2,2,3),plot(w/pi,20*log10(abs(HS(1,:))),w/pi,20*log10(abs(HS(2,:))),...
    w/pi,20*log10(abs(HS(3,:)))), grid
xlabel('\Omega / \pi \rightarrow'), ylabel('|H_i(e^{j\Omega})| in dB \rightarrow')
title('Section 1,2 and 3')
subplot(2,2,2),plot(w/pi,abs(HS(1,:).*HS(2,:).*HS(3,:))), grid
xlabel('\Omega / \pi \rightarrow'), ylabel('|H(ej\Omega)| \rightarrow')
title('Cauer lowpass')
subplot(2,2,4),plot(w/pi,20*log10(abs(HS(1,:).*HS(2,:).*HS(3,:)))), grid
xlabel('\Omega / \pi \rightarrow'), ylabel('|H(e^{j\Omega})| in dB \rightarrow')
title('Cauer lowpass')

Alternative zero-pole grouping

H13 = freqz(G(1)^(1/3)*SOS(1,1:3),SOS(3,4:6),N);
FIG3 = figure('Name','lab3_3 : Frequency responses ','NumberTitle','off');
subplot(2,1,1),plot(w/pi,abs(HS(3,:)),w/pi,abs(H13)), grid
xlabel('\Omega / \pi \rightarrow'), ylabel('|H_i(ej\Omega)| \rightarrow')
subplot(2,1,2),plot(w/pi,20*log10(abs(HS(3,:))),w/pi,20*log10(abs(H13))), grid
xlabel('\Omega / \pi \rightarrow'), ylabel('|H_i(e^{j\Omega})| in dB \rightarrow')