d
в Аудисити так делают
for (size_t i = 0; i < mWindowSize; i++)если собрать, то получается, что они берут среднее out[i], умножают на 4 и делят на квадрат суммы элементов окна
in[i] = win[i] * data[start + i];
PowerSpectrum(mWindowSize, in.get(), out.get());
for (size_t i = 0; i < half; i++)
mProcessed[i] += out[i];
double wss = [сумма-значений окна];
wss = 4.0 / (wss*wss);
double scale = wss / (double)windows; //windows - сколько раз в файле нашлось окон
mProcessed[i] = 10 * log10(mProcessed[i] * scale);
в методичке сумма элементов окна - S1 (19)
и у меня получается, что
//PS RMS (23)т.е. разница в том, что
double value = (2 * avgSamples[i]) / (sum_win_s1 * sum_win_s1);
//LS
value = Math.Sqrt(value);
double valuedB = 20 * Math.Log10(value)
* они умножают усреднённый бин на 4, а в методичке - на два
* умножают логарифм на 10, а в методичке - 20