%% ====================================================
%% CORRIMIENTOS DE FASE Y ENVOLVENTE
%% 
%% !OBS: El directorio debe contener el código
%%       hilbert_ricker.m que genera un ondícula de
%%       Ricker y calcula su transformada de Hilbert.
%%       El directorio debe contener también la función
%%       ricker.m
%% ====================================================

clear all; close;

% ---------------------------------------------------
% 1. Corro el código hilbert.m que genera la ondícula
%    de Ricker (dato) y su transformada de Hilbert.
% ---------------------------------------------------

hilbert_ricker ; % rw: ondícula de Ricker
                 % hw; transformada de Hilbert de rw

% -------------------------------
% 2. Grafico la ondícula original
% -------------------------------

figure(1); clf;
hold on 
plot((-M:M).*dt,rw,';ondicula original;b','Linewidth',3)
axis([-M*dt,M*dt,-1.2,1.2])
		 
% -----------------------------------------------
% 3. Genero los corimientos de fase y los grafico
% -----------------------------------------------

for ang = 10:10:360;
  corri = ang*pi/180 ;
  srw = cos(corri)*rw+sin(corri)*hw ; % corrimiento de fase
  sleep(0.2) ;                 % Espero entre gráficos
  if (ang == 10)               % Para poner la leyenda una única vez
    plot((-M:M).*dt,srw,';corrimientos de fase;b') ; 
  elseif (ang == 90)           % Transformada de Hilbert
    plot((-M:M).*dt,srw,';Transformada de Hilbert;g','Linewidth',3) ;
  else
    plot((-M:M).*dt,srw,'b') ; % grafico el resto de los corrimientos
  endif
end

% -----------------------------------------------------------
% 4. Calculo la senal analítica y la envolvente y las grafico
% -----------------------------------------------------------

gw  = rw - 1i*hw;   % señal anílitica
env = abs(gw);      % envolvente

plot((-M:M).*dt,env,';Envolvente;r','Linewidth',3) ; % envolvente superior
plot((-M:M).*dt,-env,'r','Linewidth',3) ;            % envolvente inferior

hold off % cierro gráfico.

% ----------------------------------
% Guardo el gráfico en un postscript
% ----------------------------------

print('corr_fase.eps','-depsc') ;
