Подрешетки в массивах

Определение подрешеток

В программном обеспечении Phased Array System Toolbox™ subarray является доступным подмножеством элементов массива. Когда вы используете массив, который содержит подрешетки, можно получить доступ к измерениям от подрешеток, но не от отдельных элементов. Точно так же можно выполнить обработку на уровне подрешетки, но не на уровне отдельных элементов. В результате система имеет меньше степеней свободы, чем если бы вы управляли системой на уровне отдельных элементов.

Преимущества Использования подрешеток

Радарные приложения часто используют подрешетки, потому что операции, такие как перемена фазы и аналого-цифровое преобразование, являются слишком дорогими, чтобы реализовать для каждого элемента. Менее дорого сгруппировать элементы массива через оборудование, таким образом создавая подрешетки в массиве. Группировка элементов через оборудование ограничивают доступ к измерениям и обработка к уровню подрешетки.

Поддержка подрешеток в массивах

Чтобы работать с подрешетками, необходимо задать массив и подрешетки в нем. Можно или задать массив сначала или начать с подрешетки. Выберите один из этих подходов:

  • Задайте одну подрешетку, и затем создайте больший массив путем расположения копий подрешетки. Подрешетка может быть ULA, URA или конформным массивом. Копии идентичны, за исключением их местоположения и ориентации. Можно расположить копии пространственно в сетке или пользовательском макете.

    Когда вы используете этот подход, вы создаете большой массив путем создания phased.ReplicatedSubarray Система object™. Это объект сохраняет информацию о подрешетке и как копии его располагаются, чтобы сформировать больший массив.

  • Задайте массив, и затем разделите его в подрешетки. Массив может быть ULA, URA или конформным массивом. Подрешетки не должны быть идентичными. Данный элемент массива может быть больше чем в одной подрешетке, ведя к overlapped subarrays.

    Когда вы используете этот подход, вы делите свой массив путем создания phased.PartitionedArray Системный объект. Это объект сохраняет информацию о массиве и его структуре подрешетки.

После того, как вы создаете phased.ReplicatedSubarray или phased.PartitionedArray объект, можно использовать его, чтобы выполнить beamforming, регулирование или другие операции. Для этого задайте свой объект как значение SensorArray или Sensor свойство в объектах, которые имеют такое свойство и ту поддержку подрешетки. Объекты, которые поддерживают подрешетки в их SensorArray или Sensor свойство включает:

  • phased.AngleDopplerResponse

  • phased.ArrayGain

  • phased.ArrayResponse

  • phased.Collector

  • phased.ConstantGammaClutter

  • phased.MVDRBeamformer

  • phased.PhaseShiftBeamformer

  • phased.Radiator

  • phased.STAPSMIBeamformer

  • phased.SteeringVector

  • phased.SubbandPhaseShiftBeamformer

  • phased.WidebandCollector

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

В этом примере показано, как настроить прямоугольный массив, содержащий линейные подрешетки. Пример также находит центры фазы подрешеток.

Создайте 2 3 прямоугольный массив.

array = phased.URA('Size',[2 3]);

Постройте положения элементов массива в yz-плоскости (все x-координаты являются нулем.) Включают метки, которые указывают на нумерацию элементов. Нумерация важна для выбора, какие элементы включены в каждую подрешетку.

viewArray(array,'ShowIndex','All')

Создайте и просмотрите массив, состоящий из трех линейных подрешеток с 2 элементами каждая параллель к оси z. Используйте индексы из графика сформировать матрицу для SubarraySelection свойство. getSubarrayPosition метод возвращает центры фазы этих трех подрешеток.

subarray1 = [1 1 0 0 0 0; 0 0 1 1 0 0; 0 0 0 0 1 1];
partitionedarray1 = phased.PartitionedArray('Array',array,...
   'SubarraySelection',subarray1);
viewArray(partitionedarray1)

subarray1pos = getSubarrayPosition(partitionedarray1)
subarray1pos = 3×3

         0         0         0
   -0.5000         0    0.5000
         0         0         0

Создайте и просмотрите другой массив, состоящий из двух линейных подрешеток с 3 элементами, параллельных оси Y. Используя getSubarrayPosition метод, найдите центры фазы этих двух подрешеток.

subarray2 = [0 1 0 1 0 1; 1 0 1 0 1 0];
partitionedarray2 = phased.PartitionedArray('Array',array,...
   'SubarraySelection',subarray2);
viewArray(partitionedarray2)

subarraypos2 = getSubarrayPosition(partitionedarray2)
subarraypos2 = 3×2

         0         0
         0         0
   -0.2500    0.2500

Линейная подрешетка, реплицированная, чтобы сформировать прямоугольный массив

В этом примере показано, как расположить копии линейной подрешетки, чтобы сформировать прямоугольный массив.

Создайте линейную матрицу с 4 элементами, параллельную оси Y.

array = phased.ULA('NumElements',4);

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

replsubarray = phased.ReplicatedSubarray('Subarray',array,'GridSize',[2 1]);

Постройте положения элементов массива (заполненные круги) и центры фазы подрешеток (незаполненные круги). Элементы лежат в yz-плоскости, потому что все x-координаты являются нулем.

viewArray(replsubarray);
hold on;
subarraypos = getSubarrayPosition(replsubarray);
sx = subarraypos(1,:);
sy = subarraypos(2,:);
sz = subarraypos(3,:);
scatter3(sx,sy,sz,'ro')
hold off

Линейная подрешетка, реплицированная в пользовательскую сетку

В этом примере показано, как расположить копии линейной подрешетки в треугольном размещении.

Создайте линейную матрицу с 4 элементами.

antenna = phased.CosineAntennaElement('CosinePower',1);
array = phased.ULA('NumElements',4,'Element',antenna);

Создайте больший массив путем расположения трех копий линейной матрицы. Задайте центры фазы и нормальные направления трех копий явным образом.

vertex_ang = [60 180 -60];
vertex = 2*[cosd(vertex_ang); sind(vertex_ang); zeros(1,3)];
subarray_pos = 1/2*[...
   (vertex(:,1)+vertex(:,2)) ...
   (vertex(:,2)+vertex(:,3)) ...
   (vertex(:,3)+vertex(:,1))];
replsubarray = phased.ReplicatedSubarray('Subarray',array,...
   'Layout','Custom',...
   'SubarrayPosition',subarray_pos,...
   'SubarrayNormal',[120 0;-120 0;0 0].');

Постройте положения (синих) элементов массива и центры фазы (красные) из подрешеток. График находится в xy-плоскости, потому что все z-координаты являются нулем.

viewArray(replsubarray,'ShowSubarray',[])
hold on
scatter3(subarray_pos(1,:),subarray_pos(2,:),...
   subarray_pos(3,:),'ro')
hold off

Похожие темы