The author developed a coherent CPFSK demodulation method for ARM Cortex-M microcontrollers, specifically targeting STM32F103 and STM32H750 models. The approach utilizes Fourier series expansion with fixed-point arithmetic to calculate trigonometric functions.

On a Cortex-M7 core, the calculation of sine and cosine pairs requires approximately 125–130 clock cycles with a precision of less than 1.5 LSB. This provides a dynamic range of approximately 183 dB, enabling quadrature convolution at sampling rates up to 450–500 kHz.

For the STM32F103C8T6 microcontroller, the processing time is about 1.8 microseconds per quadrature sample. This allows for real-time demodulation of subcarriers up to 250 kHz, supporting signal bandwidths of up to 125 kHz.

To improve performance, the author implemented block-based processing with continuous phase, allowing for sliding window summation with O(1) complexity. A vector rotation technique was also introduced, which maintains error below 6 LSB over 128 samples, suitable for 24-bit audio data.