MVDR fail with two identical target.
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi all
I have a problem with MVDR estimator in case of two identical target.
I follow matlab example described at http://www.mathworks.com/products/phased-array/examples.html?file=/products/demos/shipping/phased/doabeamscandemo.html
clear all ;close all ;clc;
ha = phased.ULA('NumElements',10,'ElementSpacing',0.5);
ang1 = [30; 0]; ang2 = [40; 0];
t = (0:0.001:1).';
s1 = cos(2*pi*t*300);
s2 = cos(2*pi*t*400);
fc = 300e6; % Operating frequency
angs = [ang1 ang2];
broadsideAngle = az2broadside(angs(1,:),angs(2,:))
hBeamscan = phased.BeamscanEstimator('SensorArray',ha,...
'OperatingFrequency',fc,'ScanAngles',-90:90);
hBeamscan.DOAOutputPort = true;
hBeamscan.NumSignals = 2;
x = collectPlaneWave(ha,[s1 s2],[ang1 ang2],fc);
rs = RandStream.create('mt19937ar','Seed',2007);
nPower = 0.01; % Noise power
noise = sqrt(nPower/2)*(randn(rs,size(x)) + 1i*randn(rs,size(x)));
x = x + noise; % Total received signal
[~,ang] = step(hBeamscan,x)
figure
plotSpectrum(hBeamscan);
hMVDR = phased.MVDREstimator('SensorArray',ha,...
'OperatingFrequency',fc,'ScanAngles',-90:90,...
'DOAOutputPort',true,'NumSignals',2);
[~,ang] = step(hMVDR,x)
figure
plotSpectrum(hMVDR);
Now I change the frequencies
s1 = cos(2*pi*t*300);
s2 = cos(2*pi*t*300);
What am I missing here ?
I also try TimeDelayLCMVBeamformer and I got the same results.
Is there a solution to this problem ?
Thx
0 Commenti
Risposte (1)
Honglei Chen
il 14 Feb 2013
Hi Zohar,
When you set the frequency of the second signal to 300 Hz, your two signals are identical. This represent the case where the two signals are correlated (fully correlated in your case). In that case, the performance of MVDR is degraded. One way to solve this issue is to use a technique called spatial smoothing. This option is not available MVDR beamformer. If your interest is to detect the direction of arrival, you can try to use phased.RootMUSICEstimator which can accommodate the spatial smoothing. For example, if I use the following code with your signal, I get the correct angles
>> estimator = phased.RootMUSICEstimator('SensorArray',ha,...
'OperatingFrequency',fc,'SpatialSmoothing',1);
>> step(estimator,x)
ans =
39.9476 30.0222
HTH
7 Commenti
Honglei Chen
il 15 Feb 2013
I don't have subscription for IEEE Xplore either. I just had a hard copy from old days. You can try the following book too. It's well written, but definitely take a while to navigate
Vedere anche
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!