这是我的自动增益控制方法,它有效,但我在第一次冲动时快速爆发。如何将其缩小以使其不会超过0dbfs?此外,1e-4的速度有点起作用,但速度太慢。
double AGC(double x)
{
double ref = pow(10.0, (-18.0/10.0); //-18dBFS Convert to Linear
double rate = 1.0; // coefficient when increasing/decreasing gain
x = x * m_Gain; //scale input(x)
m_Gain += (ref - (fabs(x) * fabs(x))) * rate;
return x;
}