From 26c23dc8a0444b0d329356e12920654c487146ef Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Wed, 4 Nov 2015 09:49:14 -0800 Subject: [PATCH] Use new FIR decimation in FSK demodulator. Reduces FIR calculation effort when output samples are skipped at FIR filter, not after. --- firmware/baseband/proc_fsk.cpp | 4 ++-- firmware/baseband/proc_fsk.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/firmware/baseband/proc_fsk.cpp b/firmware/baseband/proc_fsk.cpp index a26c224a..42d6edbd 100644 --- a/firmware/baseband/proc_fsk.cpp +++ b/firmware/baseband/proc_fsk.cpp @@ -65,7 +65,7 @@ void FSKProcessor::execute(buffer_c8_t buffer) { /* 153.6kHz complex[128] * -> FIR filter, 76.8kHz int16_t[64] */ + * -> 19.2kHz int16_t[16] */ auto channel = channel_filter.execute(decimator_out, work_baseband_buffer); /* 76.8kHz, 64 samples */ @@ -79,7 +79,7 @@ void FSKProcessor::execute(buffer_c8_t buffer) { // 76.8k // TODO: Factor out this hidden decimation magic. - for(size_t i=0; ifloat is not allowed. const std::complex sample { static_cast(channel.p[i].real()), diff --git a/firmware/baseband/proc_fsk.hpp b/firmware/baseband/proc_fsk.hpp index d2324dc9..72dd09df 100644 --- a/firmware/baseband/proc_fsk.hpp +++ b/firmware/baseband/proc_fsk.hpp @@ -55,7 +55,7 @@ private: ChannelDecimator decimator { ChannelDecimator::DecimationFactor::By16 }; const fir_taps_real<64>& channel_filter_taps = taps_64_lp_031_070_tfilter; - dsp::decimate::FIRAndDecimateComplex channel_filter { channel_filter_taps.taps, 2 }; + dsp::decimate::FIRAndDecimateComplex channel_filter { channel_filter_taps.taps, 8 }; dsp::matched_filter::MatchedFilter mf { baseband::ais::rrc_taps_128_decim_4_p, 1 };