Package: phased
Time delay LCMV beamformer
The TimeDelayLCMVBeamformer
object implements
a time delay linear constraint minimum variance beamformer.
The BeamscanEstimator
object calculates a beamscan
spatial spectrum estimate for a uniform linear array.
To compute the beamformed signal:
Define and set up your time delay LCMV beamformer. See Construction.
Call step
to
perform the beamforming operation according to the properties of phased.TimeDelayLCMVBeamformer
.
The behavior of step
is specific to each object in
the toolbox.
H = phased.TimeDelayLCMVBeamformer
creates
a time delay linear constraint minimum variance (LCMV) beamformer System object™, H
.
The object performs time delay LCMV beamforming on the received signal.
H = phased.TimeDelayLCMVBeamformer(
creates
a time delay LCMV beamformer 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
).

Handle to sensor array Specify the sensor array as a handle. The sensor array must
be an array object in the Default:  

Signal propagation speed Specify the propagation speed of the signal, in meters per second, as a positive scalar. Default: Speed of light  

Signal sampling rate Specify the signal sampling rate (in hertz) as a positive scalar. Default:  

FIR filter length Specify the length of the FIR filter behind each sensor element in the array as a positive integer. Default:  

Constraint matrix Specify the constraint matrix used for time delay LCMV beamformer
as an MbyK matrix. Each column of the matrix is a constraint and M is
the degrees of freedom of the beamformer. For a time delay LCMV beamformer, M is
given by the product of the number of elements of the array and the
value of the Default:  

Desired response vector Specify the desired response used for time delay LCMV beamformer
as a column vector of length K, where K is the number of constraints
in the Default:  

Diagonal loading factor Specify the diagonal loading factor as a positive scalar. Diagonal loading is a technique used to achieve robust beamforming performance, especially when the sample support is small. This property is tunable. Default:  

Add input to specify training data To specify additional training data, set this property to Default:  

Source of beamforming direction Specify whether the beamforming direction comes from the
Default:  

Beamforming direction Specify the beamforming direction of the beamformer as a column
vector of length 2. The direction is specified in the format of Default:  

Output beamforming weights To obtain the weights used in the beamformer, set this property
to Default: 
clone  Create time delay LCMV 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 time delay LCMV beamforming 
Apply a time delay LCMV beamformer to an 11element array. The incident angle of the signal is –50 degrees in azimuth and 30 degrees in elevation.
% Signal simulation ha = phased.ULA('NumElements',11,'ElementSpacing',0.04); ha.Element.FrequencyRange = [20 20000]; fs = 8e3; t = 0:1/fs:0.3; x = chirp(t,0,1,500); c = 340; % Wave propagation speed (m/s) hc = phased.WidebandCollector('Sensor',ha,... 'PropagationSpeed',c,'SampleRate',fs,'ModulatedInput',false); incidentAngle = [50; 30]; x = step(hc,x.',incidentAngle); noise = 0.2*randn(size(x)); rx = x+noise; % Beamforming ha = phased.ULA('NumElements',11,'ElementSpacing',0.04); hbf = phased.TimeDelayLCMVBeamformer('SensorArray',ha,... 'PropagationSpeed',c,'SampleRate',fs,'FilterLength',5,... 'Direction',incidentAngle); hbf.Constraint = kron(eye(5),ones(11,1)); hbf.DesiredResponse = eye(5, 1); y = step(hbf,rx); % Plot plot(t,rx(:,6),'r:',t,y); xlabel('Time') ylabel('Amplitude') legend('Original','Beamformed');
The beamforming algorithm is the timedomain counterpart of the narrowband linear constraint minimum variance (LCMV) beamformer. The algorithm does the following:
Steers the array to the beamforming direction.
Applies an FIR filter to the output of each sensor to achieve the specified constraints. The filter is specific to each sensor.
[1] Frost, O. "An Algorithm For Linearly Constrained Adaptive Array Processing", Proceedings of the IEEE. Vol. 60, Number 8, August, 1972, pp. 926–935.
[2] Van Trees, H. Optimum Array Processing. New York: WileyInterscience, 2002.