www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik *.wav File output


Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hat irgendjemand eine Ahnung wo es im Netz die Beschreibung eines
Projektes gibt, bei dem jemand einen Mikrocontroller/ DSP benutzt um
Wave Files mit mehr als 96 kSps auszugeben?

Micha

Autor: Jens123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wieso wave und nicht mp3??

-> yampp.com org oder so war das mein ich

Autor: Philipp Sªsse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vermute einmal, Du willst auf einen eigenen Soundcontroller
verzichten und damit ist die Antwort auf Jens hinfällig.

Okay, aber warum ein Projekt ... welcher Teil ergibt sich nicht von
selbst?

.wav ist nur ein für Intel verstümmeltes AIFF, da findest Du mit fast
null Aufwand den data chunk. In dem stehen schnöde PCM-Daten drin (nur
halt LittleEndian). Die schiebst Du mit passend gewähltem
Timer-Interrupt auf einen DA-Wandler.

Wenn Du knapp an Beinchen bist, aber Leistung übrig hast, kannst Du
auch softwaremäßig Sigma-Delta-modulieren auf 1-Bit Ausgang.

Ich mache hier den umgekehrten Fall, um über den AD-Wandler Audio
aufzunehmen. Alles eine Frage, wieviel Leistung man drauf werfen kann
... (-;

Wenn Du noch Fragen hast, frag ruhig; vielleicht verstehe ich einfach
das Problem nicht?!

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du irgendeine Software für die 1->16bit Wandlung die für
Mikrocontroller geeignet ist (also ohne DSP o.ä auskommt) ?

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Phil:

Was verwendest für einen ADC? Wieviele Bit und max Samplingrate
Auflösung hat der?
Ich werde einen 16 Bit Messwandler mit Byte Interface von BB verwenden,
sind zwar schweine teuer dafür habe ich ein super mono ADC, mir ist die
qualität eben sehr wichtig...

Autor: Philipp Sªsse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benedikt:

Für die 1->16 Bit Wandlung habe ich ein RC-Glied! (-:

Du meinst vermutlich die 16->1 Bit Wandlung? Für einen SDM 1. Ordnung
brauchst Du nur x-mal pro Sample (x nach Deinen Anforderungen):

Integrator += Sample;
if (Integrator > Schwelle)
  {
    SetzeAusgang(1);
    Integrator -= Rueckkopplung;
  }
else
  {
    SetzeAusgang(0);
    Integrator += Rueckkopplung;
  }

Schwelle hängt vom Eingangsbereich ab, Rueckkopplung muß man in
Abhängigkeit der Signalart und dem Oversampling bestimmen. Gibt es wohl
auch Formeln für, aber mit etwas Gefühl bekommt man das auch so hin;
wenn man Eingang und geglätteten Ausgang zusammen auf's Oszi legt,
sieht man ja, ob z.B. der Ausgang bei steilen Flanken hinterherhinkt
(-> Rueckkopplung war zu klein) oder gruseliges Quantisierungsrauschen
draufliegt (-> zu groß).

Wenn sowohl als auch, mußt Du wohl mehr oversamplen (d.h. in diesem
Zusammenhang mehr Bit pro Sample rausschicken).

Die paar Takte pro Bit sollte jeder µC übrig haben, wenn wir nicht
gerade von CD-Qualität (oder schlimmerem) sprechen.


@Erik:
Meine Qualitätsanforderungen sind bescheiden: Sprachverständlichkeit
reicht. Es ist ein 8-Bit LTC1098; die Samplingrate ist durch das SSI
begrenzt, nicht durch durch die Konversion. Ich betreibe das SSI mit
128 kBit/s, bei 2 Byte pro Abtastung (1 Byte Konversion anwerfen, 1
Byte Sample auslesen) schaffe ich also 8 kHz Abtastung; 6 kHz nutze ich
real (Telephonqualität), weil ich die Daten noch in Echtzeit
komprimiere.

Autor: Erik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Info.
Reicht leider nicht für meine Anforderung.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Philipp Sªsse
Ich meinte das hier:
>Ich mache hier den umgekehrten Fall, um über den AD-Wandler Audio
>aufzunehmen. Alles eine Frage, wieviel Leistung man drauf werfen kann

Autor: Philipp Sªsse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die Aufnahme habe ich halt einen externen AD-Wandler.

Hast Du jetzt einen Bit-Stream, den Du softwaremäßig tiefpaßfiltern
willst in ein 16 Bit-Signal?

Oder willst Du einen Analogwert mit einem µC ohne AD-Wandler samplen,
wobei der µC den SDM spielt? (Lohnt sich wohl nur, wenn kein passender
Wandler aus dem Regal fällt ...)

Oder noch etwas anderes?

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.