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

Этот пример показывает, как использовать непараметрический beamscan метод, чтобы оценить направление прибытия (DOA) сигналов. beamscan алгоритм оценивает DOAs путем сканирования луча массивов по видимой области. Алгоритм вычисляет выходную мощность для каждого beamscan угла и идентифицирует максимумы как оценки DOA.

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step. Например, замените myObject(x) на step(myObject,x).

Создайте ULA, состоящий из десяти элементов. Примите, что несущая частота входящих узкополосных источников составляет 1 ГГц.

fc = 1e9;
lambda = physconst('LightSpeed')/fc;
sULA = phased.ULA('NumElements',10,'ElementSpacing',lambda/2);
sULA.Element.FrequencyRange = [8e8 1.2e9];

Примите, что существует wavefield инцидент на ULA, состоящем из двух линейных импульсов 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(sULA,[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. Выведите оценки DOA и постройте пространственный спектр.

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте