DSPRelated.com
Forums

Phase vocoder implementation

Started by Sanjeev November 16, 2006
Dear all,

I wonder whether you can help me. I recently stumbled across the
paper "Improved Phase vocoder Time-scale modification of Audio", and
have tried rather unsuccessfully to implement it in Matlab.
Therefore, I would be ever so grateful for some hints as to where I
seem to be going wrong, or even some Matlab code (if you have it, and
are willing to send it to me).

I believe the source of my problem lies in the phase unwrapping
section or phase updating section, where 'Phia2' is present phase
analysis frame, 'Phia1' is previous phase analysis frame and 'Phis2'
is the present synthesis phase frame. Here is a piece of my Matlab
code that implements the horizontal phase unwrapping. Perhaps you can
see a mistake ?

>> Phis2=Phia1;
>> wk=2*pi*n/N;
>> het_ph_inc=mod(Phia2(n)-Phia1(n)-(Ra*wk),2*pi)-pi;
>> w_k_hat=wk + (het_ph_inc/Ra)
>> Phis2(n) = Phis1(n) + (Rs*w_k_hat);

Where, 'n' is the position of the peak found using the peak picking
algorithm, 'N' is 1024 and Ra=Rs8. I'm testing this program on a
single sinewave, but do not seem to get a sensible output waveform.

Any comments will be greatly appreciated.

With best regards,

Sanjeev.
--- In a..., "Sanjeev" wrote:
>
> Dear all,
>
> I wonder whether you can help me. I recently stumbled across the
> paper "Improved Phase vocoder Time-scale modification of Audio", and
> have tried rather unsuccessfully to implement it in Matlab.
>

Perhaps you could post a link to the paper? That way it might be
easier to assist you.