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.
Saludos y gracias.
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


0