digital audio grundlagen



  • im alten thread über den audio mixer gabs leider keine antworten, deshalb probiere ich es hier mal etwas geordneter mit den grundlagen:

    was ist eher der 'standard', signed samples oder unsigned samples?

    ebenfalls, eher LSB (little endian) oder MSB (big endian) ?

    und nun zum umrechnen von formaten:

    22050 Hertz -> 44100 Hertz: funktioniert es, einfach jedes einzelne sample 2-mal zu nehmen, und dann bei 11050 -> 44100 einfach 4-mal? das _sollte_ doch dann exakt die selbe hörbare qualität haben, oder?

    bei konversion von 8 bit zu 16 bit unsigned müsste ja einfach eine multiplikation mit 256 funktionieren, oder? und bei signed einfach multiplikation mit 256 / 2 ?

    bin sehr dankbar für jede korrektur und/oder bestätigung!

    gruß,

    ---loki



  • loki1985 schrieb:

    was ist eher der 'standard', signed samples oder unsigned samples?

    ebenfalls, eher LSB (little endian) oder MSB (big endian) ?

    Du meinst beim Dateiformat? -> wotsit.org

    Zum bearbeiten werden aber idR Fließkommazahlen bevorzugt.

    loki1985 schrieb:

    22050 Hertz -> 44100 Hertz: funktioniert es, einfach jedes einzelne sample 2-mal zu nehmen, und dann bei 11050 -> 44100 einfach 4-mal? das _sollte_ doch dann exakt die selbe hörbare qualität haben, oder?

    Ja. Du kannst dann aber auch gleich linear (oder besser) interpolieren, dann hast du weniger Quantisierungsrauschen (bei 11050 sollte das schon hörbar sein).

    Zum Abschluss noch ein Link



  • Also, wenn du beim hochsampeln einfach nur ein Sample zwei mal verwendest, dürfte nicht das selbe Signal rauskommen.
    Denn durch den Lautsprecher wird ja da irgendwie Sinusartig drüberinterpoliert.
    Stichwort Fourier.



  • Ob du jetzt für 4 mal 2.26757369615e-05 Sekunden (bei 44100kHz) ein und dasselbe Sample ausgiebst, oder 1 mal 9.07029478458e-05 Sekunden (bei 11025kHz) dasselbe Sample ist doch Jacke wie Hose. Das Ergebnis nach dem D/A-Wandler ist identisch.

    Was du imho meinst ist die Trägheit der Induktivität eines Lautsprechers. Da man aber davon ausgehen muss, dass zumindest der Hochtöner in der Lage ist Frequenzen >16kHz auszugeben ist das Quantisierungsrauschen schon hörbar. Stichwort Fourier.



  • TactX schrieb:

    Ob du jetzt für 4 mal 2.26757369615e-05 Sekunden (bei 44100kHz) ein und dasselbe Sample ausgiebst, oder 1 mal 9.07029478458e-05 Sekunden (bei 11025kHz) dasselbe Sample ist doch Jacke wie Hose. Das Ergebnis nach dem D/A-Wandler ist identisch.

    Falsch.
    Die Nyquisfrequenz eines 11025Hz Signals liegt bei 5512,5Hz. Dementsprechend wird er Filter des D/A-Wandlers auch höherfrequente Anteile rausfiltern. Bei einer Samplerate von 44100Hz (nicht kHz!!!) ist die Nyquistfrequenz jedoch 22050Hz, und eben da setzt auch der Filter an. Somit wirst du ganz viele Artefakte im Bereich 5512.h bis 22050Hz haben, die du absolut nicht haben willst.

    Ja. Du kannst dann aber auch gleich linear (oder besser) interpolieren, dann hast du weniger Quantisierungsrauschen (bei 11050 sollte das schon hörbar sein).

    Quatisierungsrauschen hat damit gar nichts zu tun. Quantisierungsrauschen kommt von einer geringen Bit-Auflösung pro Sample und nicht von der Anzahl der Sample pro Sekunde.

    Lineare oder meinetwegen auch kubische Interppolation ist allerdings beim Hochsamplen eine sehr schlechte Variante, wenn auch tausendmal besser, als verdoppeln.
    Ich würde zu Zero-Stuffing raten: Füge zwischen den Samples Null-Samples ein und setzte dann einen extrem Steilen LP-Filter (mindestens 96dB/Oktave) bei der halben Samplerate an (bei Verdopplung der Samplerate). Bei Vervierfachung würdest du drei Nullen einfügen und den Filter bei einem virtel der Nyquistfrequenz ansetzen. Es gibt Polyphase-Filter, mit denen das recht gut geht.
    Dabei wird allerdings die Amplitude verkleinert (6dB pro Verdopplung), was du ausgleichen musst.



  • Helium schrieb:

    TactX schrieb:

    Ob du jetzt für 4 mal 2.26757369615e-05 Sekunden (bei 44100kHz) ein und dasselbe Sample ausgiebst, oder 1 mal 9.07029478458e-05 Sekunden (bei 11025kHz) dasselbe Sample ist doch Jacke wie Hose. Das Ergebnis nach dem D/A-Wandler ist identisch.

    Falsch.
    Die Nyquisfrequenz eines 11025Hz Signals liegt bei 5512,5Hz. Dementsprechend wird er Filter des D/A-Wandlers auch höherfrequenze Anteile rausfiltern. Bei einer Samplerate von 44100Hz (nicht kHZ!!!) ist die Nyquistfrequenz jedoch 22050Hz, und eben da setzt auch der Filter an. Somit wirst du ganz viele Artefakte im Bereich 5512.h bis 22050Hz haben, die du absolut nicht haben willst.

    Das stimmt zwar, du gehst dabei aber davon aus, dass der Wandler jeweils mit unterschiedlicher Frequenz wandelt. Das ist (zumindest beim PC) ja nicht der Fall, der Wanler wird immer mit 44,1kHz wandeln und daher wird das Ergebnis in beiden Fällen identisch sein.

    Jo, Quantisierungsrauschen ist was anderes. Hab ich gestern verwechselt...



  • Meine Karte kann auch noch mit Sampleraten bis 192kHz umgehen. Nicht jeder besitzt Billig-Konsumer-Karten.



  • TactX schrieb:

    Du meinst beim Dateiformat? -> wotsit.org

    Zum bearbeiten werden aber idR Fließkommazahlen bevorzugt.

    nein, ich meine die daten die direkt an den soundlayer gespeist werden. und wenn man schon das standardformat (falls es das gibt) erwischt, wäre ja keine weitere konvertierung nötig....

    nur zum klarstellen: es geht hierbei um das planen eines simplen, API-unabhängigen audio-mixers, also um realtime.... ich glaube kaum dass sich dabei lohnen sollte, groß auf beste ergebnisse und floats zu zählen. zudem wird ohne hardware-mixing etc gearbeitet, daher lieber so wenig processing wie möglich.



  • Helium schrieb:

    Meine Karte kann auch noch mit Sampleraten bis 192kHz umgehen. Nicht jeder besitzt Billig-Konsumer-Karten.

    Na herzlichen Glückwunsch, wenn doch nur deine Brainpower auch so hoch wäre 🙄



  • Quarktasche schrieb:

    Helium schrieb:

    Meine Karte kann auch noch mit Sampleraten bis 192kHz umgehen. Nicht jeder besitzt Billig-Konsumer-Karten.

    Na herzlichen Glückwunsch, wenn doch nur deine Brainpower auch so hoch wäre 🙄

    Du musst es ja wissen 😕


Anmelden zum Antworten