LSF functions not working?

test = rand(1,10000); % make random input 'signal'
a = lpc(test,128); % grab 128-order LP coeffs
w = filter(a,1,test); % extract residual
test_LPC = filter(1,a,w); % reconstruct using LP coeffs
temp = poly2lsf(a);
alsf = lsf2poly(temp);
test_LSF = filter(1,alsf,w);
When I run the code above I'm simply converting the LPC coefficients to line-spectral frequencies (LSF) and then back again to do a very simple LPC reconstruction of a random signal.
It doesn't work though. 'alsf' and 'a' shoudl be identical but they aren't and test_LSF and test_LPC should both reconstruct test but test_LSF explodes. Am I using these wrong because it looks like the two functions just don't work. Thanks for any help!

1 comentario

Tony Mohan Varghese
Tony Mohan Varghese el 14 de Nov. de 2017
poly2lsf and lsf2poly involve deconvolution and convolution operations that will become numerically unstable for very large polynomial orders. The polynomial order used here is very large. It is not a good idea to try to convert the line spectral frequencies back to a polynomial here.

Iniciar sesión para comentar.

Respuestas (0)

Preguntada:

el 19 de Oct. de 2017

Comentada:

el 14 de Nov. de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by