Это мой метод автоматического управления усилением, он работает, но я получаю быстрый импульс по первому импульсу. Как я могу уменьшить его, чтобы он не превышал 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;
}
Задача ещё не решена.
Других решений пока нет …