DBFS nasıl hesaplanır?


Yanıtlar:


13

1 ile -1 arasındaki değerler için oldukça basittir:

valueDBFS = 20*log10(abs(value))

Başka bir aralık, örneğin 16 bit arasında değerleriniz varsa, o zaman:

valueDBFS = 20*log10(abs(value)/32768)

(çünkü 16 bit imzalı değerler -32768 ile +32767 arasındadır, örneğin 2 ^ 15 = 32768)

Ve böylece genel formül:

valueDBFS = 20*log10(abs(value)/maxValue)

Kod örnekleri MATLAB kodunda verilmiştir.


1
Bu teknik olarak doğrudur, ancak çoğu dBFS ölçer aslında tavan boşluğu görüntüler, bu nedenle genellikle bu değerlerin negatifini görüntülemek istersiniz.
Bjorn Roche

1
Okuduğum tüm standartlardan, dBFS'nin bir zirve ölçümü değil, kesinlikle bir RMS ölçümü olduğu anlaşılıyor, bu yüzden bu doğru olmaz.
endolith

2

Tüm standartlar dBFS'yi , tam ölçekli bir sinüs dalgasının RMS seviyesine göre bir RMS ölçümü olarak tanımlar , bu nedenle hesaplama:

value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
  • Tam ölçekli bir sinüs dalgası 0 dBFS'dir
  • Tam ölçekli kare dalga +3 dBFS'dir

Benzer dBov birimi, tam ölçekli DC veya kare dalga 0 dBov olacak şekilde güç oranlarına (yani bir RMS ölçümü) göre tanımlanır, böylece hesaplama:

value_dBov = 20*log10(rms(signal))
  • Tam ölçekli bir sinüs dalgası −3 dBov
  • Tam ölçekli kare dalga 0 dBov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.