exponenta event banner

поэтапный. PartitionedArray

Фазированный массив, разделенный на подмагистрали

Описание

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

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

  1. Определите и настройте секционированный массив. См. раздел Строительство.

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

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

Примечание

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

Строительство

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

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

Свойства

Array

Матрица датчиков

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

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

SubarraySelection

Матрица определения подмассива

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

Центр фазы каждого подрешетки находится в геометрическом центре подрешетки. 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

Частота фазовращателя подрешетки

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

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

NumPhaseShifterBits

Количество битов квантования фазовращателя

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

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

Методы

Специфично для phased.PartitionedArray Объект
beamwidth

Вычислить и отобразить ширину луча для подмассива

collectPlaneWave

Моделирование принятых плоских волн

directivity

Направленность секционированного массива

getElementPosition

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

getNumElements

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

getNumSubarrays

Количество субчипов в массиве

getSubarrayPosition

Позиции субчипов в массиве

isPolarizationCapable

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

pattern

Печать шаблонов направленности, поля и мощности секционированного массива

patternAzimuth

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

patternElevation

Печать направленности или образца секционированного массива в зависимости от отметки

plotResponse

График отклика массива

step

Выходные отклики субчипов

viewArray

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

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

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

Примеры

свернуть все

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

Создайте ULA и разделите ее на два двухэлементных ULA.

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. Затем разбейте ULA на две 2-элементные ULA. Затем вычислите ответную реакцию 4-элементной ULA, разделенной на две 2-элементные ULA.

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] Деревья фургонов, оптимальная обработка массивов H.L. Нью-Йорк: Wiley-Interscience, 2002.

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

.
Представлен в R2012a