
Комментарии 15
cfo_shifts = np.arange(-self._max_cfo, self._max_cfo + 1)
Решение использовать перебор для подстройки частоты выглядит не очень красиво и оптимально по использованию вычислительных ресурсов. Почему не использован вариант, применяемый в 802.11? Там для подстройки используют два участка (STF\LTF) с разным периодом автокорреляции для грубой и точной подстройки.
ZC конечно хороша, но коррелятор на нее в time domain весьма ресурсен, и на мой взгляд неоправданно вносит сложность. Попробуйте комплексную m последовательность. Она работает ± также. На приеме никакого "единичного пика" шириной в 1 отсчет не происходит даже в самых лабораторных условия. Но есть максимум корреляции. Один, если допплер умеренный. Ну а дальше дело уже значительно проще.
На 2М диапазоне полосу голосового тракта можно взять существенно шире, тем самым либо увеличить скорость, либо существенно понизить BER.
Ну и пара вопросов:
Планируется ли выпустить готовое решение типа DireWolf для оперсорсных ОС ?
Почему макс размер пакета = 255 бит ? Сделайте длины кратные степеням двойки. Ну и в 31 байтах много не унесешь, это даже не LoRa. :)
Какова длительность передачи одного пакета максимальной длины при QPSK и SNR = 0 dB ?
Было ли проведено тестирование на КВ диапазонах ?
73! de R9LAJ.
Ширину старался взять дефолтную, то есть заранее влезть в узкие рамки.
Ответы на вопросы:
Следующий этап -- реализация сетевого уровня.
Когда дойдет до чего-то больше, чем набор скриптов -- пока не загадываю, но думаю, что будет какой-то артефакт.На этапе прототипирования, чтобы не уйти в бесконечный цикл доработок, было принято зафиксировать решение и добиться его работы.
Еще одна из причин -- синхронизациия, было решено посылать несколько коротких пакетов, каждый со своей преамбулой, нежели переодическая синхронизация; тем не менее, было желание выделить еще один-два бита под макс объем пакета, но опять же бесконечный цикл переделок;
Это тоже следующий этап разработки.1.8 сек (преамбула + данные).
На КВ предпринимались попытки провести тестирование, но не удавалось принять свой собственный сигнал на WebSDR приемники.
Было ли проведено тестирование на КВ диапазонах ?
На КВ успешно OFDM используется во FreeDV. Там даже голос через codec2 передают в нем.
о радиолюбительском протоколе VarAC, который по описанию выглядел как что-то "невероятное"
так вы тоже сделали что-то невероятное! Интересно сколько человек трудилось над таким достижением? Так смотришь у нас где-то цифровые радиостанции научатся делать!
но Питон для PHY-уровня меня конечно впечатляет)
Интересно сколько человек трудилось над таким достижением?
Один.
вот это вот странно что один! Это никому больше не интересно или вы это в большом секрете делали? И то и другое печально!
Многим интеерсно, вот я например делаю модем для передачи на КВ/УКВ через аналоговые радиостанции - https://github.com/reticulum-spb/Reticulum-TNC
Интерсно конечно, но и правда - почему Python то? Почему сразу не сделать (нормально ;) на Liquid-DSP например. Там примерно 75% из всего этого уже готово. Передача на УКВ получится только через SSB. Если модулировать OFDM через FM - не пролезет (я пробовал). Нелинейность и pre-emphasis все портят. Через FM работает максимум QPSK, даже для 16PSK уже не хватает фазовой стабильности. 73 de R1CBU
Интерсно конечно, но и правда - почему Python то?
Библиотека numpy предоставляет большой инструментарий (си-оптимизированный). Для проверки гипотез проще и быстрее.
А так, были мысли, что когда дойдет до стадии артефакта, то придется переписывать на си.
Разработка цифрового радиолюбительского протокола на базе OFDM. PHY‑уровень