← На главную

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

Ранее в статье Используем спутники для проведения 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.