step

Системный объект: phased.RootWSFEstimator
Пакет: поэтапный

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

Синтаксис

ANG = step(H,X)

Описание

Примечание

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

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

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

Примечание

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

Примеры

развернуть все

Во-первых, оцените DOAs двух сигналов, полученных стандартным ULA с 10 элементами с интервалом элемента 1 метра. Антенна рабочая частота составляет 150 МГц. Фактическое направление первого сигнала составляет 10 ° в азимуте и 20 ° в вертикальном изменении. Направление второго сигнала составляет 45 ° в азимуте и −5 ° в вертикальном изменении.

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

Создайте сигналы с добавленным шумом. Затем создайте Систему ULA object™.

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 = 150.0e6;
x = collectPlaneWave(array,[x1 x2],[10 20; 45 60]',fc);
noise = 0.1*(randn(size(x)) + 1i*randn(size(x)));

Создайте Системный объект средства оценки WSF.

estimator = phased.RootWSFEstimator('SensorArray',array,...
    'OperatingFrequency',fc,...
    'NumSignalsSource','Property','NumSignals',2);

Оцените DOAs.

doas = estimator(x + noise);
doas = broadside2az(sort(doas),[20 -5])
doas =

   10.0002   20.7934