В этом примере показано, как использовать непараметрический метод сканирования луча для оценки направлений поступления (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);
Падающее волновое поле состоит из линейных ЧМ импульсов от двух источников. ДОУ двух источников имеют азимут 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 и постройте график пространственного спектра. Местоположения двух наибольших пиков спектра идентифицируют 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)
