шаг

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

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

Синтаксис

ANG = step(H,X)

Описание

Примечание

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

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

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

Примечание

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

Примеры

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

Оцените направления прибытия (DOA) двух сигналов, полученных стандартным ULA с 10 элементами с элементом, располагающим 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)));

Настройте beamspace ESPRIT средство оценки и решите для 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

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