Guten Morgen zusammen, wenn ich einen 16-Bit-PCM-Audiodatenstrom habe, habe ich bekanntlich 96 dB Dynamikumfang. Sagt Wikipedia und auch alle andere Online-Quellen, die ich bislang gefunden habe. Wenn ich versuche das selbst auszurechnen: 20*log10(((2^15)-1)/1) = 90,3 Der Schalldruck ist eine Leistungswurzelgröße, der größte Wert ist 2^15 - 1, der kleinste 1, und damit komme ich auf gut 90 dB Dynamik. Woher kommen die 96 dB, die ich überall finde? Wie immer bin ich auch guten Literaturtipps gegenüber sehr aufgeschlossen. Viele Grüße (Alle Edits: Meine mentale Rechtschreibkorrektur ist noch nicht komplett gestartet.)
:
Bearbeitet durch User
mit jedem zusätzlichen Bit verdoppelt sich die Anzahl darstellbarer Spannungslevel. Eine Verdoppelung in der Spannung sind 6 dB.
Ja, das ist eine (recht gute) Näherung. Doppelte Spannung -> 6.02 dB. Aber 1 Bit ist ja nicht die doppelte Spannung von Null Bit. Oder wenn ich es als vorzeichenbehaftet betrachte, habe ich nur 15 Bit. Sind wieder 90 dB.
:
Bearbeitet durch User
Walter T. schrieb: > Ja, das ist eine (recht gute) Näherung. Doppelte Spannung -> 6.02 dB. > > Aber 1 Bit ist ja nicht die doppelte Spannung von Null Bit. Oder wenn > ich es als vorzeichenbehaftet betrachte, habe ich nur 15 Bit. Sind > wieder 90 dB. mit 1 Bit kannst du 2 Spannungen darstellen, mit 2 Bit 4 usw. Schon 1 Bit sind 6 dB.
Verstehe ich nicht. Mit 1 Bit habe ich nur das Vorzeichen, also die gleiche Spannung wahlweise positiv oder negativ. Damit ist der RMS immer gleich.
Walter T. schrieb: > Wenn ich versuche das selbst auszurechnen: > 20*log10(((2^15)-1)/1) = 90,3 Warum muss man, wenn man 16 Bit Zahlenumfang hat, zur Berechnung der Dynamik ein Bit weniger annehmen?
Walter T. schrieb: > Verstehe ich nicht. Mit 1 Bit habe ich nur das Vorzeichen, also die > gleiche Spannung wahlweise positiv oder negativ. Damit ist der RMS immer > gleich. ne. Mit 0 Bit kannst du genau 1 konstantes Spannungslevel ausgeben. Mit 1 Bit kannst du doppelt so viele Spannungslevel erzeugen usw. Selbst wenn es Vorzeichenbehaftet 1 Bit ist: 0 entspräche dann Null, eine 1 entspräche dann -1, also selbst dann hast du 2 unterscheidbare Spannungen.
Der größte Wert, der in einem 16-Bit-PCM stehen kann, ist 32767. Der kleinste ist -32768 und der mit dem kleinsten RMS 1 oder -1.
Walter T. schrieb: > Der größte Wert, der in einem 16-Bit-PCM stehen kann, ist 32767. Der > kleinste ist -32768 und der mit dem kleinsten RMS 1 oder -1. es geht nicht darum wie gross die Werte sind, sondern wie viele unterschiedliche Werte es gibt.
Tobias P. schrieb: > Es geht nicht darum wie gross die Werte sind, sondern wie viele > unterschiedliche Werte es gibt. Warum? Bei PCM ist das Vorzeichenbit ja nur eine Phasenlage, keine Pegelinformation. Ich wäre wirklich dankbar für gute Literatur zur Elektroakustik, bei der die Digitaltechnik nicht zu kurz kommt.
Wenn Du mit der Spannung Spitze-Spitze rechnest, hast Du kein Vorzeichen. Und zwischen Wackeln mit dem LSB und allen Bits liegt ein Faktor 65535, also 96dB.
Okay, verstehe. Ich habe einen Offset von -0,5*LSB. Dann paßt auch die Formel von oben: 10*log10((((2^15)-1)/-0.5)^2) = 96,3 dB Danke für die Erklärungen.
:
Bearbeitet durch User
Walter T. schrieb: > 10*log10((((2^15)-1)/-0.5)^2) = 96,3 dB
Ich komme mit der Formel nicht ganz klar.
Gerald K. schrieb: > Walter T. schrieb: >> 10*log10((((2^15)-1)/-0.5)^2) = 96,3 dB > >
> > Ich komme mit der Formel nicht ganz klar. die ist ja auch falsch. 20 * log10(65536) = 96.33 dB.
Gerald K. schrieb: > Ich komme mit der Formel nicht ganz klar. INT16_MAX ist (2^15)-1, nicht 2^(15-1) Aber die Formel ist tatsächlich falsch. Wegen des Offsets von 0,5 müßte es ja sein: 10*log10((((2^15)-1,5)/-0.5)^2) = 96,3 dB auch wenn es nicht viel ausmacht.
:
Bearbeitet durch User
Walter T. schrieb: > Gerald K. schrieb: >> Ich komme mit der Formel nicht ganz klar. > > INT16_MAX ist (2^15)-1, nicht 2^(15-1) Ich habe auf Grund der Klammerung zunächst (2^15) gerechnet und 1 subtrahiert.
:
Bearbeitet durch User
Gerald K. schrieb: > Ich habe auf Grund der Klammerung zunächst (2^15) gerechnet und 1 > subtrahiert. Dann will Hiper Calc Dich ärgern und behauptet das Gegenteil.
Moin, Geht es hier um europaeische oder afrikanische Schwalben? scnr, WK
Walter T. schrieb: > Wegen des Offsets von 0,5 müßte es ja sein: Was redest du da für einen Scheiss wegen Offset? Ein Zahlen- umfang hat keinen Offset und braucht auch keinen. Nur die Anzahl der Bits ist relevant für die Dynamik. Wastl schrieb: > Warum muss man, wenn man 16 Bit Zahlenumfang hat, zur Berechnung > der Dynamik ein Bit weniger annehmen?
Was redest Du für einen Scheiß wegen Zahlenumfang? Ein Zahlenumfang ist weder eine Leistungsgröße noch eine Leistungswurzelgröße und hat damit auch keine Dynamik.
Walter T. schrieb: > Ein Zahlenumfang ist > weder eine Leistungsgröße noch eine Leistungswurzelgröße und hat damit > auch keine Dynamik. Achso, ja dann ....
es gibt keine Offsets und solchen Kram. Die Dynamik ist das Verhältnis von der grössten zur kleinsten Darstellbaren Spannung. Bei 16 Bits ist die grösste Spannung 65536 mal so gross wie die Kleinste, das sind 96 dB, weil 20*log10(65536) = 96 ist. ja, es ist natürlich, wenn man es genau nimmt, ein Faktor 65535, aber für alle praktischen Belange ist 65535 = 65536. Der Fehler ist im sub-0.1dB Bereich. Also rechnet man mit 2^16.
Tobias P. schrieb: > Die Dynamik ist das Verhältnis von der grössten zur kleinsten > Darstellbaren Spannung. Ich bin da absolut keine Experte, aber das allein kann es ja nicht sein. Ansonsten würde ich einfach meine Achsen exponnentiell skalieren, also 0 entspricht 1e-10 V, 1 entspricht 200 V und voilá habe ich mit 1 Bit mehr als 240 dB Dynamikumfang erreicht. Oder banal: 0 entspricht 0V, 1 entspricht 1 V, mein Dynamikumfang ist unendlich!
:
Bearbeitet durch User
Walter T. schrieb: > würde ich einfach meine Achsen (...) skalieren Wird bei der Sprach-Telefonie auch gemacht, um mit der gleichen Anzahl Bits einem größeren Bereich übertragen zu können. Durch die grössere Schrittweite bei hohen Pegeln ist die Auflösung dort gröber (="schlechter"), dafür kannst du aber auch noch das Flüstern hören.
Walter T. schrieb: > Ich habe einen Offset von -0,5*LSB. Der Offset spielt bei der Dynamik des Audiosignals keine Rolle, da er nicht zur Lautstärker beiträgt (üblicherweise wird er auf Analogseite mittels Koppelkondensatoren aus dem Signal entfernt). Entscheidend ist allein das Verhältnis zwischen der größtmöglichen und der kleinstmöglichen (von 0 verschiedenen) Amplitude. Die Amplitude ist die halbe Differenz von oberem und unterem Scheitelwert. Die größtmögliche Amplitude bei einem 16-Bit-DAC ist somit a_max = ((2¹⁵-1)-(-2¹⁵))/2 = 2¹⁵-½ Die kleinstmögliche Amplitude ist a_min = (1-0)/2 = ½ Anmerkung: Statt (1-0) könnte man genauso gut (87-86) schreiben, da der Offset keine Rolle spielt. Die Dynamik in dB ist 20·log₁₀(a_max/a_min) = 20·log₁₀((2¹⁵-½)/½) = 20·log₁₀(2¹⁶-1) ≈ 96,3
:
Bearbeitet durch Moderator
Wechseln wir von Werten auf Amplituden. Das klingt erst einmal sinnvoll. Stichprobe beim "banalen" Fall 1-Bit: Alles 0en -> Amplitude 0. Alles 1en -> Amplitude 0. Wechsel zwischen 0en und 1en -> Amplitude 0,5. Dynamik: 20*log10(0.5/0,5) -> 0 dB. Paßt. Danke für die Erklärung! Nachtrag: Aber wenn 1 Bit 0 dB Dynamik sind, passt das nicht mit 6 dB pro Bit mehr: 1 Bit-> 0dB 15 Bit -> 15 * 6 dB = 90 dB 16 Bit = 1 Bit + 15 Bit = 90 dB Hänge ich hier jetzt bei irgendeinem Zaunpfahlproblem?
:
Bearbeitet durch User
Walter T. schrieb: > Nachtrag: Aber wenn 1 Bit 0 dB Dynamik sind, passt das nicht mit 6 dB > pro Bit mehr. Das ist ja nur eine Näherung für 2ⁿ >> 1 (n ist die Bitzahl). Nur wenn diese Bedingung erfüllt ist, gilt 20·log₁₀(2ⁿ-1) ≈ 20·log₁₀(2ⁿ) = 20·n·log₁₀(2) ≈ 6·n
:
Bearbeitet durch Moderator
Kannst Du irgendwelchen "echten Stoff" (Literatur) empfehlen, wo diese Definitionen mal sauber behandelt werden, um nicht auf "Näherungen von irgendeinem Typen aus dem Internet" angewiesen zu sein? Irgendwie scheint alle "gute" Literatur zur akustischen Meßtechnik, die ich kenne, irgendwann in den 80ern stehengeblieben zu sein. Edit: Die jetzige Herleitung ist SEHR brauchbar (nach Deinem Edit). Die Frage war eher allgemein.
:
Bearbeitet durch User
Wer es genau wissen will: https://www.analog.com/media/en/training-seminars/tutorials/MT-001.pdf lg, Tommy
Danke! Das Whitepaper ist wirklich sehr brauchbar und behandelt "zufällig" sogar den Aspekt, warum ich mich mit dem Kram überhaupt zu beschäftigen angefangen habe ("Echte" Dynamik vs. Noise Floor).
Walter T. schrieb: > Der Schalldruck ist eine Leistungswurzelgröße, der größte Wert ist 2^15 > - 1, der kleinste 1, Falsch. Der kleinste Wert geht von 0 bis 1, das ist richtig. Der größte Amplitude geht aber von -32768 bis +32767, und das sind die vollen 2^16 Bits. Daraus folgen die 96dB.
Walter T. schrieb: > 20*log10(((2^15)-1)/1) = 90,3 Da steckt der Fehler: Es sind 2^16. Wird hier gleich mehrmach falsch gemacht! -> 20*log10(65535) = 96,x Ein Signal kann innerhalb des Datenstroms von -32k bis 32k springen, damit ist die Dynamik 64k. Die darstellbare kleinste Größe ist 1. Wenn man sich auf die Amplituden bezieht, die real abgebildet werden, müsste man die Bandbreite und die Anstiegszeit berücksichtigen. Die ist bei einem bandbegrenzten Signal erheblich geringer, daher nutzt ein Audiosignal die 96dB nur im Sonderfall aus, wenn f = Fs/2. Bei den heute üblichen 192kHz ist die Auslastung geringer. Daher würden sogar 1 Bit weniger reichen, um Audio darzustellen. Der Faktor geht mit Wurzel (192 / 48). Yalu X. schrieb: > 20·log₁₀((2¹⁵-½)/½) = 20·log₁₀(2¹⁶-1) ≈ 96,3 Ich würde beim Faktor 1/2 über die Rundung argumentieren. Das LSB ist maximal 0,5 digit falsch.
Walter T. schrieb: > 0*log10((((2^15)-1)/-0.5)^2) = 96,3 dB Tobias P. schrieb: > 20 * log10(65536) = 96.33 dB. Ich würde log10(65535) nehmen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.