Bagaimana cara menghitung dBFS?


Jawaban:


13

Ini benar-benar sangat sederhana untuk nilai antara 1 dan -1:

valueDBFS = 20*log10(abs(value))

Jika Anda memiliki nilai di antara rentang lain, misalnya 16bit, maka itu adalah:

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

(karena 16bit yang ditandatangani memiliki nilai antara -32768 dan +32767, misalnya 2 ^ 15 = 32768)

Maka rumus umumnya adalah:

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

Contoh kode diberikan dalam kode MATLAB.


1
Secara teknis ini benar, tetapi sebagian besar meter dBFS sebenarnya menampilkan ruang kepala, jadi Anda sering ingin menampilkan negatif dari nilai-nilai ini.
Bjorn Roche

1
Dari semua standar yang saya baca, tampaknya dBFS hanyalah pengukuran RMS, bukan pengukuran puncak, jadi ini tidak benar.
endolith

2

Semua standar mendefinisikan dBFS sebagai pengukuran RMS , relatif terhadap tingkat RMS dari gelombang sinus skala penuh, sehingga perhitungannya adalah:

value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103
  • Gelombang sinus skala penuh adalah 0 dBFS
  • Gelombang persegi skala penuh adalah +3 dBFS

Unit serupa dBov didefinisikan dalam kaitannya dengan rasio daya (jadi itu juga merupakan pengukuran RMS), sehingga DC skala penuh atau gelombang persegi adalah 0 dBov, sehingga perhitungannya adalah:

value_dBov = 20*log10(rms(signal))
  • Gelombang sinus skala penuh adalah d3 dBov
  • Gelombang persegi skala penuh adalah 0 dBov
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.