step

Системный объект: phased.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 M матрицей или вектор-строка из длины M.

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

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

V

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

STEERANGLE

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

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

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

WS

Веса элемента подрешетки

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

Подрешетки не должны иметь тех же размерностей и размеров. В этом случае вы задаете веса подрешетки как

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

  • 1 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.

Примеры

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

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

Примечание: Этот пример запускается только в 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 элемента. Используйте различные наборы весов элемента подрешетки для каждой подрешетки.

Создайте 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

Смотрите также

|