# How to compute dBFS?

I asked myself how to compute dBFS (dB full scale) from a value of sample between 1 and -1?

and in general?

## 2 Answers

It is really quite simple for values between 1 and -1:

valueDBFS = 20*log10(abs(value))


If you have values between another range, for example 16bit, then it's:

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


(because 16bit signed has values between -32768 and +32767, e.g. 2^15=32768)

And so the general formula is:

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


The code examples are given in MATLAB code.

• This is technically correct, but most dBFS meters actually display headroom, so you will often want to display the negative of these values. – Bjorn Roche Apr 22 '13 at 14:41
• From all the standards I've read, it seems that dBFS is strictly an RMS measurement, not a peak measurement, so this would not be correct. – endolith Aug 1 '18 at 16:27

All the standards define dBFS as an RMS measurement, relative to the RMS level of a full-scale sine wave, so the calculation is:

value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + 3.0103

• A full-scale sine wave is 0 dBFS
• A full-scale square wave is +3 dBFS

The similar unit dBov is defined in relation to power ratios (so it's also an RMS measurement), such that full-scale DC or square wave is 0 dBov, so that calculation is:

value_dBov = 20*log10(rms(signal))

• A full-scale sine wave is −3 dBov
• A full-scale square wave is 0 dBov