% =================================================================
% BOXCAR/SINC
% =================================================================

clear all; close all % limpio variables y cierro ventanas


% Parametros del problema

dt = 0.01 ;           % intervalo espacial, (s)
t  = -20 : dt : 20 ;  % defino el vector del dominio del tiempo
n  = length(t) ;      % cantidad de elementos vector t

dw = 0.01 ;           % intervalo en frecuencia, (Hz)
w  = -10 : dw : 10 ;  % defino el vector de las frecuencias
m  = length(w) ;      % cantidad de elementos vector w


for t0 = 1:10 % bucle sobre el valor de t0

  % EN TIEMPO (boxcar(t))

    for i = 1:n
      if t(i) < -t0
          cajon(i) = 0 ;
      elseif -t0 < t(i) && t(i) < t0
          cajon(i) = 1 ;
      else
          cajon(i) = 0 ;
      end
  end
  
  % otra forma:
  %  cajon(n)=0.; % "cajon" es cero excepto cuando ...
  % for i = 1:n
  %    if -t0 < t(i) && t(i) < t0 ... se cumple esta condicion
  %        cajon(i) = 1 ;
  %    end
  % end
    
  % EN FRECUENCIA (sin(w)/w)


  for j = 1:m
      sinc(j) = 2.0*t0*sin(w(j)*t0) / (w(j)*t0) ;
  end
  
  % =================================================================
  % GRAFICOS
  % =================================================================
  
  clf ; % limpio grafico

  subplot(2,1,1) % PANEL SUPERIOR

  plot(t,cajon,'b') % grafico en tiempo

  xlabel('tiempo')         % agrego etiqueta al eje x
  ylabel('amplitud')       % agrega etiqueta al eje y
  legend('cajon (boxcar)') % agrega etiqueta de la curva que grafica
  grid on                  % dibuja una grilla sobre el area  del grafco 
  axis([-20 20 -0.2 1.2])  % define límite de los ejes [x1 x2 y1 y2]

  
  subplot(2,1,2) % PANEL INFERIOR
  
  plot(w,sinc,'r') % grafico en frecuencia
  
  xlabel('frecuencia angular')   % agrega etiqueta al eje x
  ylabel('amplitud')             % agrega etiqueta al eje y
  legend('seno cardinal (sinc)') % agrega etiqueta de la curva que grafica
  grid on                        % dibuja una grilla sobre el area  del grafco 
  axis([-10 10 -5 20])  % define límite de los ejes [x1 x2 y1 y2]

  
  sleep(1) % espero para que no se borre el gráfico
end % cierro el bucle principal para el t0
