%% =================================================================
%% FILTROS ELEMENTALES CON UN SOLO CERO Y UN SOLO POLO
%% =================================================================

clear;
clf;

rho_P = 1.2; % defino el modulo del polo (fijo)
rho_0 = 1; % defino el modulo del cero (variar)

% Defino el titulo del gr�fico seg�n rho_0
titulo = strcat('{/Symbol r}_0=',num2str(rho_0));

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

Zp = rho_P*exp(1i*pi/4) % defino el polo (fijo)
Zo = rho_0*exp(1i*pi/4) % defino el cero (depende de rho_0)

N = length(Z);
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

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




% 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('arma.eps','-depsc'); % guardo el gr�fico
