Как измерить диаграмму направленности антенны
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°. У меня оно получилось:
7.58
Производитель обещает 9.5 dBi, но это в свободном пространстве. Модель антенны в cocoaNEC подсказывает, что в трех метрах от средней земли диаграмма направленности выглядит как-то так:
При этом усиление под углами 2-3° как раз составляет около 7.7 dBi. Вроде, сходится.
Для графического представления собранных данных и сравнения их с моделью были использованы Python и Matplotlib:
# 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.
Метки: Python, Антенны, Беспроводная связь, Любительское радио.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.