Skip to main content
3 of 7
added 608 characters in body
Rio1210
  • 113
  • 8

How do I get the Time information after STFT?

I'm tring to code a STFT program in Matlab. I got results but I'm confused a bit. I have a audio signal of 900000 pts sampled at 1000Hz (15 min signal). I've taken fft with following parameters =>

  • hop size of H = 1400 pts

  • the window length M = H(1400)*6

So, 5/6 of the window overlaps with the next one. The program runs for 637 interation, as (637*1400 + M = 900200)

Now, I get a 637 pt vector with frequency in them. I should get a frequency vs time plot. But it only has 637 frequency bins, for a signal of 900000 time sample.

  1. How, can I find the change of frequency with Time (900000 sample) or 15 min?
  2. Moreover, how does changing the window length and overlap affect the outcome of STFT? Thanks The Code is below:
while k + M <= xlen %data chunk %window length & Window xw = x(k+1:k+M) .*w; %windowed signal %zero padding b = 5; %Zero Padding Factor 'b' xw = [xw; zeros(M*5,1)]; [nft,c] = size(xw); %plot(abs(fft(xw))) 
X = abs(fft(xw)); XF = X(1:length(X)/2); [q,ind] = max(XF); %take index of Max Amplitude v(j) = ((fs/2)/(nft/2)) * ind; %convert Bin to frequency k = k+L; j = j+1; end 
Rio1210
  • 113
  • 8