In an implementation of phase vocoder using Python, I found the author get an approximation of the fundamental frequency of STFT using the following formula:

Freq0 = B/A * abs(B/A)

where B is the fft of the first windowed frame and A is the fft of the second whose starting point is Ra(analysis hop size) behind that of B. I try my best to understand this formula but still can't figure out why it approximates the fundamental frequency. Can anyone explain this? It'd be great if detailed mathematical derivation is given. Thanks in advance.

  • $\begingroup$ Seems that the author is making a spectral approximation between the two FFT's, later he uses this approximation to resynthesize using an IFFT, I noticed that he is not dealing with the phase in this implementation, well I do not know how good is it lol $\endgroup$ – ederwander Feb 25 '19 at 13:18
  • $\begingroup$ The resynthesized result is surprisingly good by stretching the time axis while maintaining the intelligibility of the original data. I can see he approximates the fundamental frequency between two FFT's, but can't figure out how he derived the above formula $\endgroup$ – Steven Chan Feb 26 '19 at 0:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.