System object: phased.FrostBeamformer
Perform Frost beamforming
Y = step(H,X)
Y = step(H,X,XT)
Y = step(H,X,ANG)
Y = step(H,X,XT,ANG)
[Y,W] = step(___)
The object performs an initialization the first time the
Input signal, specified as an M-by-N matrix. M must be larger
than the FIR filter length specified in the
Training samples, specified as an M-by-N matrix. M and N are
the same as the dimensions of
Beamforming directions, specified as a length-2 column vector. The vector has the form [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.
Apply a Frost 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 hbf = phased.FrostBeamformer('SensorArray',ha,... 'PropagationSpeed',c,'SampleRate',fs,... 'Direction',incidentAngle,'FilterLength',5); y = step(hbf,rx);
phased.FrostBeamformer uses a beamforming algorithm
proposed by Frost. It can be considered the time-domain counterpart
of the minimum variance distortionless response (MVDR) 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 distortionless response constraint. The filter is specific to each sensor.
For further details, see .
 Frost, O. "An Algorithm For Linearly Constrained Adaptive Array Processing", Proceedings of the IEEE. Vol. 60, Number 8, August, 1972, pp. 926–935.
 Van Trees, H. Optimum Array Processing. New York: Wiley-Interscience, 2002.