在对数刻度上表示幅度近似于人类听觉系统的灵敏度,因此与非对数刻度相比,可以更好地表示您所听到的内容.在数学上,你所要做的就是:
Alog = 20*log10 (abs (A))
Run Code Online (Sandbox Code Playgroud)
AFFT数据的幅度在哪里,并且Alog是输出.因素20只是一种约定,对图像没有影响,你可能无论如何都要缩放到颜色方案.
编辑
关于20因子的说明:dB(分贝)单位是测量比率的对数单位:它表示100到10之间的距离与1000到100之间相同的比例(因为它们具有相同的比率:1000/100 = 100/10).如果你以dB为单位测量它,你得到:
10*log10 (1000/100) = 10*log10 (100/10) = 10
Run Code Online (Sandbox Code Playgroud)
因素10是因为deci手段tenth,意味着1贝尔是10分贝,(如1千克是1000克)
由于人类听觉系统也是(近似)测量比率,因此在对数标度上测量声级是有意义的,即测量声级与某个参考值的比率.由于声音的水平与声波的功率(以瓦特为单位)相关联,因此您实际上测量了功率P/Pref的比率.此外,功率与幅度平方成正比,所以总而言之:
10*log10 (P/Pref) = 10*log10 (A^2 / Aref^2) = 20*log10 (A/Aref)
Run Code Online (Sandbox Code Playgroud)
按日志规则.这是20因素的起源- 请记住,在计算机中,音频由声波的瞬时幅度表示.