phased.MVDREstimator2D System object

Package: phased

2-D MVDR (Capon) spatial spectrum estimator


The MVDREstimator2D object computes a 2-D minimum variance distortionless response (MVDR) spatial spectrum estimate. This DOA estimator is also referred to as a Capon estimator.

To estimate the spatial spectrum:

  1. Define and set up your 2-D MVDR spatial spectrum estimator. See Construction.

  2. Call step to estimate the spatial spectrum according to the properties of phased.MVDREstimator2D. The behavior of step is specific to each object in the toolbox.


H = phased.MVDREstimator2D creates a 2-D MVDR spatial spectrum estimator System object™, H. The object estimates the signal's spatial spectrum using a narrowband MVDR beamformer.

H = phased.MVDREstimator2D(Name,Value) creates object, H, with each specified property Name set to the specified Value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).



Handle to sensor array

Specify the sensor array as a handle. The sensor array must be an array object in the phased package. The array cannot contain subarrays.

Default: phased.ULA with default property values


Signal propagation speed

Specify the propagation speed of the signal, in meters per second, as a positive scalar.

Default: Speed of light


System operating frequency

Specify the operating frequency of the system in hertz as a positive scalar. The default value corresponds to 300 MHz.

Default: 3e8


Perform forward-backward averaging

Set this property to true to use forward-backward averaging to estimate the covariance matrix for sensor arrays with conjugate symmetric array manifold.

Default: false


Azimuth scan angles (degrees)

Specify the azimuth scan angles (in degrees) as a real vector. The angles must be between –180 and 180, inclusive. You must specify the angles in ascending order.

Default: -90:90


Elevation scan angles

Specify the elevation scan angles (in degrees) as a real vector or scalar. The angles must be between –90 and 90, inclusive. You must specify the angles in ascending order.

Default: 0


Enable DOA output

To obtain the signal's direction of arrival (DOA), set this property to true and use the corresponding output argument when invoking step. If you do not want to obtain the DOA, set this property to false.

Default: false


Number of signals

Specify the number of signals for DOA estimation as a positive scalar integer. This property applies when you set the DOAOutputPort property to true.

Default: 1


cloneCreate 2-D MVDR spatial spectrum estimator object with same property values
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs from step method
isLockedLocked status for input attributes and nontunable properties
plotSpectrumPlot spatial spectrum
releaseAllow property value and input characteristics changes
resetReset states of 2-D MVDR spatial spectrum estimator object
stepPerform spatial spectrum estimation


Estimate the DOAs of two signals received by a 50-element URA with a rectangular lattice. The antenna operating frequency is 150 MHz. The actual direction of the first signal is –37 degrees in azimuth and 0 degrees in elevation. The direction of the second signal is 17 degrees in azimuth and 20 degrees in elevation. This example also plots the spatial spectrum.

fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.URA('Size',[5 10],'ElementSpacing',[1 0.6]);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[-37 0;17 20]',fc);
% additive noise
noise = 0.1*(randn(size(x))+1i*randn(size(x)));
% construct MVDR DOA estimator for URA
hdoa = phased.MVDREstimator2D('SensorArray',ha,...
% use the step method to obtain the output and DOA estimates
[~,doas] = step(hdoa,x+noise);


[1] Van Trees, H. Optimum Array Processing. New York: Wiley-Interscience, 2002.

Introduced in R2012a

Was this topic helpful?