% =================================================================
% Funcion coseno discreto y su respuesta en frecuencia.
% Es interesante comparar estas funciones con la funcion coseno
% continua y su transformada de Fourier.
%
% =================================================================
clear all;close all

L=50; % numero de muestras 

w0=pi/8;

% ---------------------
% boxcar discreto en un numero L de muestras
% ---------------------

n           = (0:L-1);  % muestras
cosn        = cos(w0*n);
    
% ---------------------
% Respuesta en frecuencia del coseno discreto
% ---------------------

N  = 1001; % puntos a evaluar de la rta. en frecuencia.
dw = 4*pi/N;
w  = (-N:N)*dw;

for j=1:length(w)
X(j)=(0.5*L)*diric(w(j)-w0,L)*exp(-i*0.5*(w(j)-w0)*(L-1))+ ...
     (0.5*L)*diric(w(j)+w0,L)*exp(-i*0.5*(w(j)+w0)*(L-1)); % utiliza la funcion diric
end


% ---------------------
% GRAFICOS
% ---------------------


figure(1);

subplot(2,1,1)
stem(n,cosn,"color","b","markersize",5,"filled")
axis([-L/4 5*L/4 -1.2 1.2])
xlabel('n')  
ylabel('x_n')  

subplot(2,1,2)

plot(w,abs(X),'r',"linewidth",2)
xt      = -2*pi:pi/2:2*pi;

xtlabel = ["-{/Symbol 2p}";"-3/2{/Symbol p}";"-{/Symbol p}";"-{/Symbol p}/2";"0";"{/Symbol p}/2";"{/Symbol p}";"3/2{/Symbol p}";"{/Symbol 2p}"];
set(gca,"xtick",xt,"xticklabel",xtlabel);
axis([-2*pi 2*pi 0 0.5*L])

xlabel('{/Symbol w}')  
ylabel('|X({/Symbol w})|')    

