phased.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