From 51d24102edeb43f28320a8778841f816b760ff5f Mon Sep 17 00:00:00 2001 From: f4exb Date: Fri, 12 May 2017 04:25:14 +0200 Subject: [PATCH] AM demod: refactor demodulation --- plugins/channelrx/demodam/amdemod.cpp | 2 +- plugins/channelrx/demodam/amdemod.h | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/plugins/channelrx/demodam/amdemod.cpp b/plugins/channelrx/demodam/amdemod.cpp index 8a8b51610..f1addbd45 100644 --- a/plugins/channelrx/demodam/amdemod.cpp +++ b/plugins/channelrx/demodam/amdemod.cpp @@ -35,7 +35,7 @@ AMDemod::AMDemod() : m_magsqPeak(0.0f), m_magsqCount(0), m_movingAverage(40, 0), - m_volumeAGC(40, 0) + m_volumeAGC(4800, 1.0) { setObjectName("AMDemod"); diff --git a/plugins/channelrx/demodam/amdemod.h b/plugins/channelrx/demodam/amdemod.h index a247a5c99..9ef7ad2a5 100644 --- a/plugins/channelrx/demodam/amdemod.h +++ b/plugins/channelrx/demodam/amdemod.h @@ -177,21 +177,17 @@ private: { Real demod = sqrt(magsq); - if (demod < -1) - { - demod = -1; - } - else if (demod > 1) + if (demod > 1) { demod = 1; } m_volumeAGC.feed(demod); - - Real attack = (m_squelchCount - (m_running.m_audioSampleRate / 20)) / (Real) (m_running.m_audioSampleRate / 20); - demod *= ((0.003 * attack) / m_volumeAGC.getValue()); - demod *= m_running.m_volume; - sample = demod * 32700 * 16; + demod /= m_volumeAGC.getValue(); + sample = (0.5 - demod) * 2048 * m_running.m_volume; +// Real attack = (m_squelchCount - (m_running.m_audioSampleRate / 20)) / (Real) (m_running.m_audioSampleRate / 20); +// demod *= ((0.003 * attack) / m_volumeAGC.getValue()); +// sample = demod * 32700 * 16; m_squelchOpen = true; } else