направленность

Системный объект: поэтапный. 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

Веса подмассива, заданные как пара, разделенная запятой, состоящая из 'Weights' и N-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

Больше о

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

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