Documentation Center

  • Trial Software
  • Product Updates

phased.LCMVBeamformer System object

Package: phased

Narrowband LCMV beamformer

Description

The LCMVBeamformer object implements a linear constraint minimum variance beamformer.

To compute the beamformed signal:

  1. Define and set up your LCMV beamformer. See Construction.

  2. Call step to perform the beamforming operation according to the properties of phased.LCMVBeamformer. The behavior of step is specific to each object in the toolbox.

Construction

H = phased.LCMVBeamformer creates a linear constraint minimum variance (LCMV) beamformer System object™, H. The object performs narrowband LCMV beamforming on the received signal.

H = phased.LCMVBeamformer(Name,Value) creates an LCMV beamformer 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).

Properties

Constraint

Constraint matrix

Specify the constraint matrix used for LCMV beamforming as an N-by-K matrix. Each column of the matrix is a constraint and N is the number of elements in the sensor array.

Default: [1; 1]

DesiredResponse

Desired response vector

Specify the desired response used for LCMV beamforming as a column vector of length K, where K is the number of constraints in the Constraint property. Each element in the vector defines the desired response of the constraint specified in the corresponding column of the Constraint property.

Default: 1, which corresponds to a distortionless response

DiagonalLoadingFactor

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: 0

TrainingInputPort

Add input to specify training data

To specify additional training data, set this property to true and use the corresponding input argument when you invoke step. To use the input signal as the training data, set this property to false.

Default: false

WeightsOutputPort

Output beamforming weights

To obtain the weights used in the beamformer, set this property to true and use the corresponding output argument when invoking step. If you do not want to obtain the weights, set this property to false.

Default: false

Methods

cloneCreate LCMV beamformer 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
releaseAllow property value and input characteristics changes
stepPerform LCMV beamforming

Examples

Apply an LCMV beamformer to a 5-element ULA, preserving the signal from the desired direction.

% Simulate signal
t = (0:1000)';
x = sin(2*pi*0.01*t);
c = 3e8; Fc = 3e8;
incidentAngle = [45; 0];
ha = phased.ULA('NumElements',5);
x = collectPlaneWave(ha,x,incidentAngle,Fc,c);
noise = 0.1*(randn(size(x)) + 1j*randn(size(x)));
rx = x + noise;

% Beamforming
hstv = phased.SteeringVector('SensorArray',ha,...
    'PropagationSpeed',c);
hbf = phased.LCMVBeamformer;
hbf.Constraint = step(hstv,Fc,incidentAngle);
hbf.DesiredResponse = 1;
y = step(hbf, rx);

% Plot
plot(t,real(rx(:,3)),'r:',t,real(y));
xlabel('Time'); ylabel('Amplitude');
legend('Original','Beamformed');

References

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

See Also

| |

More About

Was this topic helpful?