Тема приема и анализа сверхдлинных весьма интересна, и на Хабре она упоминается весьма редко. Попробуем восполнить пробел, и посмотрим как это работает.
Передатчик 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, расположенный в Норвегии. Перечислять остальные смысла нет, список можно посмотреть в Википедии.
Запись и анализ
Посмотрим теперь, как собственно передаются такие сигналы. Для примера я взял наугад сигнал DHO38, передающийся на частоте 23.4 КГц из Германии. Для записи мы выбираем частоту и модуляцию как показано на рисунке, и нажимаем кнопку Audio Recording.
Полученный файл можно открыть в бесплатной программе Signals Analyser. Из картинки очевидно, что мы имеем сигнал с частотной модуляцией (FSK):
Применим к сигналу FSK-демодулятор, и получаем последовательность бит:
Кстати, скорость передачи составляет 200 бит в секунду — чтобы посмотреть youtube, определенно не хватит, но для подводной лодки на глубине 30м даже так и то неплохо. И как нетрудно догадаться, VLF-связь односторонняя — ответить экипаж лодки из под воды не может.
Рассмотрим сигнал более подробно. Сохраним полученный файл в WAV, как показано на скриншоте. Разумеется, получить содержимое передачи мы не сможем — сигнал скорее всего зашифрован. Но можно посмотреть структуру битового потока, для этого сохраненный файл можно вывести графически с помощью 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 явно выходит за рамки этой статьи. Да и по большому счету, смысла в этом не так уж много — сигнал все равно зашифрован, и даже имея битовые данные, больше мы ничего не сделаем. Хотя желающие могут попробовать поискать закономерности самостоятельно.
Заключение
Как можно видеть, изучение подобных систем связи представляет не только технический, но и исторический интерес. А на сверхнизких частотах еще немало интересных сигналов, в том числе и природного происхождения, например резонансы Шумана на частотах 10-20 Герц.
Как обычно, всем удачных экспериментов.