www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 16Bit xkhz mono WAV (PCM) abspielen?


Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich komme nicht mehr weiter, habe diverse dokus zu WAV (PCM) gelesen 
aber mir fehlt der Ansatz. Also ich möchte 16-bit 44,1khz Mono WAV 
abspielen. Habe einen 10-Bit DAC, 0V-3,3V habe die Mittellinie auf 1,65V 
gelegt. Nun lese ich die HEX-Werte paarweise da laut WAV doku es ja 
16-Bit Werte sind, also:

Block1    Block2    Block3    Blockn
0x86 0x03 0x8C 0x03 0x24 0x04 n n+1

Block1    Block2    Block3
(unsigned)(unsigned)(unsigned)
34307     35843     9220

jetzt gebe ich die unsigned Werte an den DAC im 44,1khz takt, da kommt 
nur starkes rauschen. Kann mir Bitte jemand weiterhelfen. Danke.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Denke an die "Endianness". Mir scheint, Du vertauscht MSB und LSB:

> Block1    Block2    Block3    Blockn
> 0x86 0x03 0x8C 0x03 0x24 0x04 n n+1

Das dürften folgende Samplewerte sein:

0x0386 0x038c 0x0424 ...

902 908 1060 ..

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke hat super geklappt. Du bist der Beste :-) Noch kurz eine Frage. 
Wie kann ich das übersteuern verhindern so das ich z.B. einen Line Out 
ausgang habe. für 48khz - 8khz. Danke

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmmm noch eine Frage, ich habe doch einen 10-Bit DAC, aber warum frisst 
der 16-Bit??? Danke für alle antworten.

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

Bewertung
0 lesenswert
nicht lesenswert
>Hmmmm noch eine Frage, ich habe doch einen 10-Bit DAC, aber warum frisst
>der 16-Bit???

Hat der DAC einen Namen, dann könnte man nämlich in´s Datenblatt 
schauen. Und warum nimmst Du keinen für AUDIO ausgelegten DAC mit 16 
oder 24 Bit?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
David schrieb:
> Hmmmm noch eine Frage, ich habe doch einen 10-Bit DAC, aber warum frisst
> der 16-Bit???

Weil die kleinste Einheit in der EDV nun mal 8 Bit sind.

Wahrscheinlich wird der einfach die Bits 10, 11, 12, 13, 14, 15 
ignorieren.

-> Die 16 Bit Samples um 6 Stellen nach rechts schieben. Das könnte auch 
dein 'Übersteuern' mildern.

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.