AWR6843ISK: AWR6843ISK

Part Number: AWR6843ISK

Tool/software:

Hi ,

the mentioned  formula is  used to implement capon (ie mVDR))beam forming .

I have seen in matlab that MVDR beamforming is implemented using  below formula

   mvdr = 1./real(sum(sv'.*(Cx\sv).',2));

   where Sv- streeing vector

             Cx- covariance matrix inverse

i have attached sample matlab example code and its result for your reference.

%%%%%%MVDR (Capon) spatial spectrum estimator for ULA

fs = 8000;
t = (0:1/fs:1).';
x1 = cos(2*pi*t*300);
x2 = cos(2*pi*t*400);
array = phased.ULA('NumElements',10,'ElementSpacing',1);
array.Element.FrequencyRange = [100e6 300e6];
fc = 150.0e6;
x = collectPlaneWave(array,[x1 x2],[10 20;60 -5]',fc);
noise = 0.1*(randn(size(x)) + 1i*randn(size(x)));

estimator = phased.MVDREstimator('SensorArray',array,...
'OperatingFrequency',fc,'DOAOutputPort',true,'NumSignals',2);

[y,doas] = estimator(x + noise);
doas = broadside2az(sort(doas),[20 -5])

plotSpectrum(estimator)

%%%

My question:

 1.Can you confirm what is the difference between capon beamforming used in your case and  implemented in matlab using "mvdr = 1./real(sum(sv'.*(Cx\sv).',2)); "?

  2.does both implement the same thing or different? can you elaborate about it?

regards,

mani   

  • Hi,

    Thanks for posting. Please allow us a day or so to follow up.

    Thanks gain,

    Clinton

  • Hey Mani,

    Thanks for reaching out regarding your question on MVDR. First of all, I'm unfamiliar on the complete implementation of MATLAB's MVDREstimator function besides the equation you've outlined. However, the main difference between our MVDR implementation and the traditional MVDR implementation is that we apply a diagonal loading factor, alpha (sometimes specified as gamma), to the covariance matrix to help improve robustness of the beamformer.

    As alpha approaches infinity, the beamformer's behavior starts to resemble the standard beamformer/digital beamformer (DBF). Conversely, as alpha approaches 0, the beamformer's behavior starts to resemble the traditional MVDR beamformer. Therefore, we can use this alpha parameter to mix between the two beamformer behavior's which we've found 0.03 to be optimal for most of our applications.

    It doesn't appear a diagonal loading factor is used in the MATLAB implementation, so I would wager that the MATLAB MVDR is a traditional MVDR.

    Regards,

    Kristien

  • Dear kristien,

     thanks for your quick reply.

    i have captured ADC data using AWR6843ISK+DCA 1000 card for the following Chirp design parameter and trying to implement capon beam forming as per the equation used by you:

    system parameter:
    Maximum range - 2.7 m
    Range resolution - 0.053 m
    Maximum velocity - 0.406 m/s
    velocity resolution - 0.015 m/s

    chirp design 1:
    profileCfg 0 60 943 11 41 0 0 97 1 64 2200 0 0 30
    channelCfg 15 7 0
    adcbufCfg -1 0 1 1 1
    chirpCfg 0 0 0 0 0 0 0 1
    chirpCfg 1 1 0 0 0 0 0 2
    chirpCfg 2 2 0 0 0 0 0 4
    frameCfg 0 2 54 0 200 1 0

    antenna pattern attached for your reference:

    I have used the same capon beamforming equation  and calculating Range_Azimuth spectrum .(step by step calculation screenshots attached below for your  reference):

    My question:

      1. please check and confirm the above steps, am i calculating range-azimuth spectrum correctly or is there any mistake in my calculation?

    regards,

    Mani

  • Hey Mani,

    Give me a day or two to look into your diagrams here.

    Regards,

    Kristien

  • hi kristien,

       have you checked it the diagram and flow.

      please confirm the above steps, am i calculating range-azimuth spectrum correctly or is there any mistake in my calculation?

    Regards,

    Mani