step

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

Выведите ответ элемента антенны

Синтаксис

RESP = step(H,FREQ,ANG)

Описание

Примечание

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

RESP = step(H,FREQ,ANG) возвращает ответ напряжения антенны RESP на рабочих частотах, заданных в FREQ и направления заданы в ANG. Форма RESP зависит от того, поддерживает ли элемент антенны поляризацию, как определено SpecifyPolarizationPattern свойство. Если SpecifyPolarizationPattern установлен в false, RESP M-by-L матрица, содержащая ответ антенны под углами M, заданными в ANG и в L частоты заданы в FREQ. Если SpecifyPolarizationPattern установлен в true, RESP MATLAB® struct содержа два поля, RESP.H и RESP.V, представление ответа антенны в горизонтальной и вертикальной поляризации, соответственно. Каждым полем является M-by-L матрица, содержащая ответ антенны под углами M, заданными в ANG и в L частоты заданы в FREQ.

Примечание

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

Входные параметры

H

Объект элемента антенны.

FREQ

Рабочие частоты антенны в герц. FREQ вектор-строка из длины L.

ANG

Направления в градусах. ANG могут быть или 2 M матрицей или вектор-строка из длины M.

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

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

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

RESP

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

  • Если элемент антенны не поддерживает поляризацию, RESP M-by-L матрица. В этой матрице M представляет количество углов, заданных в ANG в то время как L представляет количество частот, заданных в FREQ.

  • Если элемент антенны поддерживает поляризацию, RESP struct MATLAB с полями RESP.H и RESP.V содержа ответы для горизонтальных и вертикальных компонентов поляризации диаграммы направленности антенн. RESP.H и RESP.V M-by-L матрицы. В этих матрицах M представляет количество углов, заданных в ANG в то время как L представляет количество частот, заданных в FREQ.

Примеры

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

Создайте пользовательскую антенну со всенаправленным ответом в азимуте и шаблоном косинуса в вертикальном изменении. Антенна действует на уровне 1 ГГц. Постройте шаблон ответа. Затем найдите ответ антенны на уровне 30 °.

antenna = phased.CustomAntennaElement;
antenna.AzimuthAngles = -180:180;
antenna.ElevationAngles = -90:90;
antenna.MagnitudePattern = mag2db(repmat(cosd(antenna.ElevationAngles)',...
    1,numel(antenna.AzimuthAngles)));

Найдите ответ при вертикальном изменении на 30 ° для рабочей частоты 1 ГГц.

fc = 1.0e9;
resp = antenna(fc,[0;30])
resp = 0.8660

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

az = -180:90:180;
el = -90:45:90;
elresp = cosd(el);
magpattern = mag2db(repmat(elresp',1,numel(az)));
phasepattern = zeros(size(magpattern));
antenna = phased.CustomAntennaElement('AzimuthAngles',az,...
    'ElevationAngles',el,'MagnitudePattern',magpattern, ...
    'PhasePattern',phasepattern);

Отобразите диаграмму направленности.

disp(antenna.MagnitudePattern)
      -Inf      -Inf      -Inf      -Inf      -Inf
   -3.0103   -3.0103   -3.0103   -3.0103   -3.0103
         0         0         0         0         0
   -3.0103   -3.0103   -3.0103   -3.0103   -3.0103
      -Inf      -Inf      -Inf      -Inf      -Inf

Вычислите ответ антенны в парах вертикального изменения азимута (-30,0) и (-45,0) на уровне 500 МГц.

ang = [-30 0; -45 0];
resp = antenna(500.0e6,ang);
disp(resp)
    0.7071
    1.0000

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

g = interp2(deg2rad(antenna.AzimuthAngles),...
    deg2rad(antenna.ElevationAngles),...
    db2mag(antenna.MagnitudePattern),...
    deg2rad(ang(1,:))', deg2rad(ang(2,:))','nearest',0);
h = interp1(antenna.FrequencyVector,...
    db2mag(antenna.FrequencyResponse),500e6,'nearest',0);
antresp = h.*g;

Сравните значение antresp к ответу антенны.

disp(mag2db(antresp))
   -3.0103
         0

Алгоритмы

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

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

|