diff --git a/firmware/baseband/dsp_demodulate.cpp b/firmware/baseband/dsp_demodulate.cpp index 1c59c1743..3a0b7f12d 100644 --- a/firmware/baseband/dsp_demodulate.cpp +++ b/firmware/baseband/dsp_demodulate.cpp @@ -137,5 +137,14 @@ buffer_s16_t FM::execute( return { dst.p, src.count, src.sampling_rate }; } +void FM::configure(const float sampling_rate, const float deviation_hz) { + /* + * angle: -pi to pi. output range: -32768 to 32767. + * Maximum delta-theta (output of atan2) at maximum deviation frequency: + * delta_theta_max = 2 * pi * deviation / sampling_rate + */ + k = static_cast(32767.0f / (2.0 * pi * deviation_hz / sampling_rate)); +} + } } diff --git a/firmware/baseband/dsp_demodulate.hpp b/firmware/baseband/dsp_demodulate.hpp index d7117b9d9..00f9236a7 100644 --- a/firmware/baseband/dsp_demodulate.hpp +++ b/firmware/baseband/dsp_demodulate.hpp @@ -55,14 +55,7 @@ public: const buffer_s16_t& dst ); - void configure(const float sampling_rate, const float deviation_hz) { - /* - * angle: -pi to pi. output range: -32768 to 32767. - * Maximum delta-theta (output of atan2) at maximum deviation frequency: - * delta_theta_max = 2 * pi * deviation / sampling_rate - */ - k = static_cast(32767.0f / (2.0 * pi * deviation_hz / sampling_rate)); - } + void configure(const float sampling_rate, const float deviation_hz); private: complex16_t::rep_type z_ { 0 };