
% un ejemplo de la relación entre FFT y convolución
% Clase de Procesamiento Digital de Señales
% Coordinación de Computación, INAOE
% Instructora: Dra. Pilar Gómez Gil. pgomez@inaoep.mx
% 23 de Octubre 2017

% Dos señales cualquiera:
x = [20 2 -5 4 2 -3 0 7 0 0 0 0 0 0 0 0]; 
h = [1  4  3 6 2 -1 3 4 0 0 0 0 0 0 0 0 ];

% x = [1 1 1 1 0 0 0 0 ]; 
% h = [1 1 1 1 0 0 0 0 ];

fprintf('=========INICIANDO LA EJECUCIÓN=======\n');

% transformada discreta de Fourier de las señales de entrada
FX = fft(x);   
FH = fft(h);

% convolución de las señales de entrada
y = conv(x,h);

% multiplicación de las DFT de las señales de entrada
alguna = FX.*FH;

% Cálculo de la inversa de la multiplicación 
invalguna = ifft(alguna);

% Comparación de los resultados
fprintf('\n ***********Señales originales:\n');
disp(x);
fprintf(' su tamaño es %d\n',length(x)');
disp(h);
fprintf(' su tamaño es %d\n',length(h)');
disp('oprima cualquier tecla para continuar');
pause;

fprintf('\n ***********Multiplicación de las frecuencias:\n');
disp(alguna);
fprintf(' su tamaño es %d\n',length(alguna)');
disp('oprima cualquier tecla para continuar');
pause;

fprintf('\n***********FFT inversa de la multiplicacion en frec:\n');
disp(invalguna);
fprintf(' su tamaño es %d\n',length(invalguna)');
disp('oprima cualquier tecla para continuar');
pause;

fprintf('\n ***********convolucion de las señales en tiempo:\n');
disp(y);
fprintf(' su tamaño es %d\n',length(y)');
fprintf('=========FIN DE LA EJECUCIÓN=======\n');


