我正在使用NodeJS模块从各种来源控制我的放大器。
放大器只能设置为特定的"分贝"从-60dB到+ 10dB。 但是,这完全不是线性的。无法听到-60到-50(10dB增加),而0dB到10 + dB是" ok"之间的差异。并吹灭扬声器。
我发现分贝(dB)是一个对数单位。当使用滑块控制音量时,这一点尤为明显。 我找到了一些mathematical解决方案。
但我不知道这会如何转化为代码(特别是NodeJS / Javascript)。
答案 0 :(得分:0)
对于电压信号电平和声功率公式
dB = 20 * Log10(CurrentLevel / NormalLevel)
所以
CurrentLevel = NormalLevel * 10 dB / 20
伪代码很简单:
CurrentLevel = NormalLevel * Math.Power(10.0, dB / 20.0)