exponenta event banner

шаг

Системный объект: поэтапный. PartitionedArray
Пакет: поэтапный

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

Описание

Примечание

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

пример

RESP = step(H,FREQ,ANG,V) возвращает ответы RESP субчипов в массиве, на рабочих частотах, указанных в FREQ и направления, указанные в ANG. Фазовый центр каждого субчипа находится в его геометрическом центре. V - скорость распространения. Элементы в каждой подрешетке соединены с фазовым центром подрешетки с помощью подачи по равному пути.

RESP = step(H,FREQ,ANG,V,STEERANGLE) использование STEERANGLE в качестве направления управления подрешетки. Этот синтаксис доступен при установке SubarraySteering свойство для любого из них 'Phase' или 'Time'.

пример

RESP = step(H,FREQ,ANG,V,WS) использование WS в качестве весов элементов субчипов. Этот синтаксис доступен при установке SubarraySteering свойство для 'Custom'.

Примечание

Объект выполняет инициализацию при первом выполнении объекта. Эта инициализация блокирует неперестраиваемые свойства и входные спецификации, такие как размеры, сложность и тип данных входных данных. При изменении неперестраиваемого свойства или входной спецификации системный объект выдает ошибку. Чтобы изменить неперестраиваемые свойства или входные данные, необходимо сначала вызвать release метод разблокирования объекта.

Входные аргументы

H

Объект секционированного массива.

FREQ

Рабочие частоты матрицы в герцах. FREQ - вектор строки длиной L. Типичные значения находятся в диапазоне, заданном свойством H.Array.Element. Это свойство имеет имя FrequencyRange или FrequencyVector, в зависимости от типа элемента в массиве. Элемент имеет нулевой отклик на частотах вне этого диапазона.

ANG

Проезд в градусах. ANG может быть либо 2-by-M матрицей, либо вектором строки длиной М.

Если ANG является 2-by-M матрицей, каждый столбец матрицы задает направление в форме [азимут; отметка]. Угол азимута должен быть от -180 до 180 градусов включительно. Угол возвышения должен быть от -90 до 90 градусов включительно.

Если ANG - вектор строки длиной М, каждый элемент задает азимутальный угол направления. В этом случае соответствующий угол возвышения принимается равным 0.

V

Скорость распространения в метрах в секунду. Это значение должно быть скаляром.

STEERANGLE

Направление руления подрешетки. STEERANGLE может быть либо 2-элементным вектором столбца, либо скаляром.

Если STEERANGLE является 2-элементным вектором-столбцом, имеет вид [azimuth; elevation]. Угол азимута должен быть от -180 до 180 градусов включительно. Угол возвышения должен быть от -90 до 90 градусов включительно.

Если STEERANGLE - скаляр, задающий азимутальный угол направления. В этом случае предполагается, что угол возвышения равен 0.

WS

Веса элементов субчипов

Веса элементов субчипов, заданные как матрица NSE-by-N с комплексным значением или 1-by-N массив ячеек, где N - количество субчипов.

Субчипы не должны иметь одинаковые размеры и размеры. В этом случае веса субчипов задаются как

  • матрица NSE-на-N, где NSE - это число элементов в наибольшем подрешётке. Первые Q элементов в каждом столбце являются весами элементов для подрешетки, где Q - количество элементов в подрешетке.

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

Зависимости

Чтобы включить этот аргумент, установите SubarraySteering кому 'Custom'.

Выходные аргументы

RESP

Отклики напряжения подрешеток фазированной матрицы. Выходной сигнал зависит от того, поддерживает ли матрица поляризацию.

  • Если матрица не способна поддерживать поляризацию, отклик напряжения, RESP, имеет размеры N-by-M-by-L. Размер N представляет количество подрешеток в фазированном массиве, M представляет количество углов, указанных в ANG, и L представляет количество частот, указанных в FREQ. Для определенного подмассива каждый столбец RESP содержит отклики подчисток для соответствующего направления, указанного в ANG. Каждая из L страниц RESP содержит отклики субчипов для соответствующей частоты, указанной в FREQ.

  • Если матрица способна поддерживать поляризацию, отклик напряжения, RESP, является MATLAB ®struct содержащие два поля, RESP.H и RESP.V. Область RESP.H представляет отклик горизонтальной поляризации массива, в то время как RESP.V представляет отклик вертикальной поляризации массива. Каждое поле имеет размеры N-by-M-by-L. Размер N представляет количество подрешеток в фазированном массиве, M представляет количество углов, указанных в ANG, и L представляет количество частот, указанных в FREQ. Для определенного подмассива каждый столбец RESP содержит отклики подчисток для соответствующего направления, указанного в ANG. Каждая из L страниц RESP содержит отклики субчипов для соответствующей частоты, указанной в FREQ.

Примеры

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

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

Примечание.Этот пример выполняется только в R2016b или более поздних версиях. При использовании более ранней версии замените каждый вызов функции эквивалентным step синтаксис. Например, заменить myObject(x) с step(myObject,x).

Настройте секционированный массив.

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

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

resp = partitionedarray(1.0e9,[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

См. также

|