dB形式の変換

はじめに

ある本で見かけた数式をコードにおこす練習。(兼ブログ練習)

数式

線形値(dB形式が対数であるのでその対称としてこう呼称する)Nは次式によりdB形式に変換される。
 B[dB] = 10log_{10}(N)
逆にdB値Bから線形値への変換は
 N = 10^{B[dB] / 10}
となる。コード(python)は

import math

def from_decibel(b):
    return 10 ** (b / 10.0)

def to_decibel(N):
    return 10 * math.log10(N)

print("10 dB: " + str(from_decibel(10))) # 10 dB: 10.0
print("20 dB: " + str(from_decibel(20))) # 20 dB: 100.0
print("30 dB: " + str(from_decibel(30))) # 30 dB: 1000.0
print("4000 is " + str(to_decibel(4000)) + "dB")

増幅器の利得係数が100の場合、20dBの利得がある。
 10log_{10}(100) = 10 \times 2 = 20[dB]