поэтапный. PartitionedArray

Поэтапный массив разделен в подмассивы

Описание

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

Получить ответ подмассивов в разделенном массиве:

  1. Задайте и настройте свой разделенный массив. Смотрите Конструкцию.

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

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

Примечание

При запуске в 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

Сенсорная матрица

Сенсорная матрица, заданная как любой Системный объект массивов, принадлежащий Phased Array System 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

Методы

collectPlaneWaveМоделируйте полученные плоские волны
направленностьНаправленность разделенного массива
getElementPositionПоложения элементов массива
getNumElementsЧисло элементов в массиве
getNumSubarraysКоличество подмассивов в массиве
getSubarrayPositionПоложения подмассивов в массиве
isPolarizationCapableВозможность поляризации
шаблонПостройте разделенную направленность массивов, поле и шаблоны степени
patternAzimuthПостройте разделенную направленность массивов или шаблон по сравнению с азимутом
patternElevationПостройте разделенную направленность массивов или шаблон по сравнению с повышением
plotResponseПостройте шаблон ответа массива
шагВыведите ответы подмассивов
viewArrayПросмотрите геометрию массивов
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

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

Постройте ответ азимута ULA с 4 элементами, разделенного в два ULA's с 2 элементами. Интервал элемента является половиной длины волны.

Создайте ULA и разделите его в два ULA's с 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 в два ULAs с 2 элементами. Затем вычислите ответ в опорном направлении ULA с 4 элементами, разделенного в два ULAs с 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 элемента. Используйте различные наборы весов элемента подмассива для каждого подмассива.

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

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-межнаука, 2002.

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

Представленный в R2012a

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