mirror of https://github.com/f4exb/sdrangel.git
SSB demod: experimental clipping limiter
This commit is contained in:
parent
aaeec634fe
commit
c71f1fdc3a
|
@ -105,12 +105,24 @@ double MagAGC::feedAndGetValue(const Complex& ci)
|
||||||
if (m_squared)
|
if (m_squared)
|
||||||
{
|
{
|
||||||
double u0 = m_R / m_moving_average.average();
|
double u0 = m_R / m_moving_average.average();
|
||||||
m_u0 = (u0 * m_magsq > m_clampMax) ? m_clampMax / m_magsq : u0;
|
double du = (u0*m_magsq) - (m_clampMax/2.0);
|
||||||
|
if (du > 0) {
|
||||||
|
m_u0 = (m_clampMax/2.0)*(1.0 + (log10(1+du)/4.0)); // experimental clipping limiter
|
||||||
|
} else {
|
||||||
|
m_u0 = u0;
|
||||||
|
}
|
||||||
|
//m_u0 = (u0 * m_magsq > m_clampMax) ? m_clampMax / m_magsq : u0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
double u02 = m_R2 / m_moving_average.average();
|
double u02 = m_R2 / m_moving_average.average();
|
||||||
m_u0 = (u02 * m_magsq > m_clampMax) ? sqrt(m_clampMax / m_magsq) : sqrt(u02);
|
double du = (u02*m_magsq) - (m_clampMax/2.0);
|
||||||
|
if (du > 0) {
|
||||||
|
m_u0 = (m_clampMax/2.0)*(1.0 + (log10(1+du)/4.0)); // experimental clipping limiter
|
||||||
|
} else {
|
||||||
|
m_u0 = sqrt(u02);
|
||||||
|
}
|
||||||
|
//m_u0 = (u02 * m_magsq > m_clampMax) ? sqrt(m_clampMax / m_magsq) : sqrt(u02);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue