Documentation

This is machine translation

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

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

phased.TimeDelayBeamformer System object

Time delay beamformer

Description

The TimeDelayBeamformer object implements a time delay beamformer.

To compute the beamformed signal:

  1. Define and set up your time delay beamformer. See Construction.

  2. Call step to perform the beamforming operation according to the properties of phased.TimeDelayBeamformer. 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.TimeDelayBeamformer creates a time delay beamformer System object, H. The object performs delay and sum beamforming on the received signal using time delays.

H = phased.TimeDelayBeamformer(Name,Value) creates a time delay 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

Handle to sensor array

Specify the sensor array as a handle. The sensor array must be an array object in the phased package. The array cannot 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

SampleRate

Signal sampling rate

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

Default: 1e6

DirectionSource

Source of beamforming direction

Specify whether the beamforming direction 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 direction

Specify the beamforming direction of the beamformer as a column vector of length 2. The direction is specified in the format of [AzimuthAngle; ElevationAngle] (in degrees). The azimuth angle should be between –180 and 180. The elevation angle should be between –90 and 90. This property applies when you set the DirectionSource property to 'Property'.

Default: [0; 0]

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

stepPerform time delay beamforming
Common to All System Objects
clone

Create System object with same property values

getNumInputs

Expected number of inputs to a System object

getNumOutputs

Expected number of outputs of a System object

isLocked

Check locked states of a System object (logical)

release

Allow System object property value changes

Examples

expand all

Apply a time-delay beamformer to an 11-element uniform linear acoustic array. The arrival angle of the signal is -50 degrees in azimuth and 30 degrees in elevation. The arriving signal is a 0.3 second segment of a linear FM chirp having a 500 Hz bandwidth. Assume the speed of sound in air is 340.0 m/s.

Simulate the arriving signal at the wideband collector.

microphone = phased.CustomMicrophoneElement('FrequencyVector',[20,20000],'FrequencyResponse',[1,1]);
array = phased.ULA('Element',microphone,'NumElements',11,'ElementSpacing',0.04);
fs = 8000;
t = 0:1/fs:0.3;
x = chirp(t,0,1,500);
c = 340;
collector = phased.WidebandCollector('Sensor',array,...
    'PropagationSpeed',c,'SampleRate',fs,'ModulatedInput',false);
incidentAngle = [-50;30];
x = collector(x.',incidentAngle);

Add white gaussian random noise to the signal.

sigma = 0.2;
noise = sigma*randn(size(x));
rx = x + noise;

Beamform the incident signals using a time-delay beamformer.

beamformer = phased.TimeDelayBeamformer('SensorArray',array,...
    'SampleRate',fs,'PropagationSpeed',c,...
    'Direction',incidentAngle);
y = beamformer(rx);

Plot the beamformed signal against the incident signal at the middle sensor of the array.

plot(t,rx(:,6),'r:',t,y)
xlabel('Time (sec)')
ylabel('Amplitude')
legend('Original','Beamformed')

References

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

Extended Capabilities

Introduced in R2012a

Was this topic helpful?