directivity

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

Направленность разбитого массива

Синтаксис

D = directivity(H,FREQ,ANGLE)
D = directivity(H,FREQ,ANGLE,Name,Value)

Описание

D = directivity(H,FREQ,ANGLE) возвращает Directivity разделённого массива элементов антенны или микрофона, H, на частотах, заданных FREQ и в углах направления, заданных ANGLE.

Интегрирование, используемое при вычислении направленности массива, имеет минимальную сетку дискретизации 0,1 степеней. Если шаблон имеет ширину луча, меньшую этой, значение направленности будет неточным.

D = directivity(H,FREQ,ANGLE,Name,Value) возвращает направление с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

Входные параметры

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

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

Пример: H = phased.PartitionedArray;

Частоты для вычисления направленности и шаблонов, заданные как положительный скаляр или 1-байт- L вещественный вектор-строка. Частотные модули указаны в герцах.

  • Для антенны, микрофона или гидроакустического гидрофона или элемента проектора, FREQ должно находиться в области значений значений, заданных FrequencyRange или FrequencyVector свойство элемента. В противном случае элемент не выдает отклика, и направленность возвращается следующим –Inf. Большинство элементов используют FrequencyRange свойство кроме phased.CustomAntennaElement и phased.CustomMicrophoneElement, которые используют FrequencyVector свойство.

  • Для массива элементов, FREQ должен находиться в частотной области значений элементов, образующих массив. В противном случае массив не выдает отклика, и направленность возвращается следующим –Inf.

Пример: [1e8 2e6]

Типы данных: double

Углы для вычисления направленности, заданные как 1-байтовый M вещественный вектор-строка или 2-байтовая M вещественная матрица, где M - количество угловых направлений. Угловые модули находятся в степенях. Если ANGLE является матрицей M 2 байта, затем каждый столбец задает направление по азимуту и повышению, [az;el]. Угол азимута должен лежать между -180 ° и 180 °. Угол возвышения должен лежать между -90 ° и 90 °.

Если ANGLE является вектором с M 1 байт, затем каждая запись представляет угол азимута, причем угол возвышения принимается равным нулю.

Угол азимута является углом между осью x и проекцией вектора направления на плоскость xy. Этот угол положителен при измерении от оси x к оси y. Угол возвышения является углом между вектором направления и xy плоскостью. Этот угол положителен при измерении к оси z. См. «Азимут и углы возвышения».

Пример: [45 60; 0 10]

Типы данных: double

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Скорость распространения сигнала, заданная как разделенная разделенными запятой парами, состоящая из 'PropagationSpeed' и положительная скалярная величина в метрах в секунду.

Пример: 'PropagationSpeed',physconst('LightSpeed')

Типы данных: double

Веса подрешетки, заданные как разделенная разделенными запятой парами, состоящая из 'Weights'и N -by-1 комплексно-значимый вектор-столбец или N -by M комплексно-значимая матрица. Размерное N является количеством подрешеток в массиве. Размерное L является количеством частот, заданным FREQ аргумент.

Weights размерностьFREQ размерностьЦель
N вектор-на-1 с комплексным значениемСкаляр или 1-байт- L вектор-строкаПрименяет набор весов для одной частоты или для всех L частот.
N -by L комплексно-значимую матрицу1-by- L вектор-строкаПрименяет каждый из L столбцов ‘Weights’ для соответствующей частоты в FREQ аргумент.

Пример: 'Weights',ones(N,M)

Типы данных: double

Угол поворота подрешетки, заданная как разделенная запятой пара, состоящая из 'SteerAngle' и скаляром или вектором-столбцом 2 на 1.

Если 'SteerAngle' является вектором-столбцом 2 на 1, имеет вид [azimuth; elevation]. Угол азимута должен быть между -180 ° и 180 ° включительно. Угол возвышения должен быть между -90 ° и 90 ° включительно.

Если 'SteerAngle' является скаляром, он задает только угол азимута. В этом случае угол возвышения принимается равным 0.

Эта опция применяется только тогда, когда 'SubarraySteering' свойство Системного объекта установлено в 'Phase' или 'Time'.

Пример: 'SteerAngle',[20;30]

Типы данных: double

Веса элемента подрешетки, заданные как комплексный NSE -by- N матрица или 1-by- N массив ячеек. Веса применяются к отдельным элементам в подрешетку. Подрешетки могут иметь различные размеры и размерности.

Если ElementWeights является сложноценной NSE -by - N матрицей, NSE является количеством элементов в наибольшей подрешетке, а N - количеством подрешеток. Каждый столбец матрицы задает веса для соответствующей подрешетки. В качестве весов применяются только первые K значения в каждом столбце, где K количество элементов в соответствующей подрешетке.

Если ElementWeights является массивом ячеек 1 N байта. Каждая камера содержит комплексный вектор-столбец весов для соответствующих подрешеток. Длины векторов-столбцов равны количеству элементов в соответствующих подрешетках.

Зависимости

Чтобы включить эту пару "имя-значение", установите SubarraySteering свойство массива, которое нужно 'Custom'.

Типы данных: double
Поддержка комплексного числа: Да

Выходные аргументы

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

Направленность, возвращенная как M -by - L матрица. Каждая строка соответствует одному из углов M, заданных как ANGLE. Каждый столбец соответствует одному из L значений частоты, заданных в FREQ. Модули направленности находятся в dBi, где dBi задан как коэффициент усиления элемента относительно изотропного излучателя.

Примеры

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

Вычислите направленность разделённого массива, образованной из одной ULA с 20 элементами, разделенными на четверти длины волны. Затем подмассив направляется по фазе к 30 степеням азимута. Директивы вычисляются под углами азимута от 0 до 60 степеней.

c = physconst('LightSpeed');
fc = 3e8;
lambda = c/fc;
angsteer = [30;0];
ang = [0:10:60;0,0,0,0,0,0,0];

Создайте секционированный массив ULA с помощью SubarraySelection свойство.

myArray = phased.PartitionedArray('Array',...
    phased.ULA(20,lambda/4),'SubarraySelection',...
    [ones(1,10) zeros(1,10);zeros(1,10) ones(1,10)],...
    'SubarraySteering','Phase','PhaseShifterFrequency',fc);

Создайте вектор управления и вычислите направленность.

myStv = phased.SteeringVector('SensorArray',myArray,...
    'PropagationSpeed',c);
d = directivity(myArray,fc,ang,'PropagationSpeed',c,'Weights',...
    step(myStv,fc,angsteer),'SteerAngle',angsteer)
d = 7×1

   -7.5778
   -4.7676
   -2.0211
   10.0996
    0.9714
   -3.5575
  -10.8439

Подробнее о

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