To solve for the linear prediction coefficients , a(i), i=1:p, you need to
the Yule-Walker equation
where R=[r(0), r(1), ... , r(p-1);
r(-1), r(0), ...., r(p-2);
r(1-p), r(2-p), ...., r(0)];
and x(i)=r(-i), i=1:p;
with r(k) the autocorrelation at lag k. Once you have r, (using xcorr for
example), form R and x, and solve either by inverting R directly or using
I think the matlab LPC function returns the prediction error filter
coefficients, b, which are related to the linear prediction coefficients via
You might expect to get slightly different answers depending on how the
autocorrelation sequence is calculated.
Hope this helps.
Henry Wijaya wrote:
> Hi, is anybody familiar with LPC analysis? I tried to write a code that
> computes the LPC coefficients of a given signal sequence using
> 'autocorrelation method' and 'Durbin's recusion algorithm' to solve for the
> coefficients. It seems to computes correctly according to the equation:
> [R(i,j)]. [a] = [R(i)] ; i = 1,2,...,p
> The result that I got agrees with matrix inversion method, that is:
> [a] = inv([R(i,j)]).[R(i)]
> , but when I compare my result with the result when using 'LPC' function in
> MATLAB, they are different.
> Anybody has any idea why direct implementation of autocorrelation followed
> by Durbin's recursion doesn't give the correct result?
> Thanks in advance
Dr. Steve Hayward MIMA, C.Math
Signal Processing Group, Room E511,
DERA Malvern, St. Andrews Road,
Malvern, Worcs., WR14 3PS, UK.
tel: +44 (0) 1684 894532
fax: +44 (0) 1684 896502
The views expressed herein are entirely those of the writer, and do not
represent the views, policy or understanding of any other person or
The Information contained in this E-Mail and any subsequent
correspondence is private and is intended solely for the intended
recipient(s). For those other than the intended recipient any
disclosure, copying, distribution, or any action taken or omitted to be
taken in reliance on such information is prohibited and may be unlawful.