Re: Levinson-Durbin Recursion revisited



On Nov 19, 3:06 pm, "panu" <pan...@xxxxxxxxx> wrote:
I know this subject has been discussed in the past on this site in relation
to inverse filter design, and this is also the subject of this post. My
specific application is acoustics. If you have experience with the
Levinson-Durbin algorithm in C/C++ I could use your help.

I have been using the code found athttp://kbs.cs.tu-berlin.de/~jutta/gsm/lpc.html
to try to implement the algorithm in C to replicate results given in
matlab for the simple command:

levinson(autocorM,lpclength);

levinson() in matlab produces a set of filter coefficients that is the
same length as the autocorrelation function, and this filter deconvolves
the impulse response in matlab.

However, the few C implementations that I have seen have as a a parameter
an autocorrelation buffer (autocorC) which is one sample longer (N+1) than
the lpc coefficients.

I am not able to reproduce my matlab result, the closest I can get in my
C++ project is when
length(autocorC) = length(autocorM)+1,
and the result is identical, except one less sample in the beginning and
one more at the end. Thus a shift of one will give me a perfect match
except for a zero in the first bin, which is crucial!

Any advice would be appreciated,
Panu

Hello Panu,

Try looking up Panos Papamichalis' book "Practical Approaches to
Speech Coding." In here you will find good code not only on the LPC
analysis but also finding the PARCORs (if you are using those).

You do know that MATLAB uses indices starting at 1 and not at 0. Could
that be your problem? In C when you define your array, just use a
pointer to it offset by one or just waste the extra ram (a small
amount). At lot of DSP code (especially old stuff from the Fortran
days) is designed to use origin 1 instead of origin 0.

Clay



.



Relevant Pages

  • Re: Levinson-Durbin Recursion revisited
    ... to inverse filter design, and this is also the subject of this post. ... the impulse response in matlab. ... an autocorrelation buffer which is one sample longer than ... the lpc coefficients. ...
    (comp.dsp)
  • Re: Levinson-Durbin Recursion revisited
    ... to inverse filter design, and this is also the subject of this post. ... levinsonin matlab produces a set of filter coefficients that is the ... an autocorrelation buffer which is one sample longer than ...
    (comp.dsp)
  • Levinson-Durbin Recursion revisited
    ... to inverse filter design, and this is also the subject of this post. ... levinsonin matlab produces a set of filter coefficients that is the ... an autocorrelation buffer which is one sample longer than ...
    (comp.dsp)
  • Re: some suggestions on my octave-band spectrogram analysis in fixed point DSP implementation
    ... i am aiming to design a 1/3 octave band spctrogram for vibration ... I use the digital 1/3 octave bandpass filter banks to achieve my goal. ... I did it in MATLAB. ... But after the implementation inside the fixed point dsp TMS320LF2407 ...
    (comp.dsp)
  • Re: Low pass filter
    ... I am currently doing Matlab project to analyse heart sounds. ... But can someone teach me how i can use low pass filter to remove the low frequencies? ...
    (comp.soft-sys.matlab)