[Python, Программирование, Анализ и проектирование систем, Разработка систем связи, Научно-популярное] Как принять сигналы немецкого ВМФ с помощью звуковой карты, или изучаем радиосигналы сверхнизких частот

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
07-Ноя-2020 04:31

Привет, Хабр.
Тема приема и анализа сверхдлинных волн весьма интересна, но на Хабре она упоминается весьма редко. Попробуем восполнить пробел, и посмотрим как это работает.

Передатчик 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, как показано на скриншоте. Разумеется, получить содержимое передачи мы не сможем — сигнал скорее всего зашифрован. Но можно посмотреть структуру битового потока, «развернув» его в 2D-изображение с помощью Python. Если в данных присутствуют какие-либо повторяющиеся фрагменты (например, поток разбит на пакеты определенной длины), то на изображении это будет хорошо видно.

Исходный код

SPL
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 Герц.
Как бонус для тех, кто дочитал досюда: желающие увидеть «вживую», как работает передача и прием на таких частотах, могут попробовать принять немецкую станцию Pinneberg, передающую метеосводки в открытом виде на частоте 147.3 КГц. Декодировать сигнал можно с помощью разных программ, например MultiPSK.
Как обычно, всем удачных экспериментов.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_python, #_programmirovanie (Программирование), #_analiz_i_proektirovanie_sistem (Анализ и проектирование систем), #_razrabotka_sistem_svjazi (Разработка систем связи), #_nauchnopopuljarnoe (Научно-популярное), #_vlf, #_radio, #_sdr, #_python, #_programmirovanie (
Программирование
)
, #_analiz_i_proektirovanie_sistem (
Анализ и проектирование систем
)
, #_razrabotka_sistem_svjazi (
Разработка систем связи
)
, #_nauchnopopuljarnoe (
Научно-популярное
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 19-Май 17:07
Часовой пояс: UTC + 5