Bei 0dBfs sind in einem Sinus beim Sample in der Mitte einer Halbwelle alle
amplitudenrelevanten Bits = 1.
Bei tiefen Frequenzen gilt das auch für mehrere Samples in Halbwellenmitte.
Nur das Vorzeichen-Bit ist je nach Halbwelle entweder 0 oder 1.
Äh, nein. Das "Vorzeichenbit" ist leider kein einfacher Multiplikator.
Das Problem kommt eigentlich mit daher, dass das Zweier-Komplement nicht symmetrisch zu Null ist, der negative Wertebereich ist um eins größer.
Mal in 16bit:
Positive Werte 1...32767 (0001...7FFF in hex)
Negative Werte -1...-32768 (FFFF...8000 in hex)
Und die Null zählt definitionsgemäß zu den positiven Werten.
Betragmäßig gleiche Werte haben deshalb auch nie die gleichen Bits gesetzt, sondern als Mantisse den invertierten Wert + 1 (ohne Überlauf), in hex:
-7FFF = !7FFF + 0001 = 8000 + 0001 = 8001
-1234 = !1234 + 0001 = EDCB + 0001 = EDCC
Das funktioniert auch mit der Null:
-0000 = !0000 + 0001 = FFFF + 0001 = 0000
Ein Problem gibt es dann bei 8000 (-32768), dazu gibt es kein positives Pendant:
-8000 = !8000 + 0001 = 7FFF + 0001 = 8000, der Wert wird auf sich selbst abgebildet.
Diese Festlegungen machen Sinn, damit man mit positiven wie negativen Zahlen einfach rechnen kann (in Hardware), was seine Ursprünge in der Mikroprozessortechnik der 70er Jahre hat.
Bei den Samplewerten muss man also genaugenommen zwei Werte für 0dBFS unterscheiden, nämlich 32767 und -32768 (und das sind normalerweise auch die Werte, deren mehrfach aufeinanderfolgendes Anliegen als "digital over" angezeigt wird). Daraus folgt auch, dass eine hart geplippte Welle einen DC Offset von 0.5 LSB hat selbst wenn ein perfektes 1:1 Tastverhältnis vorliegt. Und, in aller Regel hat sie auch mehr als 0dBFS Spitzenpegel.
Aktuelle digitale Peak- wie RMS-Pegelmesser machen oft ein Upsampling (eine quasi-Rekonstruktion der analogen Wellenform), damit ihnen die Intersample-Overs nicht durch die Lappen gehen, die schnell mal +3dBFS und mehr erreichen können. Speziell bei geringen Sampleraten unter 100kHz ist das sonst ein Problem.
Grüße, Klaus