% programa para ver el efecto del tamaño de la ventana en un espectograma
% usando la función chirp como ejemplo
% clase procesamiento de señales, coordinación de computación INAOE
% Hecho por Pilar Gómez-Gil.
%7 de Noviembre 2017

clear all;
close all;
%creando uns función Chirp 
% generación de los valores en el eje x.
% El tiempo va de 0 a 2 segundos, con una frecuencia de muestreo de 1KHz
t=[0:0.001:2];

% generación de una función con frecuencia de barrido iniciando en 0 (DC)
% y terminando en 150
c= chirp(t,0,2,150);

%graficado de 1024 puntos de la funcion
figure(1);
plot(t(1:1024),c(1:1024))
title('1024 puntos de la función chirp con frecuencia de muestreo de 1 KHz','FontSize',12,'FontWeight','bold');
xlabel('Tiempo en segundos (N = 1024 puntos)','FontSize',12,'FontWeight','bold');
ylabel('Amplitud','FontSize',12,'FontWeight','bold');

% calculo de espectogramas usando diferentes ventanas
v={16,32,64,128}; % define el tamaño de 4 posibles ventans
for i=1:1:4
    figure(i+1);
    w = v{i};
    disp(fprintf('para un calculo con ventana de %d elementos se usan %d segmentos \n',w,1024/w));
    % y{i}= specgram(c(1:1024),w);
    y{i}= spectrogram(c(1:1024),w);
    s= size(y{i});
    disp(fprintf('las dimensiones del espectograma son %d x %d \n',s(1),s(2))); 
    % specgram(c(1:1024),w);
    spectrogram(c(1:1024),w);
    title('Espectograma de la función chirp con ventana definida','FontSize',12,'FontWeight','bold');
end
    

