# Regarding the Linear prediction

Started by September 25, 2007
```Hi,

I am currently trying to implement the linear prediction analysis in c to
decorrelate the speech signal. I have implemented the livenson durbin code
in C. Is there any method to cross check that the linear filter coefficient
are correct. And I also want to know  what will be the effect of the order
on decorrelation. If i want to decorrelate the speech signal and convert
it as a white noise which order filter is suitable. Thanks in advance.

Regards,
Neelufar.
```
```On Sep 25, 7:44 am, "neelufar.2005" <neelufar.2...@gmail.com> wrote:
> Hi,
>
> I am currently trying to implement the linear prediction analysis in c to
> decorrelate the speech signal. I have implemented the livenson durbin code
> in C. Is there any method to cross check that the linear filter coefficient
> are correct. And I also want to know  what will be the effect of the order
> on decorrelation. If i want to decorrelate the speech signal and convert
> it as a white noise which order filter is suitable. Thanks in advance.
>
> Regards,
> Neelufar.

Cross-checking the Levinson-Durbin algorithm's output is easy.
Remember, the algorithm gives you a fast solution to the system

Ax = b

where A is a Toeplitz matrix and x and b are vectors. After you
complete the algorithm, you get the filter coefficient vector, which
is x in the above example. To check the result, you can premultiply
the vector by the matrix A to ensure you get b out.

Jason

```
```
neelufar.2005 wrote:
> Hi,
>
> I am currently trying to implement the linear prediction analysis in c to
> decorrelate the speech signal. I have implemented the livenson durbin code
> in C. Is there any method to cross check that the linear filter coefficient
> are correct.

Look at the spectrums of the original and filtered signals. The LPC
action is immediately seen.

> And I also want to know  what will be the effect of the order
> on decorrelation. If i want to decorrelate the speech signal and convert
> it as a white noise which order filter is suitable. Thanks in advance.

Generally, the higher is the order the better is the result. However
from the practical standpoint the order of 10 is adequate for the 8kHz
sampled speech.

DSP and Mixed Signal Design Consultant
http://www.abvolt.com
```
```>> I am currently trying to implement the linear prediction analysis in c to
>> decorrelate the speech signal. I have implemented the livenson durbin
>> code
>> in C. Is there any method to cross check that the linear filter
>> coefficient
>> are correct.
>
> Look at the spectrums of the original and filtered signals. The LPC action
> is immediately seen.

And how does "comparing spectrums" verify that his implementation of
the levinson-durbin algorithm is correct?

```
```>On Sep 25, 7:44 am, "neelufar.2005" <neelufar.2...@gmail.com> wrote:
>> Hi,
>>
>> I am currently trying to implement the linear prediction analysis in c
to
>> decorrelate the speech signal. I have implemented the livenson durbin
code
>> in C. Is there any method to cross check that the linear filter
coefficient
>> are correct. And I also want to know  what will be the effect of the
order
>> on decorrelation. If i want to decorrelate the speech signal and
convert
>> it as a white noise which order filter is suitable. Thanks in advance.
>>
>> Regards,
>> Neelufar.
>
>Cross-checking the Levinson-Durbin algorithm's output is easy.
>Remember, the algorithm gives you a fast solution to the system
>
>Ax = b
>
>where A is a Toeplitz matrix and x and b are vectors. After you
>complete the algorithm, you get the filter coefficient vector, which
>is x in the above example. To check the result, you can premultiply
>the vector by the matrix A to ensure you get b out.
>
>Jason
>
> Hi Jason,

Thanks for replying for my question now I have got idea how to cross check
the linear prediction coefficient.

I have another question which is regrding windowing which is done before
LCP, where we have a frame of size 240 samples i.e 40 samples from past,
80 samples of present frame and 40 samples from future. I am using the
linear prediction analysis for decorrelation of signal, got from acoustic
echo cancellation. I can store the 40 samples from past but how can I get
the future 40 samples. Can you please tell me how to construct a frame for

Regards,
Neelufar.
>
```
```On Sep 25, 7:44 am, "neelufar.2005" <neelufar.2...@gmail.com> wrote:
> Hi,
>
> I am currently trying to implement the linear prediction analysis in c to
> decorrelate the speech signal. I have implemented the livenson durbin code
> in C. Is there any method to cross check that the linear filter coefficient
> are correct. And I also want to know  what will be the effect of the order
> on decorrelation. If i want to decorrelate the speech signal and convert
> it as a white noise which order filter is suitable. Thanks in advance.
>
> Regards,
> Neelufar.

Filter white noise with a filter, and then feed this into your LPC
code. The LPC coefficient should converge to the filter coefficients
of the one used to filter the white noise ... assuming the filters
have the same order. You can also look at the spectrum of the error of
the LPC, which should be white.

Best,
David

```
```On 25 Sep, 13:44, "neelufar.2005" <neelufar.2...@gmail.com> wrote:
> Hi,
>
> I am currently trying to implement the linear prediction analysis in c to
> decorrelate the speech signal. I have implemented the livenson durbin code
> in C. Is there any method to cross check that the linear filter coefficient
> are correct. And I also want to know  what will be the effect of the order
> on decorrelation. If i want to decorrelate the speech signal and convert
> it as a white noise which order filter is suitable. Thanks in advance.

First you need to check the numerical integrity of your code.
The Levinson recursion is a fast way to solve a system

Ax = b

for x given a nonpositive definite A. You need to start with a system
that can be solved with the Levinson recursion (i.e. which satisfies
the requirements to symmetry), solve with your own code and then
with a standard solver, and check that the solutions are similar.

Next, test a singular A. In this case the Levinson reflection at the
rank(A)'th iteration should vanish and the Levinson recursion
terminate.

Then add an order estimator (Akaike's Information Criterion
is a good place to start.) Once you have done that, make an
AR(D) signal and solve for the coefficients to check that your