% =================================================================
% FILTRO PASA-TODO CON CAMBIO DE FASE
% =================================================================

clear;
clf;

Zp = 1.2*exp(1i*pi/4) % defino el polo
Zo = 1/conj(Zp)       % defino el cero



W = -pi:pi/100:pi; % vector frec. ang. dig.
Z = exp(-1i*W);    % vector Z para evaluar H(Z)
N = length(W);

for i = 1:N
  H(i) = (Z(i)-Zo)/(Z(i)-Zp); % defino la respuesta de frecuencia
end

AMP = abs(H);   % espectro de amplitud
FAS = -angle(H); % espectro de fase [-pi,+pi]
FAS = unwrap(FAS); % espectro de fase  en [0,2pi]

% NOTA: NO SIEMPRE HAY QUE HACER ESTO
%for i = 1:N
%  if and (FAS(i) < 0, W(i) < 0)
%    FAS(i) = FAS(i) + 2*pi; 
%  end
%end




titulo = 'Pasa todo con cambio de fase';

% Preparo los tics para los gráficos
xt      = -pi:pi/4:pi;
xtlabel = ['{/Symbol -p}';'{/Symbol -3p/4}';'{/Symbol -p/2}';'{/Symbol -p/4}';...
           '0';'{/Symbol p/4}';'{/Symbol p/2}';'{/Symbol 3p/4}';'{/Symbol p}'];
yt      = [0 1 2*pi];
ytlabel = ['0';'1';'{/Symbol 2p}'];

plot(W,AMP,'r-;Amplitud;',"linewidth",2); hold on
plot(W,FAS,'b:;Fase;',"linewidth",2); hold off
title(titulo,"fontsize",14)
xlabel('Frecuencia {/Symbol w}',"fontsize",14)
axis([-pi pi -0.5 2*pi+0.5])
set(gca,"xtick",xt,"xticklabel",xtlabel,"ytick",yt,"yticklabel",ytlabel);

%print('pasatodo.eps','-depsc'); % guardo el gráfico
