Привет.
Тема приема и анализа сверхдлинных волн весьма интересна, но на Хабре она упоминается весьма редко. Попробуем восполнить пробел, и посмотрим как это работает.
Передатчик VLF в Японии (с) en.wikipedia.org/wiki/Very_low_frequency
VLF
Сверхнизкими считаются частоты радиодиапазона частотой менее 30 КГц. Интерес к ним со стороны военных появился еще давно, когда выяснилось что радиоволны столь большой длины (длина волны до 100 км!) могут проникать сквозь воду, и их можно использовать для связи с подводными лодками. Кто придумал такой способ, сказать сложно, но уже в 1943 г в Германии был запущен передатчик Goliath, передающий данные подводным лодкам на частотах 15-25 КГц. После войны передатчик был разобран, перевезен в СССР и запущен заново, причем согласно Википедии, он работает и до сих пор.
Эффективность любой антенны зависит от длины волны, и для сверхдлинных волн КПД антенны также является сверхнизким — при мощности в мегаватт, излучаемая мощность (EIRP) составляет всего лишь 30-50 КВт. Однако, возможность скрытной передачи сигналов подводным лодкам является весьма привлекательной, так что это никого не остановило — такие системы, разумеется, работают и сейчас. Передать сигналы диапазона VLF очень сложно, однако принять их может любой желающий. Для этого даже не нужен радиоприемник, частоты 20-30 КГц вполне доступны для обычной звуковой карты ПК. Придется взять кабель подлиннее, подключить его ко входу звуковой карты и пойти с ноутбуком куда-нибудь в лес или в поле, где нет индустриальных помех. Хотя современные технологии предоставляют куда более удобный способ приема — онлайн с помощью SDR. Для примера можно посмотреть панораму приемника голландского университета Twente:
Все вертикальные линии — это действующие на данный момент системы. Результат удивительный, спектр СДВ «забит» ничуть не меньше, чем вечерний эфир на вещательном FM-диапазоне. Посмотрим, что мы здесь можем увидеть.
На частотах 12-15 КГц мы видим метки, относящиеся к российской радио-навигационной системе Альфа (полное название РСДН-20 — Радиотехническая Система Дальней Навигации). Согласно Википедии, передатчики «Альфы» работают на частотах 11.9, 12.6 и 14.8 КГц, система обеспечивает точность определения положения до 1.5 км. Впрочем, на панораме никаких импульсов не видно, может у них выходной приемник в Twente недостаточно чувствителен для этого сигнала, или же радиосигналы передаются по какому-то расписанию. Следующим на частоте 16.4 КГц работает передатчик Noviken, расположенный в Норвегии. Перечислять остальные смысла нет, список можно посмотреть в Википедии.
Прием
Как принимаются сигналы сверхнизких частот, вопрос не менее интересный. Но по понятным причинам, в открытых источниках подробной информации об аппаратуре связи с ПЛ практически нет. Общую идею можно понять из картинки:
Загоризонтное распространение сигналов © IEEE Communications Magazine 1981
Как можно видеть, в качестве антенны используется длинный провод, который либо просто тянется за лодкой, либо удерживается на определенной глубине специальным буем. Сами антенны, очевидно, секретными не являются, pdf с описанием довольно легко находится гуглом:
Длина кабеля 700 м впечатляет, но к счастью для нас, «на суше» все гораздо проще, и столь гигантские антенны не требуются, принять сигналы VLF можно даже на портативную антенну MiniWhip, расположенную на балконе.
Запись и анализ
Посмотрим теперь структуру передаваемого радиосигнала. Для примера я взял наугад сигнал DHO38, передающийся на частоте 23.4 КГц из Германии. Для записи мы выбираем частоту и модуляцию как показано на рисунке, и нажимаем кнопку Audio Recording.
Полученный файл можно открыть в бесплатной программе Signals Analyser. Из картинки очевидно, что в сигнале используется частотная модуляция (FSK):
Применим FSK-демодулятор, получаем последовательность бит:
Кстати, скорость передачи составляет 200 бит в секунду — чтобы посмотреть youtube, определенно не хватит, но для подводной лодки на глубине 30м даже так и то неплохо. И как нетрудно догадаться, VLF-связь односторонняя — ответить экипаж лодки из-под воды не может.
Рассмотрим сигнал более подробно. Сохраним полученный после FSK-декодера файл в WAV. Разумеется, получить содержимое передачи мы не сможем — сигнал скорее всего зашифрован. Но можно посмотреть структуру битового потока, «развернув» его в 2D-изображение с помощью Python. Если в данных присутствуют какие-либо повторяющиеся фрагменты (например, поток разбит на пакеты определенной длины), то на изображении это будет хорошо видно.
from scipy.io import wavfile
import matplotlib.pyplot as plt
from PIL import Image
_, data = wavfile.read('websdr_recording_2020-11-06T15_00_00Z_23.4kHz_.wav')
print("WAV: %d samples" % data.shape[0])
for iw in range(400, 1024, 2):
print("Saving: {} of {}...".format(iw, 1024))
w, h = iw, 800
image = Image.new('RGB', (w, h))
px, py = 0, 0
for p in range(data.shape[0]):
image.putpixel((px, py), (0, data[p]//16, 0))
px += 1
if px >= w:
px = 0
py += 1
if py >= h:
break
image.save("image-%d.png" % iw)
Мы не знаем параметры передачи, так что просто переберем все варианты вывода. Результатом будет набор файлов, который выглядит примерно так:
Нетрудно видеть, что при определенной ширине картинки легко угадываются некоторые закономерности. Битовый поток в увеличенном виде:
Желающие могут поэкспериментировать с шириной картинки самостоятельно, принцип, надеюсь, понятен. Наклон линий обусловлен тем, что частоты передатчика и приемника не совпадают. Разумеется, чтобы получить полноценный битовый поток, 20 строчек кода явно недостаточно, а написание цифрового демодулятора с PLL явно выходит за рамки этой статьи. Да и по большому счету, смысла в этом не так уж много — сигнал все равно зашифрован, и даже имея битовые данные, больше мы ничего не сделаем. Хотя желающие могут попробовать поискать закономерности самостоятельно.
Заключение
Как можно видеть, изучение подобных систем связи представляет не только технический, но и исторический интерес. А на сверхнизких частотах еще немало интересных сигналов, как искусственного (передатчик Зевс на частоте 82 Гц), так и природного происхождения, например резонансы Шумана на частотах 10-20 Герц.
Как бонус для тех, кто дочитал досюда: желающие увидеть «вживую», как работает передача и прием на таких частотах, могут попробовать принять немецкую станцию Pinneberg, передающую метеосводки в открытом виде на частоте 147.3 КГц. Декодировать сигнал можно с помощью разных программ, например MultiPSK. Можно рассмотреть и декодирование с помощью Python, если есть желающие, пишите в комментариях.
Как обычно, всем удачных экспериментов.
Автор: DmitrySpb79