step

Системный объект: фазированный. BeamspaceESPRITEstimator
Пакет: поэтапный

Выполните оценку DOA

Синтаксис

ANG = step(H,X)

Описание

Примечание

Начиная с R2016b, вместо использования step метод для выполнения операции, заданной Системной object™, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

ANG = step(H,X) оценивает DOA из X использование оценщика DOA H. X - матрица, столбцы которой соответствуют каналам. ANG является вектор-строка предполагаемых широких боковых углов (в степени). Можно задать входные данные X как одинарная или двойная точность.

Размер первой размерности матрицы входа может варьироваться, чтобы симулировать изменяющуюся длину сигнала. Изменение размера может произойти, например, в случае импульсного сигнала с переменной частотой повторения импульса.

Примечание

Объект выполняет инициализацию при первом выполнении объекта. Эта инициализация блокирует нетронутые свойства и входные спецификации, такие как размерности, сложность и тип данных входных данных. Если вы изменяете свойство nontunable или спецификацию входа, системный объект выдает ошибку. Чтобы изменить нетронутые свойства или входы, необходимо сначала вызвать release метод для разблокировки объекта.

Примеры

расширить все

Оцените направления прибытия (DOA) двух сигналов, принятых стандартным 10-элементным ULA с интервалом элементов 1 метр. Рабочая частота антенны составляет 150 МГц. Фактическое направление первого сигнала составляет 10 ° по азимуту и 20 ° по повышению. Направление второго сигнала 45 ° по азимуту и 60 ° по повышению.

Создайте два сигнала, поступающих в массив.

fs = 8000;
t = (0:1/fs:1).';
x1 = cos(2*pi*t*300);
x2 = cos(2*pi*t*400);
array = phased.ULA('NumElements',10,'ElementSpacing',1);
array.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(array,[x1 x2],[10 20;45 60]',fc);
noise = 0.1/sqrt(2)*(randn(size(x)) + 1i*randn(size(x)));

Настройте пространство луча ESPRIT estimator и решите для DOAs.

estimator = phased.BeamspaceESPRITEstimator('SensorArray',array, ...
    'OperatingFrequency',fc,'NumSignalsSource','Property','NumSignals',2);
doas = estimator(x + noise);
az = broadside2az(sort(doas),[20 60])
az = 1×2

    9.9972   45.0061