I'm willing to estimate the Harmonics to Noise Ratio (HNR) of a speech signal x[k] and using autocorrelation method.

Theoretically, HNR is given as,

$$ \ HNR = \frac{R_{xx}[T_0] }{R_{xx}[0]-R_{xx}[T_0]} $$

where $\ R_{xx}$ is the autocorrelation function (ACF) and estimated as,

$$ R_{xx,biased}[l] = \frac{1}{N} \sum_{k=l}^{N-1}{x[k]x[k-l]} $$


$$ R_{xx,unbiased}[l] = \frac{1}{N-l} \sum_{k=l}^{N-1}{x[k]x[k-l]} $$

My question is how can I choose ACF function? Should it be biased or unbiased?

Constraints are signal x should be stationary (so I use the small part of the signal to be stationary) and noise is white and should be uncorreleated (N should be large enough). But these constraints has nothing to do the with type of the ACF estimation.

  • $\begingroup$ Did you find a solution for this? Any Matlab code? $\endgroup$ Commented Jun 14, 2018 at 11:10
  • $\begingroup$ Filipe Pinto there is no matlab code but unbiased one should be used. I figured out that under noise biased version performs worse. Estimate returns larger error. $\endgroup$
    – kubicwerke
    Commented Jun 15, 2018 at 18:19
  • $\begingroup$ what is $T_0$ ? $\endgroup$ Commented Sep 15, 2018 at 2:27

2 Answers 2


For large number of samples both will be indistinguishable.

The Biased Version is the Maximum Likelihood Estmator (MLE) of the problem.
It means it has many nice properties for $ N \to \infty $.
The Unbiased version is Minimum Variance Unbiased Estimator (MVUE) of the problem.

In practice when $ N $ is large, as in your case, it won't matter much and there won't be any difference between the two.

One should remember those are for the case the mean isn't known.
In case it is known, one should always use the Unbiased Form.


I believe that the unbiased version of the ACF estimation should be used. The biased one becomes worse as the lag grows and gives underestimated values of the ACF. That would mean that the HNR estimation would also be underestimated.


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.