I am working with FMCW phased array radar with only upchirps. The range doppler matrix is obtained using the two dimensional fast Fourier transform on multiple chirps. I want to obtain the angular spectrum per range velocity cell, so have taken range doppler bin for every antenna element and now I have a sample vector rdSnapShot (1 X Nant), where Nant is number of antenna elements present.

For this functionality I am using MATLAB's pmusic (MUSIC algorithm), my question is that as MATLAB's function pmusic requires correlation matrix, is it correct to just multiply the sample vector (1 X Nant) with its complex conjugate and obtain correlation matrix of (size Nant X Nant).

N.B. I have just one range doppler bin for each antenna element.

Providing the MATLAB code:

nTargets = 2;
Rxx_outerproduct = rdSnapShot*rdSnapShot';

[powerSpectrumMUSIC,idxFreq] =pmusic(Rxx_outerproduct ,nTargets,'corr');
% Adjusting the frequency for zero centered angle
idxFreq = idxFreq - max(idxFreq)./2;
% Shifting the response to obtain zero centeric response
% Converting the frequency scale to direction of arrival scale
idxAngle = asind(idxFreq/pi);
angResponseMUSIC = (db(powerSpectrumMUSIC));

1 Answer 1


Yes, it is proper/practical way to obtain correlation matrix. just multiply your sample with its conjugate to get auto-correlation and with conjugate of other antenna elements sample to get cross-correlation. arrange them in matrix to get correlation matrix($N$$X$$N$).
you can also look out for MVDR implementations in matlab which uses similar method for obtaining noise correlation matrix.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.