1と-1の間のサンプルの値からdBFS(dBフルスケール)を計算する方法を自問しましたか?
そして一般的に?
1と-1の間のサンプルの値からdBFS(dBフルスケール)を計算する方法を自問しましたか?
そして一般的に?
回答:
これは、1と-1の間の値に対して非常に単純です。
valueDBFS = 20*log10(abs(value))
16ビットなど、別の範囲の値がある場合は、次のようになります。
valueDBFS = 20*log10(abs(value)/32768)
(16ビットの符号付きは-32768から+32767の間の値を持つため、たとえば2 ^ 15 = 32768)
したがって、一般的な式は次のとおりです。
valueDBFS = 20*log10(abs(value)/maxValue)
コード例は、MATLABコードで提供されています。
すべての規格では、dBFSをRMS測定として定義し、フルスケールの正弦波のRMSレベルを基準にしているため、計算は次のようになります。
value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
同様の単位dBovは、フルスケールDCまたは方形波が0 dBovとなるように、電力比との関係で定義されているため(RMS測定値でもあります)、計算は次のようになります。
value_dBov = 20*log10(rms(signal))