Представление амплитуды в логарифмической шкале приближает чувствительность слуховой системы человека и, следовательно, дает вам лучшее представление того, что вы слышите, по сравнению с нелогарифмической шкалой.Математически все, что вам нужно сделать, это:
Alog = 20*log10 (abs (A))
, где A
- амплитуда данных БПФ, а Alog
- выход.коэффициент 20
- это просто соглашение и не влияет на изображение, которое вы, вероятно, в любом случае масштабируете до цветовой схемы.
РЕДАКТИРОВАТЬ
Пояснения относительнокоэффициент 20
: единица измерения дБ (децибел) представляет собой логарифмическую единицу измерения отношения : она представляет собой шкалу, на которой расстояние между 100 и 10 такое же, как между 1000 и 100 (поскольку они имеюттакое же соотношение: 1000/100 = 100/10).Если вы измерите его в дБ, вы получите:
10*log10 (1000/100) = 10*log10 (100/10) = 10
Коэффициент 10
объясняется тем, что deci
означает tenth
, что означает, что 1 бел - 10 децибел (например, 1 килограмм - 1000 грамм)
Поскольку слуховая система человека также (приблизительно) измеряет коэффициенты, имеет смысл измерять уровень звука по логарифмической шкале, то есть измерять отношение уровня звука к некоторому контрольному значению.Поскольку уровень звука связан с мощностью (в ваттах) звуковой волны, вы фактически измеряете соотношение мощностей P / Pref.Кроме того, мощность пропорциональна квадрату амплитуды, так что в итоге вы получите:
10*log10 (P/Pref) = 10*log10 (A^2 / Aref^2) = 20*log10 (A/Aref)
по правилам журнала.Это происхождение фактора 20
- помните, что в компьютере звук представлен мгновенной амплитудой звуковой волны.