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