Autocorrelation Matrix from a vector

Illustration
Harper - 2021-03-04T13:57:23+00:00
Question: Autocorrelation Matrix from a vector

I have observations of a noisy channel and i form a vector y of length n from those observations. I need to compute the autocorrelation  matrix from this vector y which should be just the outer product y*y' i-e E[y*y']=y*y'. This matrix is a rank=1 nxn matrix. Is this correct?  

Expert Answer

Profile picture of John Michell John Michell answered . 2025-11-20

No, that is not correct. The way you are doing it is not giving the autocorrelation matrix. For one thing your matrix is not going to be Toeplitz.
 
For example:
 
    x = randn(10,1);
    rxx = x*x';
Note the above, rxx, is not Toeplitz.
 
But
 
[xc,lags] = xcorr(x,x,9,'biased');
r = xc(10:end);
rxx = toeplitz(r,conj(r)); % the conj() of course here is not needed
Now, rxx is Toeplitz and not that the autocorrelation  matrix has full column rank.
 
 
rank(rxx)
Or you could do:
 
 
    X = fft(x,2^nextpow2(2*size(x,1)-1));
    R = ifft(abs(X).^2);
    m = length(x);
    R = R./m; % Biased autocorrelation estimate
    rxx = toeplitz(R(1:length(x)),conj(R(1:length(x))));
 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!