Forums

autocorrelation matrix

Started by matque 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 answer your question based on numbers alone, you 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')

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