Y = step(H,X)
Y = step(H,X,XT)
Y = step(H,X,ANG)
[Y,W] = step(___)
Y = step(H,X)
performs time delay LCMV
beamforming on the input, X
, and returns the
beamformed output in Y
. X
is
an M-by-N matrix where N is the number of elements of the sensor array. Y
is
a column vector of length M. M must be larger than the FIR filter
length specified in the FilterLength
property.
Y = step(H,X,XT)
uses XT
as
the training samples to calculate the beamforming weights when you
set the TrainingInputPort
property to true
. XT
is
an M-by-N matrix where N is the number of elements of the sensor array.
M must be larger than the FIR filter length specified in the FilterLength
property.
Y = step(H,X,ANG)
uses ANG
as
the beamforming direction, when you set the DirectionSource
property
to 'Input port'
. ANG
is a
column vector of length 2 in the form of [AzimuthAngle; ElevationAngle]
(in
degrees). The azimuth angle must be between –180 and 180 degrees,
and the elevation angle must be between –90 and 90 degrees.
You can combine optional input arguments when their enabling
properties are set: Y = step(H,X,XT,ANG)
[Y,W] = step(___)
returns additional
output, W
, as the beamforming weights when you
set the WeightsOutputPort
property to true
. W
is
a column vector of length L, where L is the degrees of freedom of
the beamformer. For a time delay LCMV beamformer, H
,
L is given by H.SensorArray*H.FilterLength
.
Note:
The object performs an initialization the first time the |
Apply a time delay LCMV beamformer to an 11-element 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);
The beamforming algorithm is the time-domain 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.