LSF functions not working?
2 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Tony Mohan Varghese
2017 年 11 月 14 日
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.
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Signal Modeling についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!