mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-04 16:01:14 -05:00
SSB demod: yet again another clamping algorithm
This commit is contained in:
parent
8155825bc4
commit
723747e9dc
@ -85,7 +85,7 @@ SSBDemod::SSBDemod(DeviceSourceAPI *deviceAPI) :
|
|||||||
m_magsqPeak = 0.0f;
|
m_magsqPeak = 0.0f;
|
||||||
m_magsqCount = 0;
|
m_magsqCount = 0;
|
||||||
|
|
||||||
m_agc.setClampMax(SDR_RX_SCALED*SDR_RX_SCALED);
|
m_agc.setClampMax(SDR_RX_SCALED/100.0);
|
||||||
m_agc.setClamping(m_agcClamping);
|
m_agc.setClamping(m_agcClamping);
|
||||||
|
|
||||||
SSBFilter = new fftfilt(m_LowCutoff / m_audioSampleRate, m_Bandwidth / m_audioSampleRate, ssbFftLen);
|
SSBFilter = new fftfilt(m_LowCutoff / m_audioSampleRate, m_Bandwidth / m_audioSampleRate, ssbFftLen);
|
||||||
|
@ -104,25 +104,19 @@ double MagAGC::feedAndGetValue(const Complex& ci)
|
|||||||
{
|
{
|
||||||
if (m_squared)
|
if (m_squared)
|
||||||
{
|
{
|
||||||
double u0 = m_R / m_moving_average.average();
|
if (m_magsq > m_clampMax) {
|
||||||
double du = (u0*m_magsq) - (m_clampMax/4.0);
|
m_u0 = m_clampMax / m_magsq;
|
||||||
if (du > 0) {
|
|
||||||
m_u0 = (m_clampMax/4.0)*(1.0 + (log10(1+du)/8.0)); // experimental clipping limiter
|
|
||||||
} else {
|
} else {
|
||||||
m_u0 = u0;
|
m_u0 = m_R / m_moving_average.average();
|
||||||
}
|
}
|
||||||
//m_u0 = (u0 * m_magsq > m_clampMax) ? m_clampMax / m_magsq : u0;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
double u02 = m_R2 / m_moving_average.average();
|
if (sqrt(m_magsq) > m_clampMax) {
|
||||||
double du = (u02*m_magsq) - (m_clampMax/4.0);
|
m_u0 = m_clampMax / sqrt(m_magsq);
|
||||||
if (du > 0) {
|
|
||||||
m_u0 = (m_clampMax/4.0)*(1.0 + (log10(1+du)/8.0)); // experimental clipping limiter
|
|
||||||
} else {
|
} else {
|
||||||
m_u0 = sqrt(u02);
|
m_u0 = m_R / sqrt(m_moving_average.average());
|
||||||
}
|
}
|
||||||
//m_u0 = (u02 * m_magsq > m_clampMax) ? sqrt(m_clampMax / m_magsq) : sqrt(u02);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user