Как измерить диаграмму направленности антенны

29 июля 2020

Ранее в статье Используем спутники для проведения QSO на УКВ упоминалась покупная антенна волновой канал с тремя элементами на 145 МГц и пятью элементами на 435 МГц. Из инструкции к антенне мы можем почерпнуть информацию об ее усилении и диаграмме направленности. Но можно ли проверить, что антенна действительно обладает заявленными свойствами? Вдруг она была собрана неправильно, повреждена во время эксплуатации, или производитель попросту нас дурит? Оказывается, что проверить можно, и сделать это не так уж трудно.

Для эксперимента был использован анализатор спектра Rigol DSA815-TG, некоторое количество кабелей RG58, приемная антенна-диполь RTL-SDR Blog Multipurpose Antenna, самодельный петлевой диполь и испытуемая антенна Уда-Яги. Если нет анализатора спектра, можно воспользоваться рацией на 145 МГц и RTL-SDR. Также для задачи сгодится NanoVNA. Я предпочел использовать анализатор спектра по соображениям удобства. Тестирование производилось только на 145 МГц. С другими частотами, само собой разумеется, принцип будет тот же.

Приемная антенна была установлена на высоте около трех метров от земли в горизонтальной поляризации и настроена по антенному анализатору. Последний не обязательно нужен для эксперимента, но с ним вы получите более точные результаты. Если антенного анализатора нет, вместо него можно использовать анализатор спектра с КСВ-мостом или RTL-SDR с генератором шума и направленным ответвителем. Приемная антенна была подключена к входу анализатора спектра.

Петлевой диполь был установлен на той же высоте примерно в 15 метрах от приемной антенны. В общем случае расстояние между антеннами должно составлять по крайней мере несколько λ. Эта антенна была подключена к выходу следящего генератора. На анализаторе спектра видим следующее:

Уровень сигнала от петлевого диполя на анализаторе спектра

Желтый график соответствует ситуации, когда антенны смотрят прямо друг на друга, пурпурный — когда петлевой диполь отвернут на 45°, а бирюзовый — когда антенны стоят перпендикулярно друг другу. Как нам известно, петлевой диполь имеет такое же усиление, что и обычный диполь. Следовательно, -36.85 dB соответствуют усилению 0 dBd или 2.15 dBi. С тем же успехом можно использовать обычный диполь или любую другу антенну с известным усилением. «Калибровочная» антенна нужна только для перевода показаний анализатора спектра в dBi.

Снимаем петлевой диполь и ставим на его место волновой канал. Вращаем его в горизонтальной плоскости и записываем показания для разных углов. Я решил сделать 36 измерений с шагом около 10°. Это, пожалуй, минимальный шаг, при котором антенну еще можно более-менее точно поворачивать на глаз.

Что нам теперь делать с этими данными? Для начала вычислим усиление в dBi для угла 0°. У меня оно получилось:

>>> 36.85-31.42+2.15
7.58

Производитель обещает 9.5 dBi, но это в свободном пространстве. Модель антенны в cocoaNEC подсказывает, что в трех метрах от средней земли диаграмма направленности выглядит как-то так:

Диаграмма направленности волнового канала в трех метрах от земли

При этом усиление под углами 2-3° как раз составляет около 7.7 dBi. Вроде, сходится.

Для графического представления собранных данных и сравнения их с моделью были использованы Python и Matplotlib:

#!/usr/bin/env python3 -u
# vim: set ai et ts=4 sw=4:

from math import pi
import matplotlib.pyplot as plt
import csv

def load_data(fname):
    xs, ys = [], []
    with open(fname, newline = '') as f:
        for row in csv.reader(f, delimiter = ',', quotechar = '"'):
            xs += [ 2*pi*float(row[0])/360 ]
            ys += [ float(row[1]) ]
    max_y = max(ys)
    ys = [ y - max_y for y in ys ]
    return xs, ys

xs, ys = load_data('data/raw-data.csv')
model_xs, model_ys = load_data('data/model-data.csv')

dpi = 80
fig = plt.figure(dpi = dpi, figsize = (512 / dpi, 384 / dpi) )

ax = plt.subplot(111, projection='polar')
ax.set_theta_offset(2*pi*90/360)
ax.plot(xs, ys, linestyle = 'solid', linewidth=3)
ax.plot(model_xs, model_ys, linestyle='dashed', color='red')
ax.set_rmax(0)
ax.set_rticks([-6*i for i in range(0,7)])
ax.set_yticklabels([''] + [str(-6*i) for i in range(1,7)])
ax.set_rlabel_position(0)
ax.set_thetagrids(range(0, 360, 15))
ax.set_theta_direction(-1)
ax.grid(True)

fig.savefig('measured-vs-model.png')

Скрипт выдает такую картинку:

Сравнение измеренной диаграммы направленности антенны с моделью

Синяя сплошная линия — это результаты измерений, а красная пунктирная — результаты моделирования в cocoaNEC. Синий график, конечно, вышел кривоватым. Это объясняется тем, что измерения проводились на дачном участке, где имеются посторонние металлические предметы. Что куда отражается и в какой фазе складывается, предсказать невозможно.

С учетом вышесказанного, измерения очень даже неплохо сошлись с теорией. Результаты можно существенно улучшить, если производить измерения в чистом поле. А если обзавестись поворотным устройством, обеспечивающим точность поворота хотя бы 5°, то наверняка удастся разглядеть на ДН и боковые лепестки.

Такой вот занимательный эксперимент получился. Сырые данные, а также все использованные модели и скрипты, вы найдете в этом репозитории на GitHub.

Дополнение: Вас также может заинтересовать пост Моделирование антенн на Python при помощи PyNEC.

Метки: , , , .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.