Оценка Beamscan направления прибытия

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

Инцидент wavefield состоит из линейных импульсов FM из двух источников. DOAs этих двух источников являются азимутом на 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;

Реализуйте beamscan средство оценки DOA. Отсканируйте углы азимута от -90° к 90°. Выведите оценки DOA и постройте пространственный спектр. Местоположения двух самых больших peaks спектра идентифицируют DOAs сигналов.

estimator = phased.BeamscanEstimator('SensorArray',array,...
    'OperatingFrequency',fc,'ScanAngles',-90:90,...
    'DOAOutputPort',true,'NumSignals',2);
[y,sigang] = estimator(rxsig);
disp(sigang)
    64    28

Постройте пространственный спектр в зависимости от поперечного угла.

plotSpectrum(estimator)

Figure contains an axes. The axes with title Beamscan Spatial Spectrum contains an object of type line. This object represents 1 GHz.

Похожие темы