Автор разработал метод когерентной демодуляции CPFSK для микроконтроллеров семейства ARM Cortex-M, включая модели STM32F103 и STM32H750. Алгоритм использует разложение в ряд Фурье с фиксированной точкой для вычисления тригонометрических функций.
На ядре Cortex-M7 расчет пары синус-косинус занимает 125–130 тактов при точности менее 1,5 LSB. Это обеспечивает динамический диапазон около 183 дБ, что позволяет выполнять квадратурную свертку сигнала с частотой дискретизации до 450–500 кГц.
Для контроллера STM32F103C8T6 время обработки одного квадратурного отсчета составляет около 1,8 мкс. Это дает возможность демодулировать поднесущие до 250 кГц в реальном времени, работая с полосой сигнала до 125 кГц.
Для оптимизации скорости автор применил поблочную обработку с непрерывной фазой, что позволяет использовать скользящее окно со сложностью O(1). Также внедрен метод поворота вектора с погрешностью менее 6 младших бит на 128 отсчетов, пригодный для работы с 24-битными данными.




