нормализация - это простой процесс.это простая реализация для float
s:
float peakAmplitude(0.0f);
/* find the peak */
for (size_t idx(0); idx < bufferLength; ++idx) {
peakAmplitude = std::max(peakAmplitude, std::fabs(buffer[idx]));
}
if (0.0f >= peakAmplitude) {
std::cout << "signal is silent\n";
return;
}
/* apply normalization */
const float mul(1.0f / peakAmplitude);
for (size_t idx(0); idx < bufferLength; ++idx) {
buffer[idx] *= mul;
}
другие форматы сигналов могут быть легко преобразованы.