Представление амплитуды по логарифмической шкале приближается к чувствительности человеческой слуховой системы и, следовательно, дает лучшее представление о том, что вы слышите, по сравнению с не логарифмической шкалой. Математически, все, что вам нужно сделать, это:
Alog = 20*log10 (abs (A))
Где A
амплитуда данных FFT и 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
- помните, что в компьютере звук представлен мгновенной амплитудой звуковой волны.
У вас есть скриншот того, как выглядит результат в настоящее время? – RQDQ
Еще лучше, используйте логарифмическую частотную ось, более точно отражающую чувствительность уха. Чтобы понять разницу, см. Http://wikidelia.net/wiki/Spectrogram для примеров – martinwguy