Package: phased
Sample matrix inversion (SMI) beamformer
The SMIBeamformer
object implements a sample
matrix inversion spacetime adaptive beamformer. The beamformer works
on the spacetime covariance matrix.
To compute the spacetime beamformed signal:
Define and set up your SMI beamformer. See Construction.
Call step
to execute the SMI
beamformer algorithm according to the properties of phased.STAPSMIBeamformer
.
The behavior of step
is specific to each object in
the toolbox.
Note:
Starting in R2016b, instead of using the 
H = phased.STAPSMIBeamformer
creates a
sample matrix inversion (SMI) beamformer System object, H
.
The object performs the SMI spacetime adaptive processing (STAP)
on the input data.
H = phased.STAPSMIBeamformer(
creates
an SMI object, Name
,Value
)H
, with each specified property
Name set to the specified Value. You can specify additional namevalue
pair arguments in any order as (Name1
,Value1
,...,NameN
,ValueN
).

Sensor array Sensor array specified as an array System object belonging
to the Default:  

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:  

Pulse repetition frequency Specify the pulse repetition frequency (PRF) of the received signal in hertz as a scalar. Default:  

Source of targeting direction Specify whether the targeting direction for the STAP processor
comes from the
Default:  

Targeting direction Specify the targeting direction of the SMI processor as a column
vector of length 2. The direction is specified in the format of Default:  

Number of phase shifter quantization bits The number of bits used to quantize the phase shift component of beamformer or steering vector weights. Specify the number of bits as a nonnegative integer. A value of zero indicates that no quantization is performed. Default:  

Source of targeting Doppler Specify whether the targeting Doppler for the STAP processor
comes from the
Default:  

Targeting Doppler frequency Specify the targeting Doppler of the STAP processor as a scalar.
This property applies when you set the Default:  

Output processing weights To obtain the weights used in the STAP processor, set this property
to Default:  

Number of guarding cells Specify the number of guard cells used in the training as an even integer. This property specifies the total number of cells on both sides of the cell under test. Default:  

Number of training cells Specify the number of training cells used in the training as an even integer. Whenever possible, the training cells are equally divided before and after the cell under test. Default: 
clone  Create spacetime adaptive SMI beamformer object with same property values 
getNumInputs  Number of expected inputs to step method 
getNumOutputs  Number of outputs from step method 
isLocked  Locked status for input attributes and nontunable properties 
release  Allow property value and input characteristics changes 
step  Perform SMI STAP processing on input data 
Process the data cube using an SMI processor. The weights are calculated for the 71st cell of a collected data cube pointing to the direction of [45; –35] degrees and the Doppler of 12980 Hz.
load STAPExampleData; % load data Hs = phased.STAPSMIBeamformer('SensorArray',STAPEx_HArray,... 'PRF',STAPEx_PRF,... 'PropagationSpeed',STAPEx_PropagationSpeed,... 'OperatingFrequency',STAPEx_OperatingFrequency,... 'NumTrainingCells',100,... 'WeightsOutputPort',true,... 'DirectionSource','Input port',... 'DopplerSource','Input port'); [y,w] = step(Hs,STAPEx_ReceivePulse,71,[45; 35],12980); Hresp = phased.AngleDopplerResponse(... 'SensorArray',Hs.SensorArray,... 'OperatingFrequency',Hs.OperatingFrequency,... 'PRF',Hs.PRF,... 'PropagationSpeed',Hs.PropagationSpeed); plotResponse(Hresp,w);
The optimum beamformer weights are
$$w=k{R}^{1}v$$
where:
k is a scalar
R represents the spacetime covariance matrix
v indicates the spacetime steering vector
Because the spacetime covariance matrix is unknown, you must estimate that matrix from the data. The sample matrix inversion (SMI) algorithm estimates the covariance matrix by designating a number of range gates to be training cells. Because you use the training cells to estimate the interference covariance, these cells should not contain target returns. To prevent target returns from contaminating the estimate of the interference covariance, you can specify insertion of a number of guard cells before and after the designated target cell.
To use the general algorithm for estimating the spacetime covariance matrix:
Assume you have a MbyNbyK matrix. M represents the number of slowtime samples, and N is the number of array sensors. K is the number of training cells (range gates for training). Also assume that the number of training cells is an even integer and that you can designate K/2 training cells before and after the target range gate excluding the guard cells. Reshape the MbyNbyK matrix into a MNbyK matrix by letting X denote the MNbyK matrix.
Estimate the spacetime covariance matrix as
$$\frac{1}{K}X{X}^{H}$$
Invert the spacetime covariance matrix estimate.
Obtain the beamforming weights by multiplying the sample spacetime covariance matrix inverse by the spacetime steering vector.
[1] Guerci, J. R. SpaceTime Adaptive Processing for Radar. Boston: Artech House, 2003.
[2] Ward, J. "SpaceTime Adaptive Processing for Airborne Radar Data Systems," Technical Report 1015, MIT Lincoln Laboratory, December, 1994.
phased.ADPCACanceller
 phased.AngleDopplerResponse
 phased.DPCACanceller
 phitheta2azel
 uv2azel