I am confusing when I find the lpc roots magnitude, f1=0.9313, f2=0.9308, f3=0.91 and f4=0.95 but when I look at LPC envelope the f1 is higher than f4 in term of magnitude in dB. Could anybody explain it ?

I have wrote following MATLAB code :

r=r(imag(r)>0.01);           % only look for roots >0Hz up to fs/2
for k=1:length(r)
z(k) = abs(r(k));
ffreq(k)=(atan2(imag(r(k)),real(r(k)))*fs/(2*pi));% convert to Hz and sort
fprintf('\n Start of frame %d \n ',i);
for j=1:length(ff)
fprintf('Formant %d Frequency %.1f --- %.2f\n',j,ff(j),z(index(j)));
fprintf('\n End of frame %d \n ',i);

1 Answer 1


The magnitude of the roots does not give you the format gain. You need to evaluate the frequency response of the filter $H(z)=\frac{1}{A(z)}$, where $A(z)$ is the polynomial returned by the LPC function, at the point on the unit circle corresponding to the desired format frequency. Like this freqz(1,a, angle(r)) for instance.

  • $\begingroup$ Thanks for your respond. which one is more important format gain or format magnitude ? $\endgroup$ Commented Apr 24, 2013 at 13:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.