Пользовательский элемент антенны

Поддержка пользовательских элементов антенны

Объект phased.CustomAntennaElement позволяет вам смоделировать пользовательский элемент антенны. Когда вы используете phased.CustomAntennaElement, необходимо задать эти аспекты антенны:

  • Операционный вектор частоты для элемента антенны

  • Частотная характеристика элемента на частотах в операционном векторе частоты

  • Углы азимута и углы повышения, где пользовательский ответ оценен

  • Диаграмма направленности значения. Этот шаблон показывает пространственный ответ антенны в азимуте и углах повышения, которые вы задаете.

    Совет

    Можно импортировать диаграмму направленности, которая использует u/v координаты или φ/θ углы вместо углов азимута/повышения. Чтобы использовать такой шаблон с phased.CustomAntennaElement, сначала преобразуйте свой шаблон в форму азимута/повышения. Используйте uv2azelpat или phitheta2azelpat, чтобы сделать преобразование. Для примера смотрите Анализ Антенной решетки с Пользовательской Диаграммой направленности.

Для вашего пользовательского элемента антенны ответ антенны зависит от частотной характеристики и диаграммы направленности. А именно, частота и пространственные ответы интерполированы отдельно с помощью интерполяции ближайшего соседа и затем умножены вместе, чтобы произвести общий ответ. Чтобы избежать ошибок интерполяции, область значений углов азимута должна включать +/– 180 градусов, и область значений углов повышения должна включать +/– 90 градусов.

Антенна с пользовательской диаграммой направленности

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

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