Hello;
I was wondering if anyone would be willing to share or direct me towards some
Java or C code on how to convert from Linear Prediction Coefficients to Line
Spectral Frequencies and vice versa.
I am able to generate the LP coefficients using the Levinson algorithm, but am
looking for some help to get to LS frequencies.
Thanks.
Regards,
Ray
LPC to LSF Source Code
Started by ●February 18, 2008
Reply by ●March 7, 20082008-03-07
please refer Itu G.729 source code.
Hello;
>
>I was wondering if anyone would be willing to share or direct me towards some Java or C code on how to convert from Linear Prediction Coefficients to Line Spectral Frequencies and vice versa.
>
>I am able to generate the LP coefficients using the Levinson algorithm, but am looking for some help to get to LS frequencies.
>Thanks.
>
>Regards,
>Ray
Hello;
>
>I was wondering if anyone would be willing to share or direct me towards some Java or C code on how to convert from Linear Prediction Coefficients to Line Spectral Frequencies and vice versa.
>
>I am able to generate the LP coefficients using the Levinson algorithm, but am looking for some help to get to LS frequencies.
>Thanks.
>
>Regards,
>Ray
Reply by ●June 26, 20082008-06-26
Hello;
>
>I was wondering if anyone would be willing to share or direct me towards some Java or C code on how to convert from Linear Prediction Coefficients to Line Spectral Frequencies and vice versa.
>
>I am able to generate the LP coefficients using the Levinson algorithm, but am looking for some help to get to LS frequencies.
>Thanks.
>
>Regards,
>Ray
hi,
This code provided in matlad
function lsf = poly2lsf(a)
%POLY2LSF Prediction polynomial to line spectral frequencies.
% LSF = POLY2LSF(A) converts the prediction polynomial specified by A,
% into the corresponding line spectral frequencies, LSF.
%
% POLY2LSF normalizes the prediction polynomial by A(1).
%
% See also LSF2POLY, POLY2RC, POLY2AC, RC2IS.
% Author(s): A.Ramasubramanian
% Copyright 1988-2002 The MathWorks, Inc.
% $Revision: 1.7 $ $Date: 2002/04/15 01:15:43 $
%
% Reference:
% A.M. Kondoz, "Digital Speech: Coding for Low Bit Rate Communications
% Systems" John Wiley & Sons 1994, Chapter 4.
a = a(:);
if ~isreal(a),
error('Line spectral frequencies are not defined for complex polynomials.');
end
% Normalize the polynomial if a(1) is not unity
if a(1) ~= 1.0,
a = a./a(1);
end
if (max(abs(roots(a))) >= 1.0),
error('The polynomial must have all roots inside of the unit circle.');
end
% Form the sum and differnce filters
p = length(a)-1; % The leading one in the polynomial is not used
a1 = [a;0];
a2 = a1(end:-1:1);
P1 = a1-a2; % Difference filter
Q1 = a1+a2; % Sum Filter
% If order is even, remove the known root at z = 1 for P1 and z = -1 for Q1
% If odd, remove both the roots from P1
if rem(p,2), % Odd order
P = deconv(P1,[1 0 -1]);
Q = Q1;
else % Even order
P = deconv(P1,[1 -1]);
Q = deconv(Q1,[1 1]);
end
rP = roots(P);
rQ = roots(Q);
aP = angle(rP(1:2:end));
aQ = angle(rQ(1:2:end));
lsf = sort([aP;aQ]);
% [EOF] poly2lsf.m
can you help me to solve this problem?
I need log spectral distortion formula between quantized LPC and original LPC.
>
>I was wondering if anyone would be willing to share or direct me towards some Java or C code on how to convert from Linear Prediction Coefficients to Line Spectral Frequencies and vice versa.
>
>I am able to generate the LP coefficients using the Levinson algorithm, but am looking for some help to get to LS frequencies.
>Thanks.
>
>Regards,
>Ray
hi,
This code provided in matlad
function lsf = poly2lsf(a)
%POLY2LSF Prediction polynomial to line spectral frequencies.
% LSF = POLY2LSF(A) converts the prediction polynomial specified by A,
% into the corresponding line spectral frequencies, LSF.
%
% POLY2LSF normalizes the prediction polynomial by A(1).
%
% See also LSF2POLY, POLY2RC, POLY2AC, RC2IS.
% Author(s): A.Ramasubramanian
% Copyright 1988-2002 The MathWorks, Inc.
% $Revision: 1.7 $ $Date: 2002/04/15 01:15:43 $
%
% Reference:
% A.M. Kondoz, "Digital Speech: Coding for Low Bit Rate Communications
% Systems" John Wiley & Sons 1994, Chapter 4.
a = a(:);
if ~isreal(a),
error('Line spectral frequencies are not defined for complex polynomials.');
end
% Normalize the polynomial if a(1) is not unity
if a(1) ~= 1.0,
a = a./a(1);
end
if (max(abs(roots(a))) >= 1.0),
error('The polynomial must have all roots inside of the unit circle.');
end
% Form the sum and differnce filters
p = length(a)-1; % The leading one in the polynomial is not used
a1 = [a;0];
a2 = a1(end:-1:1);
P1 = a1-a2; % Difference filter
Q1 = a1+a2; % Sum Filter
% If order is even, remove the known root at z = 1 for P1 and z = -1 for Q1
% If odd, remove both the roots from P1
if rem(p,2), % Odd order
P = deconv(P1,[1 0 -1]);
Q = Q1;
else % Even order
P = deconv(P1,[1 -1]);
Q = deconv(Q1,[1 1]);
end
rP = roots(P);
rQ = roots(Q);
aP = angle(rP(1:2:end));
aQ = angle(rQ(1:2:end));
lsf = sort([aP;aQ]);
% [EOF] poly2lsf.m
can you help me to solve this problem?
I need log spectral distortion formula between quantized LPC and original LPC.