分贝线性转换

时间:2017-09-11 09:47:03

标签: javascript node.js math audio

我正在使用NodeJS模块从各种来源控制我的放大器。

放大器只能设置为特定的"分贝"从-60dB到+ 10dB。 但是,这完全不是线性的。无法听到-60到-50(10dB增加),而0dB到10 + dB是" ok"之间的差异。并吹灭扬声器。

我发现分贝(dB)是一个对数单位。当使用滑块控制音量时,这一点尤为明显。 我找到了一些mathematical解决方案。

但我不知道这会如何转化为代码(特别是NodeJS / Javascript)。

1 个答案:

答案 0 :(得分:0)

对于电压信号电平和声功率公式

dB = 20 * Log10(CurrentLevel / NormalLevel)
所以
CurrentLevel = NormalLevel * 10 dB / 20

伪代码很简单:

 CurrentLevel =  NormalLevel * Math.Power(10.0, dB / 20.0)