exponenta event banner

шаг

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

Выполнение оценки 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 - вектор строки оцененных широкополосных углов (в градусах). Этот аргумент можно указать как одинарную или двойную точность.

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

Примечание

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

Примеры

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

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

Создайте сигналы.

fs = 8.0e3;
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)));

Оцените углы прихода.

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

   10.0000   45.0126