Jump to content
  • Advertisement
Sign in to follow this  

Phase vocoder previous FFT block doesn't matter?

This topic is 3559 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am implementing a phase vocoder, and I have basically made it work. However, I'm very concerned that my implementation does not rely on the previous FFT block for correcting the phase. My implementation simply adds the phase shift due to a block shift to the actual phase, and it works. But I am confused because every implementation I've ever seen, and documentation on the internet all use the previous FFT block's phase in their phase alignment calculations. I am wondering if I'm treating the phase incorrectly? I think maybe what is happening is that from block A to block B, the computed phase is very, very close. So when I correct the phase for the block shift, the signals do line up. However, if I were to get two blocks where the phase were very different, I might get some errors in the output signal since I didn't force the two phases to line up. On the other hand, isn't what I'm doing more accurate? It seems that the methods that rely on the phase from the previous FFT block are actually forcing a single phase value through for the entire stream, which does not seem like what should happen. It probably doesn't matter for high frequencies, but low frequencies should certainly be able to change their phase from block to block if necessary...right?

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!