The main idea behind beamscan is to form a beam toward all directions and then select the strongest return. For wideband signals, you can use a wideband beamformer. Currently there is no existing interface to scan a wideband beamformer across all directions, but the wideband beamformers are available, so you can just scan those in different directions and find the direction corresponding to the strongest return. Here is a small example, assuming the input signal is x and the code scans -90 to 90 in azimuth:
bf = phased.TimeDelayBeamformer('DirectionSource','Input port');
az = -90:90;
y = zeros(1,numel(az));
for m = 1:numel(az)
y(m) = rms(step(bf,x,[az(m);0]));
end
[~,idx] = max(y);
est_az = az(idx);
Note that you should be able to pick any wideband beamformer to do this.
HTH
Best Answer