How to calculate autocorrelation matrix eigenvalues without actually creating the matrix

5 views (last 30 days)
Hi, I am working with a large autocorrelation vector (size 1.023e6 ). It is well known that the autocorrelation matrix can be formed easily from the autocorrelation vector i.e for
[Rx(0) Rx(1) Rx(2)]
would form the following matrix
Rxx=[Rx(0) Rx(1) Rx(2);Rx(1) Rx(0) Rx(1);Rx(2) Rx(1) Rx(0)];
In the first row we have all the values contained in the matrix. My goal is to calculate the eigenvalues using eig, but it is impossible to create the matrix due to memory limitations.I would like to know if there is a way to calcute the eigenvalues using the autocorrelation vector as an argument (without actually creating the autocorrelation matrix).
Thanks in advance.

Accepted Answer

Matt J
Matt J on 30 Jan 2014
Edited: Matt J on 30 Jan 2014
Rxx is Toeplitz. If it is also circulant, then the eigenvalues are just fft(Rx). Circulancy would occur if your signal had some sort of periodicity to it, or if you were using some kind of toroidal edge conditions, x(N+1)=x(1).

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!