Matlab - Problema transf Fourier

   
Vista:

Problema transf Fourier

Publicado por Ivan Palomares (24 intervenciones) el 20/11/2013 10:05:51
Saludos.

Vereis tengo que realizar un transformada en tiempo corto de fourier utilizando la fft.
Despues de buscar por internet encontre el siguiente codigo, pero no entiendo muy bien lo que hace.

Para ejecutar el siguiente codigo tienes que pasarle una señal en el tiempo, una ventana (hamming o hanning) y luego el paso con el que desplazaras la ventana.

Pues bien, de todo el proceso hay dos partes que no entiendo, una es donde hacer un zero padding y la otra es donde hace uso de la fft para realizar la transformada.

Aqui adjunto el codigo.
1
2
3
4
5
6
7
8
9
10
function X = stft(x,win,stp)
 
l = length(x);
N = length(win);
m = ceil((N-stp+l)/stp);
x = [zeros(N-stp,1);x;zeros(m*stp-l,1)]; % Zero-padding NO LO ENTIENDO!!!!
X = zeros(N,m);
for j = 1:m
    X(:,j) = fft(x((1:N)+stp*(j-1)).*win);  % Enventanado y fft, aqui es donde reside mi segunda duda
end


Saludos y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder