LSF functions not working?

1 view (last 30 days)
Carl
Carl on 19 Oct 2017
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 Comment
Tony Mohan Varghese
Tony Mohan Varghese on 14 Nov 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.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!