# Unbiased Correlation Estimate

Started by February 20, 2004
```The Matlab function xcorr has an 'unbiased' option whereby the
estimated correlation values are scaled by a value relative to their
lag. How does this give an unbiased estimate? Any good references?

A further question: I'm using xcorr to generate the correlation values
in the Weiner-Hopf equations for an FIR equalizer. Should I use the
'unbiased' option?

Cheers my Dears
```
```"porterboy" <porterboy76@yahoo.com> wrote in message
> The Matlab function xcorr has an 'unbiased' option whereby the
> estimated correlation values are scaled by a value relative to their
> lag. How does this give an unbiased estimate? Any good references?
>
> A further question: I'm using xcorr to generate the correlation values
> in the Weiner-Hopf equations for an FIR equalizer. Should I use the
> 'unbiased' option?
>
> Cheers my Dears

Hello Porterboy,

Not knowing the matlab function, I just have to hazard a guess. But since
linear correlation between two finite length sequences gives a bias towards
zero lag, they are just compensating for it. Imagine doing the correlation
of two constant vectors i.e., all elements are 1. then the correlation
yields a triangular shaped function. Since the correlation (for this
example) is technically the same at all offsets, then we need to weigh more
heavily (inverse triangular function) the nonzero offset values. This
triangular feature arises from the fact that as the offset increases, away
from zero, that the correlation sum contains fewer and fewer terms. The sum
contains n+m-1-k terms where m and n are the lengths of the vectors and k is
the lag. So to put all offsets on the same footing, just scale the output by
(n+m-1)/(n+m-1-k).

IHTH,
Clay

--
Clay S. Turner, V.P.
Wireless Systems Engineering, Inc.
Satellite Beach, Florida 32937
(321) 777-7889
www.wse.biz
csturner@wse.biz

```
```Clay got is exactly right.  Yes, you should use this option for your
Weiner-Hopf equations.  However, be warned that correlation estimates become
increasingly inaccurate as you move away from zero (the center of the
xcorr() output) because there are fewer samples that were used to makes
these estimates.  In other words, don't solve for too many taps!  ("too
many" is relative of course.  sorry about that.)

Matt

"Clay S. Turner" <CSTurner@WSE.Biz> wrote in message
news:aopZb.38190\$kR3.13307@bignews4.bellsouth.net...
> "porterboy" <porterboy76@yahoo.com> wrote in message
> > The Matlab function xcorr has an 'unbiased' option whereby the
> > estimated correlation values are scaled by a value relative to their
> > lag. How does this give an unbiased estimate? Any good references?
> >
> > A further question: I'm using xcorr to generate the correlation values
> > in the Weiner-Hopf equations for an FIR equalizer. Should I use the
> > 'unbiased' option?
> >
> > Cheers my Dears
>
>
> Hello Porterboy,
>
> Not knowing the matlab function, I just have to hazard a guess. But since
> linear correlation between two finite length sequences gives a bias
towards
> zero lag, they are just compensating for it. Imagine doing the correlation
> of two constant vectors i.e., all elements are 1. then the correlation
> yields a triangular shaped function. Since the correlation (for this
> example) is technically the same at all offsets, then we need to weigh
more
> heavily (inverse triangular function) the nonzero offset values. This
> triangular feature arises from the fact that as the offset increases, away
> from zero, that the correlation sum contains fewer and fewer terms. The
sum
> contains n+m-1-k terms where m and n are the lengths of the vectors and k
is
> the lag. So to put all offsets on the same footing, just scale the output
by
> (n+m-1)/(n+m-1-k).
>
> IHTH,
> Clay
>
>
> --
> Clay S. Turner, V.P.
> Wireless Systems Engineering, Inc.
> Satellite Beach, Florida 32937
> (321) 777-7889
> www.wse.biz
> csturner@wse.biz
>
>
>
>

```
```"Matt Roos" <XXmatt.roos@verizon.net> wrote in message news:<OstZb.54798\$1S1.23092@nwrddc01.gnilink.net>...
> Clay got is exactly right.  Yes, you should use this option for your
> Weiner-Hopf equations.  However, be warned that correlation estimates become
> increasingly inaccurate as you move away from zero (the center of the
> xcorr() output) because there are fewer samples that were used to makes
> these estimates.  In other words, don't solve for too many taps!  ("too
> many" is relative of course.  sorry about that.)

I think I may not have to use the unbiased option. Suppose I have two
vectors of data of 1000 samples each, representing the channel input
and output, call them x and y. Suppose the equaliser I am designing
only has ten taps. Then I only need to estimate ryy and rxy over ten
values. So if I use 990 of the thousand samples in x and y, and use a
sliding window, then I have enough data support to ensure that outer
estimates are unbiased.

I suppose it could be argued that by using the full thousand samples
and weighing the outer values to remove bias will result in a
theoretically better estimate of ryy or rxy, however the improvement
is probably too marginal to warrant the necessary computation.

Anyway, thanks guys, you gave me a good understanding of the issue.
```