Comments 3
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.
Разработка цифрового радиолюбительского протокола на базе OFDM. PHY-уровень