LSF functions not working?
1 view (last 30 days)
Show older comments
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
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.
Answers (0)
See Also
Categories
Find more on Signal Modeling in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!