endolith / waveform-analysis

Functions and scripts for analyzing waveforms, primarily audio. This is currently somewhat disorganized and unfinished.
MIT License
255 stars 82 forks source link

Incorrect definition of dBFS #18

Open endolith opened 6 years ago

endolith commented 6 years ago

My previous understanding was that "dBFS" is ambiguous and a full-scale sine wave can be either 0 dBFS or -3 dBFS depending on convention, and I've been using the -3 dBFS convention because it makes sense that RMS level should be -3 dB from peak level.

However, I've looked at all the standards and there's no ambiguity in the standards. A full-scale sine wave is:

So I should change all the measurements to either use the unit dBov or to be increased by 3 dB and use dBFS.

It doesn't look like "peak dBFS" is even a legit unit?

AES17 doesn't really say:

amplitude expressed as a level in decibels relative to full-scale amplitude (20 times the common logarithm of the amplitude over the full-scale amplitude)

but implies that it's an RMS measurement with this note:

Because the definition of full scale is based on a sine wave, it will be possible with square-wave test signals to read as much as + 3,01 dB FS.

AES-6id-2000 says RMS specifically:

Digital signal rms amplitude expressed as a level in decibels relative to full-scale amplitude

IEC 61606 specifically says RMS(signal)/RMS(FS sine), and doesn't mention peak:

the amplitude of any signal can be defined in dB FS as 20 times the common logarithm of the ratio of the r.m.s. amplitude of the signal to that of ... a 997 Hz sinusoid whose peak positive sample just reaches positive digital full-scale

ITU P.381 mentions RMS as the reference, but doesn't specifically say the signal is RMS:

All signal levels stated in this section are relative to decibels relative to full scale (dBFS), where 0 dBFS represents the root mean square (RMS) level of a full- scale sinusoidal.

ITU P.382 is the same:

All output signal levels stated in this section are relative to decibels relative to full scale (dBFS), where 0 dBFS represents the root mean square (RMS) level of a full-scale sinusoidal signal.

Rane's "No Such Thing as Peak Volts dBu" says:

Therefore all signal levels expressed in terms of dBFS are peak levels

but then it says:

The above describes the most popular usage, however it is technically incorrect.

sammlapp commented 1 year ago

Yes, dBFS is commonly defined as dBFS = 20log10(rmssqrt(2)) such that 0 dBFS = full scale sine wave.

AES specifically clarified this in AES17 http://www.aes.org/standards/blog/2020/12/aes17-revision-to-clarify-0dbfs#:~:text=AES17%20defines%20a%20digital%20Full,effort%20to%20eliminate%20this%20confusion.

also here: https://www.sis.se/api/document/preview/571704/ (section 3.4)