Forum: Mikrocontroller und Digitale Elektronik *.wav File output


von Micha (Gast)


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

von Jens123 (Gast)


Lesenswert?

wieso wave und nicht mp3??

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

von Philipp Sªsse (Gast)


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?!

von Benedikt (Gast)


Lesenswert?

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

von Erik (Gast)


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...

von Philipp Sªsse (Gast)


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.

von Erik (Gast)


Lesenswert?

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

von Benedikt (Gast)


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

von Philipp Sªsse (Gast)


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?

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
Noch kein Account? Hier anmelden.