autocorrelation matrix

Started by March 13, 2007
```I'm trying to copmute the autocorrelation matrix of array outputs and
suspect i may be doing something wrong. I'm confident that i'm getting the
right result for vectors but when my signal is a matrix it all goes wrong.
Looking at the examples below can anyone say if they are correct?

e.g. If X=[1 2 3]

autocorrelation matrix =     [14     8     3
8    13     6
3     6     9]

if X   = [  1     2     3
4     5     6
7     8     9]

autocorrelation matrix = [   285   154    50
154   271   122
50   122   194]
Cheers!

```
```On 13 Mar, 17:33, "matque" <michelle.mcgu...@eee.strath.ac.uk> wrote:
> I'm trying to copmute the autocorrelation matrix of array outputs and
> suspect i may be doing something wrong. I'm confident that i'm getting the
> right result for vectors but when my signal is a matrix it all goes wrong.
> Looking at the examples below can anyone say if they are correct?
>
> e.g. If X=[1 2 3]
>
> autocorrelation matrix =     [14     8     3
>                                8    13     6
>                                3     6     9]

How did you get that result? It is impossible to
need to tell us how you computed that matrix.

Rune

```
```I'm trying to compute:

[x(0)x'(0)  x(0)x'(1) x(0)x'(2)
x(1)x'(0)  x(1)x'(1) x(1)x'(2)
x(2)x'(0)  x(2)x'(1) x(2)x'(2)]

where,
' implies a transpose of a conjugate and 0,1 and 2 represent a lag.

My understanding of the autocorrelation when dealing with one sequence in
time is ok (i think).  When I'm dealing with more than one sequence
(sensor output) i lose sight of why i'm calculating it the way i am.
Perhaps my starting point above is wrong?  The code is:

%----------------

x= [ 1 2 3;4 5 6;7 8 9]

[M,N]=size(x); %N is the number of sensors (rows) and M is the number of
samples (columns)

for i=1:N
X(:,i)=[ x(:,i)' zeros(1,M-1)];
end
X=(X(:))';
X1=zeros(M,N*M);

for i=1:M
for Z=1:N
z=Z-1;
X1(i,(M*(Z-1)+1:M*Z))=X(:,(i+z*(2*M-1)):(i+M-1+z*(2*M-1)));
end
end

Rxx=X1*conj(X1')

%---------------------------

```