I was asked one day why this full-scale sine wave was being measured by our signal analysis tools as -3 dB FS, even though it hits the maximum and the minimum sample values:
The answer is "because it's a sine wave, not a square wave." The intensity of a signal can be calculated from the following formula:
The inner integral does not depend on t - it's just the average sample value - so it's usually precalculated:
The importance of taking dc into account during analysis can be appreciated if you try to calculate the intensity of a signal with a high dc.
Exercise: calculate the intensity of x(t) ≡ -0.5 using the formulas above; calculate the "naïve intensity" by using the last formula above and omitting dc. Note the difference.
Now that we have the necessary formulas, let's analyze our full-scale sine wave signal. Plugging in a full-scale sine wave and analyzing over a full period we get:
As expected, the average value of the signal over a single period is 0.
Evaluating the intensity requires finding the antiderivative of (sin(t))2. This can be ascertained most easily by plotting a few values and realizing that (sin(t))2 = (1 - cos(2t))/2:
This is a dimensionless number that ranges from 0 (signal is a flat line) to 1 (... we'll get to that later.)
We can convert this into a dB FS measurement using the formula IdB FS = 20 log10 IRMS:
Et voilà - that's where the -3 dB comes from.
In contrast to a sine wave, a full-scale square wave centered at 0 has an intensity of 0 dB FS:
To finish up, a couple of advanced exercises:
Advanced Exercise: prove that, provided t1 and t2 are sufficiently far apart, the intensity of a general sine wave x(t) = a sin(ωt + φ) + c depends only on a and not on ω, φ, or c.
Advanced Exercise: completely characterize the set of digital signals that achieve 0 dB FS intensity. If you have, say, 1000 samples of mono 16-bit integer audio to play with, how many distinct signals achieve 0 dB FS intensity?