diff --git a/ambed/cagc.cpp b/ambed/cagc.cpp index 55294db..d5cd58c 100644 --- a/ambed/cagc.cpp +++ b/ambed/cagc.cpp @@ -38,11 +38,13 @@ CAGC::CAGC(float initialLeveldB) // set internal gain appropriately m_Gain = pow(10.0f, initialLeveldB/20.0f); //+- 10dB Margin, TODO Move margin to constant - m_GainMax = pow(10.0f, (initialLeveldB + 10.0f)/20.0f); - m_GainMin = pow(10.0f, (initialLeveldB - 10.0f)/20.0f); + m_GainMax = pow(10.0f, (initialLeveldB + AGC_CLAMPING)/20.0f); + m_GainMin = pow(10.0f, (initialLeveldB - AGC_CLAMPING)/20.0f); m_EnergyPrime = 1.0f; - m_targetEnergy = 32767.0f;//TODO : Move to parameter ? + + // We do not target full scale to avoid stauration + m_targetEnergy = 32767.0f/2.0f;//TODO : Move to parameter ? m_Bandwidth = 1e-2f;//TODO : Move to parameter ? m_Alpha = m_Bandwidth; diff --git a/ambed/main.h b/ambed/main.h index ef60a2b..c66b70c 100644 --- a/ambed/main.h +++ b/ambed/main.h @@ -68,11 +68,12 @@ #define CODEC_AMBE2PLUS 2 // Transcoding speech gains -#define CODECGAIN_AMBEPLUS -10 // in dB -#define CODECGAIN_AMBE2PLUS +10 // in dB +#define CODECGAIN_AMBEPLUS -16 // in dB +#define CODECGAIN_AMBE2PLUS +16 // in dB // Transcoding Tweaks -#define USE_AGC 0 +#define USE_AGC 1 +#define AGC_CLAMPING 3 //clamps the AGC gain to +- this value #define USE_BANDPASSFILTER 1 // Timeouts -----------------------------------------------------