directivity

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

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

Синтаксис

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

Описание

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

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 2 M матрицей, затем каждый столбец задает направление в азимуте и вертикальном изменении, [az;el]. Угол азимута должен находиться между-180 ° и 180 °. Угол вертикального изменения должен находиться между-90 ° и 90 °.

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

Угол азимута является углом между 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

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

Weights размерностьFREQ размерностьЦель
N-by-1 вектор-столбец с комплексным знакомСкаляр или 1 L вектором-строкойПрименяет набор весов для одной частоты или для всех частот L.
N-by-L матрица с комплексным знаком1 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 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

Больше о

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

Смотрите также

| |