RTL-SDR программно-определяемый радиоприемник RTL-SDR часто используется для приема сигналов от спутников NOAA APT. После декодирования эти сигналы формируют свежее изображение Земли над вашим текущим местоположением. У нас есть простой учебник по настройке здесь.
Однако недавно Марко Йоханссон написал на RTL-SDR.com, чтобы объяснить альтернативный метод к описанному в нашем учебнике. Его метод использует rtl_fm в качестве приемника вместо GUI-ориентированного программного обеспечения SDR# и использует несколько других программных компонентов для автоматизации всего процесса. Марко считает, что его метод может быть полезен для некоторых людей, и его учебник представлен ниже. Также, если вам интересно, у Марко есть страница на WxtoImg, на которой показаны все его недавно полученные изображения, здесь wxsat.haastaja.net.

Обратите внимание, что приведённый ниже учебник написан Марко Йоханссоном.
Учебник Марко по декодированию NOAA APT
Как пользователь Windows, у меня возникли серьёзные проблемы с использованием RTL-Dongle в качестве приемника для WxtoImg. Потери сигнала, нагрузка на процессор и отсутствие управления приемником. Мне пришлось использовать пять разных программных комплектов, чтобы обеспечить автоматический прием, и каждый день одна из программ давала странные проблемы, из-за которых вся система переставала работать. Я прочитал несколько сообщений на форумах о подобных проблемах. Огромную помощь оказал форум WxtoImg, где один пользователь рассказал, как он смог использовать rtl_fm в качестве приемника. Его система была на базе Linux, поэтому я не смог использовать его скрипты, но они дали мне достаточно информации, чтобы найти решение для Windows.
Я наткнулся на программное обеспечение, которое полностью решает мою проблему. Оно изначально создано для управления Windows MCE (Media Center), но с момента релиза оно было доработано до универсального пульта дистанционного управления для Windows.
Шаги:
1) Установите WxtoImg обычным способом
2) Установите программное обеспечение VB Cable Virtual Audio Cable, чтобы направлять аудио от приемника к WxtoImg (http://vb-audio.pagesperso-orange.fr/Cable)
3) Установите виртуальный COM-порт BRIDGE (!) для связи между программами (на тестировался с: http://freevirtualserialports.com)
4) Установите rtl_fm для Windows (http://sdr.osmocom.org/trac/attachment/wiki/rtl-sdr/RelWithDebInfo.zip)
5) Установите SoX для Windows (http://sourceforge.net/projects/sox/files/sox)
6) Установите MCE Control, чтобы работать в качестве командной оболочки между WxtoImg и MCE Controll (http://mcec.codeplex.com)
В WxtoImg я выбрал приемник “Baykal”, порт COM1 и 2400 бод. Протокол дистанционного управления прост для понимания, и после каждой команды WxtoImg отправляет CR/LF приемнику, что обязательно для работы команд.
Команды управления обрабатываются контроллером MCE. Он слушает COM2 (мост с COM1) и когда получает допустимую строку команды («магическое слово»), активирует задачу. Задачи — это .bat-файлы, по одному на каждый спутник, и «kill» для остановки приемника после прохождения спутника.
Когда спутник приближается (за минуту до его прохождения) WxtoImg отправляет команду “MUA”, которая вызывает “kill.bat”. Затем WxtoImg отправляет команду “RF0xxxxxxx”, где xxxxxxx — частота спутника, “1371000” для NOAA19 — это вызывает “rec-noaa19.bat”. Когда прохождение заканчивается, WxtoImg снова отправляет “MUA” для завершения программы приемника.
Теперь я могу управлять записями напрямую из WxtoImg без какого-либо другого ПО (Orbitron, SDR#, DDE-клиент и т. п.).
Файлы .bat и другие настройки приведены ниже для использования другими. Я в итоге сделал отдельные .bat-файлы для запуска задач: так я могу запускать и останавливать запись в фоновом режиме, не открывая командную строку на рабочем столе каждые 90 минут 🙂
Моя система — Windows 8.1, я не тестировал это на 7, 8 или 10, но полагаю, что это будет работать без изменений. HW ID RTL-Dongle, который я использую для wx_rtl_fm.exe, равен “3” (параметр ‘-d 3’ в скрипте). Если у вас один RTL-Dongle, его следует установить в “0”. Я использую полосовую частоту 55 кГц, которая, как кажется, достаточна для хорошего приема APT, включая доплер-ошибку, так как в этом методе доплер-ошибка не корректируется на приёмнике (нет AFC).
ПРИМЕЧАНИЕ! Я скопировал оригинальный ‘rtl_fm.exe’ в ‘wx_rtl_fm.exe’, чтобы можно было запускать другие экземпляры rtl_fm.exe без риска того, что WxtoImg случайно закроет мой другой приемник. И, конечно же, помните, что это мои настройки, и путь, используемый в скриптах будет отличаться у вас 🙂 Также оригинальный ‘sox.exe’ скопирован в ‘play.exe’ как указано в руководстве SoX для пользователей Windows. И, потому что я ленив, я скопировал двоичные файлы rtl_fm и SoX в одну директорию, чтобы не записывать такие длинные пути в скрипты .bat 🙂
Итоговые слова:
Файлы .bat, которые используются здесь, — очень грязные хаки, и, безусловно, доступно множество улучшений — но они работают! Также удалённый протокол для приемника Baykal на самом деле отправляет ещё две команды: одна для указания модуляции передачи (RM NFM) и вторая для чего-то, чего я не знаю (MUF).
Вся коммуникация в моей системе идёт так:
1) “MUA” => завершить все запущенные процессы wx_rtl_fm.exe (если есть). Это происходит за одну минуту до начала спутникового прохода.
2) “RF0xxxxxxx” => запустить wx_rtl_fm и SoX, xxxxxxx — частота спутника и используется для выбора правильного .bat для разных спутников (см. XML-файл MCE Control для деталей). Это происходит при начале прохождения спутника.
3) “RM NFM” => Не используется в моей системе. Может вызвать что-нибудь интересное, если нужно :). Это происходит сразу после команды ‘RF0xxxxxxx’.
4) “MUF” => Не используется в моей системе. Может вызвать что-нибудь интересное, если нужно :). Это происходит сразу после команды ‘RM NFM’.
5) “MUA” => завершить все запущенные процессы wx_rtl_fm.exe. Это происходит сразу после прохождения спутника.
SoX — очень мощный инструмент для обработки аудио. Есть параметры, которые могут значительно улучшить качество принимаемого сигнала — шумоподавление, лучшая динамика и т. п. Я не особо хочу пробовать всё, что может сделать SoX, потому что результаты уже очень хороши в моей системе, но если найдутся те, кто знает лучшие способы работать с SoX, пожалуйста, не стесняйтесь комментировать!
Используемые .bat-файлы
«Остановка приемника»:
kill.bat вызывается через MCE Control и вызывает kill-wx_rtl_fm.bat для фактического завершения.
kill.bat
cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox start /min kill-wx_rtl_fm.bat \& exit
Это триггерит;
kill-wx_rtl_fm.bat
taskkill /IM wx_rtl_fm.exe /F
«Начать запись»:
Запись начинается после того, как MCE Control получает правильное ‘слово’ от WxtoImg. Для каждого спутника есть отдельные ‘слова’ и отдельные .bat-файлы.
rec-noaa15.bat
cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox start /min noaa15.bat \& exit
Это триггерит;
noaa15.bat
cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox play -r 55k -t raw -e s -b 16 -c 1 "|wx_rtl_fm -d 3 -M fm -f 137.62M -s 55k -l 0" -t waveaudio
rec-noaa18.bat
cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox start /min noaa18.bat \& exit
Это триггерит;
noaa18.bat
cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox play -r 55k -t raw -e s -b 16 -c 1 "|wx_rtl_fm -d 3 -M fm -f 137.9125M -s 55k -l 0" -t waveaudio
rec-noaa19.bat
cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox start /min noaa19.bat \& exit
Это триггерит;
noaa19.bat
cd C:\Users\Mac Radio\ownCloud\SDR\rtl_fm_sox play -r 55k -t raw -e s -b 16 -c 1 "|wx_rtl_fm -d 3 -M fm -f 137.1M -s 55k -l 0" -t waveaudio
И наконец, волшебные «слова» MCE Control. По умолчанию, MCE Control понимает более 200 отдельных команд, изначально предназначенных для дистанционного управления Windows MCE (Media Center). К счастью, можно создать собственные команды и заставить MCE Control делать намного больше – управлять Wx-системой!
MCE Control uses an XML configuration file for these extra commands. The file is located in the same directory where the main executable is located. My system uses following XML file to be able to control ‘wx_rtl_fm.exe’:
<?xml version="1.0" encoding="utf-8"?> <MCEController xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Commands xmlns="http://www.kindel.com/products/mcecontroller"> <!-- Place command definitions here --> <!-- ================================================================== StartProcess Commands File: The full path to the executable you want to start. ================================================================== --> <StartProcess Cmd="RF01376200" File="C:\\Users\\Mac Radio\\ownCloud\\SDR\\rtl_fm_sox\\rec-noaa15.bat"/> <StartProcess Cmd="RF01379125" File="C:\\Users\\Mac Radio\\ownCloud\\SDR\\rtl_fm_sox\\rec-noaa18.bat"/> <StartProcess Cmd="RF01371000" File="C:\\Users\\Mac Radio\\ownCloud\\SDR\\rtl_fm_sox\\rec-noaa19.bat"/> <StartProcess Cmd="MUA" File="C:\\Users\\Mac Radio\\ownCloud\\SDR\\rtl_fm_sox\\kill.bat"/> </Commands> </MCEController>
Источник:
