mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP 16Bit PCM-Sample


Autor: Franziskus Karsunke (fertas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich bin gerade am suchen, wie ein 16Bit PCM-Sample aufgebaut ist.
Ich finde zwar Informationen darüber, aber die widersprechen sich in 
Teilen und sind ungenau.

Also, falls sich jemand auskennt, wäre ich ihm sehr dankbar für eine 
erklärung, wofür die 4 einzelnen Nibbles genau stehen.

Grüße

Franz

Autor: T. H. (pumpkin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meinst du eine Bewertung nach A- oder µ-Law? Wenn nicht: PCM-Samples 
stellen Werte im 2er-Komplement dar.

Autor: FL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A-law oder u-Law sind normalerweise 8-bittig (ITU-T G.711).

16 Bit PCM, also das, was auf Audio-CDs zu finden ist, ist wie T.H. 
richtig schreibt eine Aneinanderreihung von vorzeichenbehafteten 16-Bit 
Werten. Der Wertebreich erstreckt sich damit auf -32768..32767.
Eine andere Sache ist noch, wie die einzelnen Abtastwerte z.B. bei 
Stereo-Signalen in einer WAV-Datei abgespeichert werden. Bei WAV ist es 
so, dass die Abtastwerte der beiden Kanäle immer abwechselnd 
hintereinander gespeichert werden, also:

L | R | L | R | L | R | ...

In anderen Dateiformaten / Streams etc. kann das aber anders sein.

Gruß
FL

Autor: Franziskus Karsunke (fertas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also steht ein 'L' oder ein 'R' bei dir jeweils für einen 16-Bit-Wert?
Ich hatte nämlich mal irgendwo gelesen, dass in einem 16Bit-Sample eben 
L und R gemeinsam 16bit sind.

Und danke schonmal für beide Antworten.

Autor: T. H. (pumpkin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Franziskus Karsunke wrote:
> also steht ein 'L' oder ein 'R' bei dir jeweils für einen 16-Bit-Wert?

Ja.

> Ich hatte nämlich mal irgendwo gelesen, dass in einem 16Bit-Sample eben
> L und R gemeinsam 16bit sind.

Kann man sicher machen. Hab' ich aber noch nie gesehen.

Autor: FL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich hatte nämlich mal irgendwo gelesen, dass in einem 16Bit-Sample eben
> L und R gemeinsam 16bit sind.

Da die Daten sowieso "ein Bit hinter dem nächsten" in einem "Stream" 
sind, wäre das von Dir beschriebene lediglich eine 
"16-Bit-Interpretation" von 2 8-bit Werten, die hintereinander in dem 
Stream stehen.

Jeder vernünftige(TM) Programmierer würde wohl die Daten aus diesem 
Stream als zwei getrennte 8-bit-Werte einlesen, und nicht als einzelnen 
16-bit-Wert, den er dann erst wieder auseinanderfriemeln muss.

Wenn Du die Daten als Datei auf einem PC hast, kannst Du sie ja mal in 
einen Audio-Editor einlesen (z.B. in Audacity als Rohdaten). Beim Import 
kannst Du angeben, wie sie interpretiert werden sollen -- wenn 
anschliessend ein vernünftiges Audio-Signal im Editor steht, hast Du das 
richtige Format gefunden...

Gruß
FL

Autor: Franziskus Karsunke (fertas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok dann danke für die antworten. Dann denke ich mal hab ich jetz das 
richtige.

Ich habe leider keine Datei. Ich erzeuge einen Stream in Assembler und 
gebe ihn an einen AC97-Controller weiter.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber dann wirst Du doch bestimmt irgend ein Interface bedienen müssen. 
I2S oder ein ähnliches serielles Protokoll. BTW: die Daten für 16Bit PCM 
Wave liegen im Format LinksLowByte, LinksHighByte, RechtsLowByte 
RechtsHighByte vor (Little Endian).

Autor: Oliver N. (neufranke)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist das bei 48Bit Signalen? (24 Bit Stereo)

Autor: Franziskus Karsunke (fertas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die 24-Bit PCMs sind in WIkipedia ganz gut erklärt glaub ich.
Entweder im englischen oder im deutschen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.