%% =================================================================
%% Dada una frecuencia de muestreo "fS", se implementa la expresion para
%% obtener la frecuencia digitalizada "f0" respecto de una frecuencia
%% real "f",
%%
%% f = f0 + k fS
%%
%% =================================================================

close all  % cierro ventanas de graficos
clear      % limpio variables

%% =================================================================
%% Datos y parametros de interes
%% =================================================================

fS = 200.0;     % frecuencia de muestreo (sampling) en Hz
nf = 40;        % numero de frecuencias a considerar

fN = fS/2;      % frecuencia de Nyquist
dt = 1/fS;      % intervalo de muestreo temporal
df = 2*fS/nf;   % intervalo entre frecuencias

%% Se genera la frecuencia real "f" y se calcula la frecuencia
%% de la señal digital "f0" correspondiente


for i=1:nf 

  f(i)  = (i-1)*df;  % frecuencia de la senal continua
 
  k     = floor( f(i) / fS );                       % parte entera de f/fs
  f0(i) = f(i) - k * fS;   % Hasta aqui f0 <= fS
  
  if (f0(i) > fN)          % Ahora debe ser ademas  f0 <= fN
    f0(i) = f0(i) - fS;  % hay cambio de fase en pi para senales impares
  endif
  
endfor



% out=[f; f0]'; % El juego de frecuencias f,f0 consideradas

% =================================================================
%% SALIDA POR PANTALLA
% =================================================================

printf('Frecuencia de muestreo (Hz) '); fS
printf('Frecuencia de Nyquist  (Hz) '); fN
printf('Intervalo de muestreo   (s) '); dt

% =================================================================
%% GRAFICOS 
% =================================================================

clf;
subplot(1,3,1)
stem(f,f,'bo')
grid on
axis([0,2*fS,0,2*fS])
title('a) sin aliasing en frecuencia','fontsize',14)
xlabel('f  (Hz)')
ylabel('f0 (Hz)')


subplot(1,3,2)
stem(f,f0,'ro')
grid on
axis([0,2*fS,-fN,fN])
title('b) aliasing en frecuencia','fontsize',14)
xlabel('f (Hz)')
ylabel('f0 (Hz)')


subplot(1,3,3)
stem(f,abs(f0),'go')
grid on
axis([0,2*fS,0,fN])
title('c) aliasing en frecuencia','fontsize',14)
xlabel('f (Hz)')
ylabel('|f0| (Hz)')



% descomentar la siguiente linea para guardar grafico EPS)
% print('aliasing_frecuencias.eps','-deps');
