На диапазоне 6470 Гц новое достижение. Стефан DK7FC с 05 по 15 октября 2017 каждую ночь в одно и то же время передавал в EbNaut сообщение из 16 символов (!) с параметрами:
6470.1 Hz
05-15 Okt 2017 16:00:00 UTC (daily)
20s
16 char
CRC-19
16k21A
12h
300 mA antenna curentВсего было 11 передач
Конечно, декодировать такое длинное сообщение, приняв только одну передачу, не удавалось.
Маркус DF6NM некоторое время назад разработал утилиту, с помощью которой можно когеррентно суммировать копии сигнала, принятые в разные дни. Эта утилита находится в архиве add.zip, там же есть инструкция на английском языке.
Утилиту использовать довольно просто. Все файлы, которые будем суммировать, должны быть записаны в одинаковое время hh:mm:ss (допускается небольшой сдвиг в какую-то долю длительности одной посылки, в данном случае это несколько секунд). Для этого SpectrumLab, который формирует эти файлы экспорта fft для ebnaut, должен все время работать непрерывно, без перезапусков, иначе время экспорта будет другим после каждого перезапуска.
Сначала можно просуммировать все файлы с одним и тем же весом:
add.exe ebnaut_file1.txt
....
add.exe ebnaut_file11.txt
Накопление сигнала всегда происходит в файл sum.txt, так что перед началом суммирования его нужно удалить.
После каждого суммирования программа выдает результат суммирования в виде трех чисел: уровень сигнала в файле sum.txt до суммирования, уровень сигнала в обрабатываемом файле ebnaut_file_n.txt и уровень после суммирования. Нам нужно записать второе из этих чисел для каждого файла.
Теперь, зная уровень сигнала (то есть уровень шума, конечно же - искомый сигнал слишком слаб и не выделяется над шумом) в каждом файле (обозначим их как Un), нужно вычислить весовые коэффициенты по формуле:
Kn = 2 x 20 x log(U1/Un)где U1 - уровень сигнала в первом из файлов.
Теперь у нас есть коэффициенты и мы можем осуществить весовое когеррентное суммирование всех копий сигнала, для чего (предварительно удалив старый файл sum.txt) необходимое число раз повторить команду:
add.exe ebnaut_file1.txt 0 0
add.exe ebnaut_file2.txt K2 0
add.exe ebnaut_file3.txt K3 0
.....
add.exe ebnaut_file11.txt K11 0
Вот теперь файл sum.txt как обычно преобразуем в wav-файл утилитой ebnaut_ifft3b.exe sum.txt
(Не забываем, чтобы в файле sr.txt были актуальные данные сэмплрейта)
И далее запускаем декодер ebnaut с необходимыми параметрами.
Таким образом, с большой помощью в виде советов Стефана, я и действовал, обработав все копии за 11 дней.
Понадобилось также немного "подвигать" параметр time shift декодера, так как исходные файлы имели некоторый разброс по времени формирования в пределах 1,5 секунды. И в итоге....
было успешно декодировано это очень длинное сообщение, преодолевшее
2000 км на частоте
6470 Гц!!!!!!!
YELLOW SUBMARINE
16 символов!!!!!
Конечно, поиск декода был гораздо драматичнее, чем мне это удается рассказать. Успешный декод впервые получился у Стефана, которому я отправлял принятые файлы. У меня не получалось декодировать, пока я не выполнил аккуратное весовое суммирование всех без исключения файлов. Без этого, простое суммирование или использование лишь некоторых из файлов результата не давало.
Если посмотреть уровни шума в файлах, то 10 октября было очень шумным. Было бы разумным исключить эту копию из анализа. Но оказалось, что это не так. Без файла 10 Окт декода не было. Однако присутствие его даже с уровнем -12 дБ позволило декодировать сообщение.
Это означает, как близко мы подошли к границе возможного, так что отсутствие даже одной самой слабой копии, уже полностью меняет ситуацию. Если бы было 10 передач, мы бы ничего не декодировали...
В архиве также прилагаются все файлы для тех, кто пожелает повторить эти эксперименты:
http://rn3aus.narod.ru/ebnaut-16ch-all-files-decoded.zip