Make FM squelch runtime-configurable.

This commit is contained in:
Jared Boone 2016-01-03 17:03:16 -08:00
parent 86cf967464
commit 8adaddac5f
3 changed files with 8 additions and 1 deletions

View File

@ -43,3 +43,7 @@ bool FMSquelch::execute(buffer_s16_t audio) {
return (max_squared < threshold_squared);
}
void FMSquelch::set_threshold(const uint32_t new_value) {
threshold_squared = new_value * new_value;
}

View File

@ -33,9 +33,11 @@ class FMSquelch {
public:
bool execute(buffer_s16_t audio);
void set_threshold(const uint32_t new_value);
private:
static constexpr size_t N = 32;
static constexpr uint32_t threshold_squared = 8192 * 8192;
uint32_t threshold_squared { 0 };
IIRBiquadFilter non_audio_hpf { non_audio_hpf_config };
};

View File

@ -106,6 +106,7 @@ void NarrowbandFMAudio::configure(const NBFMConfigureMessage& message) {
channel_filter_pass_f = message.channel_filter.pass_frequency_normalized * channel_filter_input_fs;
channel_filter_stop_f = message.channel_filter.stop_frequency_normalized * channel_filter_input_fs;
channel_spectrum.set_decimation_factor(std::floor((channel_filter_output_fs / 2) / ((channel_filter_pass_f + channel_filter_stop_f) / 2)));
squelch.set_threshold(8192);
configured = true;
}