main Content

phased.FrostBeamformer

Frost beamformer

Description

phased.FrostBeamformerOBJect implements a Frost beamformer. A Frost beamformer consists of a time-domain MVDR beamformer combined with a bank of FIR filters. The beamformer steers the beam towards a given direction while the FIR filters preserve the input signal power.

To compute the beamformed signal:

  1. Create thephased.FrostBeamformerOBJect and set its properties.

  2. Call the object with arguments, as if it were a function.

要了解有关系统对象如何工作的更多信息,请参阅what Are System Objects?

Creation

Description

波束形式= phased.FrostBeamformercreates a Frost beamformer System object™,波束形式,,,,with default property values.

波束形式= phased.FrostBeamformer(name,,,,Valuecreates a Frost beamformer object,波束形式,每个指定的属性名称设置为指定值。您可以按任何顺序指定其他名称值对参数name1,,,,Value1,,,,。。。,,,,nameN,,,,valuen)。Enclose each property name in single quotes.

Example:BeamFormer = phased.FrostbeamFormer('Sensorarray',Phase.ula('Numelements',20),'samplerate',300E3)将传感器数组设置为具有默认ULA属性值的均匀线性阵列(ULA),除了元素数。波束形式的样品速率为300 kHz。

Properties

expand all

Unless otherwise indicated, properties arenontunable,,,,which means you cannot change their values after calling the object. Objects lock when you call them, and the发布function unlocks them.

If a property istunable,您可以随时更改其价值。

For more information on changing property values, see使用系统对象在MATLAB中的系统设计

传感器数组,指定为分阶段数组系统工具箱阵列系统对象。阵列不能包含子阵列。

Example:phased.URA

信号传播速度,指定为实值的正标量。单位为每秒米。默认传播速度是返回的值Physconst(“ Lightspeed”)

Example:3e8

Data Types:single|double

Sample rate of signal, specified as a positive scalar. Units are in Hz. The System object uses this quantity to calculate the propagation delay in units of samples.

Example:1E6

Data Types:single|double

每个传感器元件的FIR滤波器长度,指定为正整数。

Example:7

Data Types:single|double

Diagonal loading factor, specified as a nonnegative scalar. Diagonal loading is a technique used to achieve robust beamforming performance, especially when the sample size is small. A small sample size can lead to an inaccurate estimate of the covariance matrix. Diagonal loading also provides robustness due to steering vector errors. The diagonal loading technique adds a positive scalar multiple of the identity matrix to the sample covariance matrix.

可调:yes

Data Types:single|double

Enable training data input, specified as错误的ortrue。when you set this property totrue,,,,use the training data input argument,XT,,,,when running the object. Set this property to错误的to use the input data,X,,,,as the training data.

Data Types:逻辑

波束形成方向的来源,,,,specified as'Property'or“输入端口”。Specify whether the beamforming direction comes from the方向此对象的属性或输入参数,ANG。该属性的值是:

'Property' Specify the beamforming direction using the方向财产。
“输入端口” Specify the beamforming direction using the input argument,ANG

Data Types:char

波束形成方向,指定为实值2 by-1矢量或真实价值的2 by-l矩阵。For a matrix, each column specifies a different beamforming direction. Each column has the form[[AzimuthAngle;ElevationAngle]。Azimuth angles must lie between –180° and 180° and elevation angles must lie between –90° and 90°. All angles are defined with respect to the local coordinate system of the array. Units are in degrees.

Example:[40; 30]

Dependencies

To enable this property, set theDirectionsource财产为'Property'

Data Types:single|double

Enable the output of beamforming weights, specified as错误的ortrue。要获取波束形成重量,请将此属性设置为trueand use the corresponding output argument,w。If you do not want to obtain the weights, set this property to错误的

Data Types:逻辑

用法

Description

例子

y= beamformer(X在输入上执行Frost Beam形成,X,并返回波束形成的输出,y。该语法使用输入数据,X,作为训练样品以计算波束形成重量。

y= beamformer(X,,,,XTusesXT作为训练数据以计算波束形成重量。要使用此语法,请设置TrainingInputport财产为true

y= beamformer(X,,,,ANGusesANG作为波束形成方向。要使用此语法,请设置Directionsource财产为“输入端口”

y= beamformer(X,,,,XT,,,,ANGcombines all input arguments. To use this syntax, set theTrainingInputport财产为true并设置Directionsource财产为“输入端口”

例子

[[y,,,,w] = beamformer(___返回波束形成重量,w。要使用此语法,请设置weightsOutputPort财产为true

输入参数

expand all

Input signal, specified as a complex-valuedm-by-n矩阵。m是信号长度和nis the number of array elements specified in theSensorArray财产。mmust be larger than the length of the filter specified by the过滤长度财产。

输入矩阵的第一维的大小可以变化以模拟不断变化的信号长度。例如,如果具有可变脉冲重复频率的脉冲波形,可能会发生尺寸变化。

Data Types:single|double
复杂的数字支持:金宝appyes

培训数据,,,,specified as a complex-valuedm-by-n矩阵。mandn等于值的值X

输入矩阵的第一维的大小可以变化以模拟不断变化的信号长度。例如,如果具有可变脉冲重复频率的脉冲波形,可能会发生尺寸变化。

Example:[[1 0.5 2.6; 2 -0.2 0; 3 -2 -1]

Dependencies

为了启用此论点,请设置TrainingInputport财产为true

Data Types:single|double
复杂的数字支持:金宝appyes

Beamforming directions, specified as a real-valued 2-by-1 column vector The vector has the form[[AzimuthAngle;ElevationAngle]。Units are in degrees. The azimuth angle must lie between –180° and 180°, and the elevation angle must lie between –90° and 90°.

Example:[[40;10]

Dependencies

为了启用此论点,请设置Directionsource财产为“输入端口”

Data Types:double

Output Arguments

expand all

Beamformed output, returned as a complex-valued 1-by-m向量,哪里mis the number of rows of the inputX

Data Types:single|double
复杂的数字支持:金宝appyes

波束形成的重量,作为复杂值返回l-by-1 vector wherelis the number of degrees of freedom of the beamformer. The number of degrees of freedom is given by the product of the number of elements specified by theSensorArrayproperty and the FIR filter length specified by过滤长度财产。

Dependencies

要启用此输出,请设置weightsOutputPort财产为true

Data Types:single|double
复杂的数字支持:金宝appyes

对象功能

要使用对象函数,请将系统对象指定为第一个输入参数。例如,释放名称的系统对象的系统资源OBJ,,,,use this syntax:

释放(OBJ)

expand all

step RunSystem object算法
发布 释放资源并允许更改System object属性值和输入特征
reset Reset internal states ofSystem object

Examples

全部收缩

将Frost Beam Forming应用于11个元素的声学ULA阵列。接入信号的入射角为-50度,高度为30度。假定空气中的声速为340 m/sec。该信号增加了高斯白噪声。

Simulate the signal.

阵列= phased.ula('NumElements',,,,11,'ElementSpacing',,,,0。04); array.Element.FrequencyRange = [20 20000]; fs = 8e3; t = 0:1/fs:0.3; x = chirp(t,0,1,500); c = 340; collector = phased.WidebandCollector('传感器',,,,array,。。。'PropagationSpeed',C,'SampleRate',fs,。。。'ModulatedInput',,,,错误的,,,,'numsubbands',,,,8192); incidentAngle = [-50;30]; x = collector(x.',incidentAngle); noise = 0.2*randn(size(x)); rx = x + noise;

Beamform the signal.

波束形式= phased.FrostBeamformer(“感觉运动”,,,,array,。。。'PropagationSpeed',C,'SampleRate',fs,。。。'Direction',INDACTANGLE,“滤波器长度”,,,,5); y = beamformer(rx);

Plot the beamformed output.

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

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original, Beamformed.

Find the beamformer weights of a Frost beamforming applied to signals received at a 7-element acoustic ULA array. The incident angle of the incoming signal is - 2 0 in azimuth and 3 0 in elevation. The signal has added Gaussian white noise. The speed of sound in air is assumed to be 340 m/s. Use a filter length of 15.

First, create the signal.

数字= 7;元素=分阶段。'FrequencyRange',[50,10000]);阵列= phased.ula('元素',,,,element,'NumElements',,,,numelements,'ElementSpacing',,,,0。04); fs = 8e3; t = 0:1/fs:0.3; x = chirp(t,0,1,500); c = 340.0; collector = phased.WidebandCollector('传感器',,,,array,。。。'PropagationSpeed',C,'SampleRate',fs,。。。'ModulatedInput',,,,错误的,,,,'numsubbands',,,,8192); incidentAngle = [-20;30]; x = collector(x.',incidentAngle); noise = 0.2*randn(size(x)); rx = x + noise;

Create a beamformer with a filter length of 15. Then, beamform the arriving signal and obtain the beamformer weights.

filterlength = 15; beamformer = phased.FrostBeamformer(“感觉运动”,,,,array,。。。'PropagationSpeed',C,'SampleRate',fs,'WeightsOutputPort',,,,true,。。。'Direction',INDACTANGLE,“滤波器长度”,,,,filterlength); [y,wt] = beamformer(rx); size(wt)
ans =1×2105 1

这re are 7*15 = 105 weights computed as expected.

比较beamformed arri输出的信号ving at the middle element of the array.

图(1000*t,rx(:,4),'r:',1000*t,y)xlabel('time (msec)')ylabel('Amplitude')legend('Middle Element',,,,'Beamformed'

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Middle Element, Beamformed.

Algorithms

phased.FrostBeamformer使用Frost提出的波束形成算法。它可以被视为最小差异无失真响应(MVDR)光束器的时间域对应物。该算法执行以下操作:

  1. Steers the array to the beamforming direction.

  2. Applies an FIR filter to the output of each sensor to achieve the distortionless response constraint. The filter is specific to each sensor.

  3. 该系统对象支持输入数据,属性和参数的单金宝app一和双重精度。如果输入数据Xis single precision, the output data is single precision. If the input dataXis double precision, the output data is double precision. The precision of the output is independent of the precision of the properties and other arguments.

For more information about Frost beamforming, see[[1]

References

[[1] Frost, O. “An Algorithm For Linearly Constrained Adaptive Array Processing”,IEEE会议论文集。Vol. 60, Number 8, August, 1972, pp. 926–935.

[2]货车,H。Optimum Array Processing。纽约:Wiley-Interscience,2002年。

Extended Capabilities

在R2011a中引入