%--------------------------------------------------------
%   Ejemplo: Espectro de Señales de Banda no Limitada
%   
%   xa(t)= exp(-A |t|)  ; A > 0
%--------------------------------------------------------
% Espectro de la señal analogica: Xa(F)
% Probar con distintos valores de A
%--------------------------------------------------------
F=[-100:0.001:100-0.001];           % frecuencias continuas
A=20;
Xa=2*A./(A^2+(2*pi*F).^2);
figure(1)
plot(F,Xa)
title('Espectro de la señal')
%--------------------------------------------------------
% Espectro de la señal muestreada: X(F)/Fs
% Probar con distintas frecuencias de muestreo Fs
%--------------------------------------------------------
Fs=1000;                             % frecuencia de muestreo
w=[-pi:2*pi/2000:pi-2*pi/2000];      % pulsacion discreta
X=(1-exp(-2*A/Fs))./(1-2*exp(-A/Fs)*cos(w)+exp(-2*A/Fs));
figure(2),
plot(w/(2*pi)*Fs,abs(X)/Fs)
title('Espectro de la señal discreta')
axis([-100, 100-0.001, 0, max(abs(X))/Fs])
%--------------------------------------------------------
% Espectro de la señal muestreada truncada: Xhat(F)/Fs
%--------------------------------------------------------
% Probar para diferentes valores de L
% Notar que al incrementarse L se obtiene una mejor aproximacion
%--------------------------------------------------------
n=[-100:1/Fs:100-(1/Fs)];
x=exp(-A*abs(n));
L=200;               %Longitud de la ventana (debe ser numero par)
Xhat=fft(x(100000-(L/2):100000+(L/2)),2^15);
w=[-pi:2*pi/length(Xhat):pi-2*pi/length(Xhat)];
f=w/(2*pi);
Fd=Fs*f;
figure(3),plot(Fd,abs(fftshift(Xhat))/Fs)
axis([-100, 100-0.001, 0, max(abs(Xhat))/Fs])
title('Espectro de la señal discreta truncada usando la FFT')