Sign in to follow this  

Phase vocoder previous FFT block doesn't matter?

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this