Covariance matrix for MUSIC

Started by August 1, 2008
```hi guys..
I am in the process of doing a project on implementation of MUSIC
algorithm for beamforming.
I want to know as to how to create a covariance matrix.
For example if we have 3 antennas and we are taking 5 snapshots of the
incident signal, then how do we get the covariance matrix of the input
data.
I know the formula to find covariance of two signals.
My confusion is for two sequences of length M, the covariance/correlation
has values for 0 lag, 1st lag, 2nd lag......up M-1 lag.
In the example above, we have 3 antennas each with a length of 5 values.
Does the covariance matrix needs to be calculated for 0 lag....4th lag.
I mean do we have 5 covariance matrices??

I am kinda stuck here and I am not able to get any sources to clear this
doubt. If anyone can give me an explanation, it will be very helpful.Even a
simple 3x3 matrix example will help me a long way in clearing this doubt.

Thank you.

```
```On Aug 1, 3:34 pm, "krish_dsp" <nmkr...@gmail.com> wrote:
> hi guys..
> I am in the process of doing a project on implementation of MUSIC
> algorithm for beamforming.
> I want to know as to how to create a covariance matrix.
> For example if we have 3 antennas and we are taking 5 snapshots of the
> incident signal, then how do we get the covariance matrix of the input
> data.
> I know the formula to find covariance of two signals.
> My confusion is for two sequences of length M, the covariance/correlation
> has values for 0 lag, 1st lag, 2nd lag......up M-1 lag.
> In the example above, we have 3 antennas each with a length of 5 values.
> Does the covariance matrix needs to be calculated for 0 lag....4th lag.
> I mean do we have 5 covariance matrices??
>
> I am kinda stuck here and I am not able to get any sources to clear this
> doubt. If anyone can give me an explanation, it will be very helpful.Even a
> simple 3x3 matrix example will help me a long way in clearing this doubt.
>
> Thank you.

You could do this for covariance matrix R

R(k+1)=beta*R(k)+(1-beta)*XX'

where X is the vector of readings from each sensor.
(' is transpose and beta is a forgetting factor near unity...0.98 say)

Or there are other methods for stationary data

R(k+1)=R(k)+(1/(k+1){R(k)-XX'}

something like that anyway.

K.
```
```On 1 Aug, 05:34, "krish_dsp" <nmkr...@gmail.com> wrote:
> hi guys..
> I am in the process of doing a project on implementation of MUSIC
> algorithm for beamforming.
> I want to know as to how to create a covariance matrix.
> For example if we have 3 antennas and we are taking 5 snapshots of the
> incident signal, then how do we get the covariance matrix of the input
> data.
> I know the formula to find covariance of two signals.
> My confusion is for two sequences of length M, the covariance/correlation
> has values for 0 lag, 1st lag, 2nd lag......up M-1 lag.
> In the example above, we have 3 antennas each with a length of 5 values.
> Does the covariance matrix needs to be calculated for 0 lag....4th lag.

Yes.

> I mean do we have 5 covariance matrices??

Yes.

> I am kinda stuck here and I am not able to get any sources to clear this
> doubt. If anyone can give me an explanation, it will be very helpful.Even a
> simple 3x3 matrix example will help me a long way in clearing this doubt.

You are confusing time domain and spatial domain. The MUSIC DoA
estimator
uses the spatial covariance matrix, while you probably have read a
recipe
for the temporal MUSIC algorithm.

Your data will be organized as

x[n,m] = [x_1[n], x_2[n],...,x_M[n]]

where x_m[n] is the time series from the m'th sensor (I am used to
use n as the temporal index and m as the spatial index). The trick
is to fix n and compute the *spatial* covariance

Rxx[k]=Rxx[m,m+k]

for each lag n.

Rune
```
```Thank you rune, I got it, As u said I was confusing the formula for
temporal covariance with spatial covariance.
>On 1 Aug, 05:34, "krish_dsp" <nmkr...@gmail.com> wrote:
>> hi guys..
>> I am in the process of doing a project on implementation of MUSIC
>> algorithm for beamforming.
>> I want to know as to how to create a covariance matrix.
>> For example if we have 3 antennas and we are taking 5 snapshots of the
>> incident signal, then how do we get the covariance matrix of the input
>> data.
>> I know the formula to find covariance of two signals.
>> My confusion is for two sequences of length M, the
covariance/correlation
>> has values for 0 lag, 1st lag, 2nd lag......up M-1 lag.
>> In the example above, we have 3 antennas each with a length of 5
values.
>> Does the covariance matrix needs to be calculated for 0 lag....4th
lag.
>
>Yes.
>
>> I mean do we have 5 covariance matrices??
>
>Yes.
>
>> I am kinda stuck here and I am not able to get any sources to clear
this
>> doubt. If anyone can give me an explanation, it will be very
>> simple 3x3 matrix example will help me a long way in clearing this
doubt.
>
>You are confusing time domain and spatial domain. The MUSIC DoA
>estimator
>uses the spatial covariance matrix, while you probably have read a
>recipe
>for the temporal MUSIC algorithm.
>
>Your data will be organized as
>
>x[n,m] = [x_1[n], x_2[n],...,x_M[n]]
>
>where x_m[n] is the time series from the m'th sensor (I am used to
>use n as the temporal index and m as the spatial index). The trick
>is to fix n and compute the *spatial* covariance
>
>Rxx[k]=Rxx[m,m+k]
>
>for each lag n.
>
>Rune
>
```