System object: phased.BeamscanEstimator2D
Package: phased

Perform spatial spectrum estimation


Y = step(H,X)
[Y,ANG] = step(H,X)


Y = step(H,X) estimates the spatial spectrum from X using the estimator H. X is a matrix whose columns correspond to channels. Y is a matrix representing the magnitude of the estimated 2-D spatial spectrum. Y has a row dimension equal to the number of elevation angles specified in ElevationScanAngles and a column dimension equal to the number of azimuth angles specified in AzimuthScanAngles.

[Y,ANG] = step(H,X) returns additional output ANG as the signal's direction of arrival (DOA) when the DOAOutputPort property is true. ANG is a two row matrix where the first row represents the estimated azimuth and the second row represents the estimated elevation (in degrees).




Estimate the DOAs of two signals received by a 50-element URA with a rectangular lattice. The antenna operating frequency is 150 MHz. The actual direction of the first signal is –37 degrees in azimuth and 0 degrees in elevation. The direction of the second signal is 17 degrees in azimuth and 20 degrees in elevation.

ha = phased.URA('Size',[5 10],'ElementSpacing',[1 0.6]);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
lambda = physconst('LightSpeed')/fc;
ang1 = [-37; 0]; ang2 = [17; 20];
x = sensorsig(getElementPosition(ha)/lambda,8000,[ang1 ang2],0.2);
hdoa = phased.BeamscanEstimator2D('SensorArray',ha,...
[~,doas] = step(hdoa,x);
Was this topic helpful?