шаг

Системный объект: поэтапный. 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 вычисляет оба ответа с помощью самой близкой соседней интерполяции, и затем умножает ответы, чтобы сформировать общий ответ.

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

|

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