phased.PartitionedArray

Фазированная решетка, разделенный на подрешетки

Описание

The PartitionedArray объект представляет фазированную решетку, который разделен на одни или несколько подрешеток.

Чтобы получить ответ подрешеток в секционированном массиве:

  1. Определите и настройте свой секционированный массив. См. «Конструкция».

  2. Функции step вычислить ответ подрешеток согласно свойствам phased.PartitionedArray. Поведение step характерен для каждого объекта в тулбоксе.

Можно также задать PartitionedArray объект как значение SensorArray или Sensor свойство объектов, выполняющих лучевые, рулевые и другие операции.

Примечание

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

Конструкция

H = phased.PartitionedArray создает секционированный массив Системный объект, H. Этот объект представляет массив, который разделен на подрешетки.

H = phased.PartitionedArray(Name,Value) создает секционированный объект массива, H, с каждым заданным именем свойства, установленным на заданное значение. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

Свойства

Array

Массив датчиков

Массив датчиков, заданный как любой Системный объект массива, принадлежащий Toolbox™ Phased Array System.

По умолчанию: phased.ULA('NumElements',4)

SubarraySelection

Матрица определения подрешетки

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

Центр фазы каждой подрешетки находится в геометрическом центре подрешетки. The SubarraySelection и Array свойства определяют геометрический центр.

По умолчанию: [1 1 0 0; 0 0 1 1]

SubarraySteering

Метод рулевого управления подрешетки

Укажите метод подрешетки рулевого управления следующим образом 'None' | 'Phase' | 'Time' | 'Custom'.

  • Когда вы устанавливаете это свойство на 'Phase'Для управления фазы используется переключатель подрешетки. Используйте STEERANG аргумент step метод определения направления рулевого управления.

  • Когда вы устанавливаете это свойство на 'Time', подрешетки управляются с помощью временных задержек. Используйте STEERANG аргумент step метод определения направления рулевого управления.

  • Когда вы устанавливаете это свойство на 'Custom'Подрешетки управляются путем установки независимых весов для всех элементов в каждой подрешетке. Используйте WS аргумент step метод для определения весов для всех подрешеток.

По умолчанию: 'None'

PhaseShifterFrequency

Подрешетка фазы частота переключателя

Задайте рабочую частоту сдвигателей фазы, которые выполняют рулевое управление подрешетки. Значение свойства является положительной скалярной величиной в hertz. Это свойство применяется, когда вы устанавливаете SubarraySteering свойство к 'Phase'.

По умолчанию: 300e6

NumPhaseShifterBits

Количество бит квантования сдвигателя фазы

Количество бит, используемых для квантования фазы компонента сдвига весов лучевого форматора или вектора управления. Задайте количество бит как неотрицательное целое число. Значение нуля указывает, что квантование не выполняется.

По умолчанию: 0

Методы

Характерно для phased.PartitionedArray Объект
beamwidth

Вычислите и отобразите ширину луча для подрешетки

collectPlaneWave

Симулируйте принятые плоские волны

directivity

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

getElementPosition

Положения элементов массива

getNumElements

Количество элементов в массиве

getNumSubarrays

Количество подрешеток в массиве

getSubarrayPosition

Положения подрешеток в массиве

isPolarizationCapable

Поляризационная способность

pattern

Постройте графики направленности, поля и диаграмм направленности мощности разделенных массивов

patternAzimuth

Постройте график направленности разделенного массива или шаблона от азимута

patternElevation

Постройте график направленности разделенного массива или шаблона от повышения

plotResponse

Постройте диаграмму направленности массива

step

Выходные отклики подрешеток

viewArray

Просмотрите геометрию массива

Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

Примеры

свернуть все

Постройте график азимутальной характеристики ULA с 4 элементами, разделенных на два ULA с 2 элементами. Длина интервала элемента составляет половину длины волны.

Создайте ULA и разделите его на два ULA с 2 элементами.

sULA = phased.ULA('NumElements',4,'ElementSpacing',0.5);
sPA = phased.PartitionedArray('Array',sULA,...
    'SubarraySelection',[1 1 0 0;0 0 1 1]);

Постройте график азимутальной характеристики массива. Предположим, что рабочая частота составляет 1 ГГц, а скорость распространения - это скорость света.

fc = 1e9;
pattern(sPA,fc,[-180:180],0,'Type','powerdb',...
    'CoordinateSystem','polar',...
    'Normalize',true)

Создайте ULA с 4 элементами. Затем разделите ULA на два 2-элементных ULA. Затем вычислите ответ при появлении ULA с 4 элементами, разделенными на два ULA с 2 элементами.

sULA = phased.ULA('NumElements',4,'ElementSpacing',0.5);
sPA = phased.PartitionedArray('Array',sULA,...
   'SubarraySelection',[1 1 0 0;0 0 1 1]);

Вычислите ответ на 1 ГГц. Скорость распространения сигнала является скоростью света.

fc = 1e9;
resp = step(sPA,fc,[0;0],physconst('LightSpeed'))
resp = 2×1

     2
     2

Создайте секционированный массив URA с тремя подрешетками разных размеров. Подрешетки имеют 8, 16 и 32 элемента. Используйте различные наборы весов подрешетки элемента для каждой подрешетки.

Создайте элемент URA 4 на 56.

antenna = phased.IsotropicAntennaElement;
fc = 300e6;
c = physconst('LightSpeed');
lambda = c/fc;
n1 = 2^3;
n2 = 2^4;
n3 = 2^5;
nrows = 4;
ncols = n1 + n2 + n3;
array = phased.URA('Element',antenna,'Size',[nrows,ncols]);

Выберите три подрешетки путем установки матрицы выбора.

sel1 = zeros(nrows,ncols);
sel2 = sel1;
sel3 = sel1;
sel = zeros(3,nrows*ncols);
for r = 1:nrows
    sel1(r,1:n1) = 1;
    sel2(r,(n1+1):(n1+n2)) = 1;
    sel3(r,((n1+n2)+1):ncols) = 1;
end
sel(1,:) = sel1(:);
sel(2,:) = sel2(:);
sel(3,:) = sel3(:);

Создайте секционированный массив.

partarray = phased.PartitionedArray('Array',array, ...
    'SubarraySelection',sel,'SubarraySteering','Custom');
viewArray(partarray,'ShowSubarray','All');

Установите веса для каждой подрешетки и получите ответ каждой подрешетки. Поместите веса в массив ячеек.

wts1 = ones(nrows*n1,1);
wts2 = 1.5*ones(nrows*n2,1);
wts3 = 3*ones(nrows*n3,1);
resp = partarray(fc,[30;0],c,{wts1,wts2,wts3})
resp = 3×1 complex

   0.0246 + 0.0000i
   0.0738 - 0.0000i
   0.2951 - 0.0000i

Ссылки

[1] Van Trees, H.L. Optimum Array Processing. Нью-Йорк: Wiley-Interscience, 2002.

Расширенные возможности

.
Введенный в R2012a