Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

phased.PhaseShiftBeamformer System object

Package: phased

Narrowband phase shift beamformer

Description

The PhaseShiftBeamformer object implements a phase shift beamformer.

To compute the beamformed signal:

  1. Define and set up your phase shift beamformer. See Construction.

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

    Note:   Starting in R2016b, instead of using the step method to perform the operation defined by the System object™, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.

Construction

H = phased.PhaseShiftBeamformer creates a conventional phase shift beamformer System object, H. The object performs phase shift beamforming on the received signal.

H = phased.PhaseShiftBeamformer(Name,Value) creates a phase shift 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

SensorArray

Sensor array

Sensor array specified as an array System object belonging to the phased package. A sensor array can contain subarrays.

Default: phased.ULA with default property values

PropagationSpeed

Signal propagation speed

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

Default: Speed of light

OperatingFrequency

System operating frequency

Specify the operating frequency of the beamformer in hertz as a scalar. The default value of this property corresponds to 300 MHz.

Default: 3e8

DirectionSource

Source of beamforming direction

Specify whether the beamforming direction for the beamformer comes from the Direction property of this object or from an input argument in step. Values of this property are:

'Property'The Direction property of this object specifies the beamforming direction.
'Input port'An input argument in each invocation of step specifies the beamforming direction.

Default: 'Property'

Direction

Beamforming directions

Specify the beamforming directions of the beamformer as a two-row matrix. Each column of the matrix has the form [AzimuthAngle; ElevationAngle] (in degrees). Each azimuth angle must be between –180 and 180 degrees, and each elevation angle must be between –90 and 90 degrees. This property applies when you set the DirectionSource property to 'Property'.

Default: [0; 0]

NumPhaseShifterBits

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 non-negative integer. A value of zero indicates that no quantization is performed.

Default: 0

WeightsNormalization

Approach for normalizing beamformer weights

If you set this property value to 'Distortionless', the gain in the beamforming direction is 0 dB. If you set this property value to 'Preserve power', the norm of the weights is unity.

Default: 'Distortionless'

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 phase shift 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 phase shift beamforming

Examples

expand all

Apply phase-shift beamforming to a sinewave signal received by a 5-element ULA. The beamforming direction is 45° azimuth and 0° elevation. Assume the array operates at 300 MHz.

Simulate the signal.

t = (0:1000)';
fsignal = 0.01;
x = sin(2*pi*fsignal*t);
c = physconst('Lightspeed');
fc = 300e6;
incidentAngle = [45;0];
sULA = phased.ULA('NumElements',5);
x = collectPlaneWave(sULA,x,incidentAngle,fc,c);
noise = 0.1*(randn(size(x)) + 1j*randn(size(x)));
rx = x + noise;

Set up a phase-shift beamformer and then perform the beamforming step on the input data.

sBF = phased.PhaseShiftBeamformer('SensorArray',sULA,...
    'OperatingFrequency',fc,'PropagationSpeed',c,...
    'Direction',incidentAngle,'WeightsOutputPort',true);
[y,w] = step(sBF,rx);

Plot the beamformed data with the middle sensor input data.

plot(t,real(rx(:,3)),'r:',t,real(y))
xlabel('Time (sec)')
ylabel('Amplitude')
legend('Inout','Beamformed')

Plot the response pattern.

pattern(sULA,fc,[-180:180],0,'PropagationSpeed',c,'Type',...
    'powerdb','CoordinateSystem','polar','Weights',w)

Algorithms

The phase shift beamformer uses the conventional delay-and-sum beamforming algorithm. The beamformer assumes the signal is narrowband, so a phase shift can approximate the required delay. The beamformer preserves the incoming signal power.

For further details, see [1].

References

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

Introduced in R2012a

Was this topic helpful?