Этот пример показывает, как использовать непараметрический метод сканирования луча для оценки направлений прибытия (DOA) двух сигналов. Алгоритм сканирования луча оценивает DOA путем сканирования луча массива по необходимой области. Алгоритм вычисляет выход степени для каждого угла сканирования луча и идентифицирует максимумы как оценки DOA.
Создайте однородный линейный массив (ULA), состоящую из десяти изотропных антенных элементов. Несущая частота входящих узкополосных источников составляет 1 ГГц.
fc = 1e9; lambda = physconst('LightSpeed')/fc; antenna = phased.IsotropicAntennaElement('FrequencyRange',[8e8 1.2e9]); array = phased.ULA('Element',antenna,'NumElements',10,'ElementSpacing',lambda/2);
Падающее волновое поле состоит из линейных FM импульсов от двух источников. DOA двух источников 30 ° азимут и 60 ° азимут. Оба источника имеют углы возвышения 0 °.
waveform = phased.LinearFMWaveform('SweepBandwidth',1e5,... 'PulseWidth',5e-6,'OutputFormat','Pulses','NumPulses',1); sig1 = waveform(); sig2 = sig1; ang1 = [30; 0]; ang2 = [60;0]; arraysig = collectPlaneWave(array,[sig1 sig2],[ang1 ang2],fc); rng default npower = 0.01; noise = sqrt(npower/2)*... (randn(size(arraysig)) + 1i*randn(size(arraysig))); rxsig = arraysig + noise;
Реализуйте оценщик DOA сканирования луча. Сканирование углов азимута кому . Выведите оценки DOA и постройте график пространственного спектра. Местоположения двух крупнейших peaks спектра идентифицируют DOA сигналов.
estimator = phased.BeamscanEstimator('SensorArray',array,... 'OperatingFrequency',fc,'ScanAngles',-90:90,... 'DOAOutputPort',true,'NumSignals',2); [y,sigang] = estimator(rxsig); disp(sigang)
64 28
Постройте график пространственного спектра как функции широкого угла.
plotSpectrum(estimator)