Re[3]: Уровень звука на входе
От: Dimonka Верблюд  
Дата: 29.01.04 09:11
Оценка:
Здравствуйте, crazzypolman, Вы писали:

C>Спасибо за ответ, но алгоритмов я уже насмотрелся, а вот с реализацией никак, и что-то про быстрое преобразование Фурье для вычисления мощности сигнала я видел, но реализаций (примеров попроще) нет вообще нигде, странно — неужели никто таким не занимается и все используют сторонние ActiveX компоненты?


Зачем тебе преобразование фурье для определения уровня звука??

Пики можно считать не только как пики, можно подсчитывать среднеквадратическое значение сигнала (RMS).
Самый простой вариант:


OldPeak:=OldPeak * FadingCoeff;
NewPeak:=GetPeakFromWave(buffer:TArrayOfSomething);
if NewPeak > OldPeak then OldPeak:=NewPeak;
DisplayPeak(OldPeak);


Как подсчитать среднеквадратическое значение сигнала:

Val:=0;
for i:=0 to WindowSize-1 do
  Val:=buffer[Offset+i] * buffer[Offset+i];
RMS:=Sqrt( Val / WindowSize);


Естественно это только пример, а значение надо считать инкриментально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.