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.
Covariance matrix for MUSIC
Started by ●August 1, 2008
Reply by ●August 1, 20082008-08-01
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.
Reply by ●August 1, 20082008-08-01
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
Reply by ●August 8, 20082008-08-08
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, thecovariance/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 5values.>> Does the covariance matrix needs to be calculated for 0 lag....4thlag.> >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 clearthis>> doubt. If anyone can give me an explanation, it will be veryhelpful.Even a>> simple 3x3 matrix example will help me a long way in clearing thisdoubt.> >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 >