8-Bit Audio mu-law expander

Hi Folks!

Ich moechte mit ein paar hier rumliegenden Flash-Eproms ein Wiedergabesystem für 8-Bit-Audiodaten aufbauen. ISD-Chips sind mir zu teuer und die eeproms hab ich hier in der Schublade. Wenn ich mir die "µ-Law-Kompression" so ansehe, muesste es doch moeglich sein, mit einem R2R-Netzwerk und vielleicht etwas zusätzlicher Digital-Logik den Dynamikumfang zu vergroessern. Die "Dekompression" funktioniert nach meinem Verständnis mit mu-Law (=µ-Law) offenbar so:

Bei 8bit Daten ist das hoechstwertige Bit (Bit 7) ein Vorzeichenbit. Die 4 niedrigsten Bits (0...3) bilden ganz normale Digitalwerte. Wird bit 4 gesetzt, dann verdoppeln sich die Wertigkeiten der Bits 0..3. Ist Bit 5 (und Bit 4 nicht) gesetzt, dann verdoppeln sich die Wertigkeiten nochmal. Sind Bit 4 und 5 gesetzt, dann gibt es eine weitere Verdoppelung der Wertigkeiten der Bits 0...3.

Irgendwie habe ich es aber noch nicht hingekriegt. Vielleicht muß ich doch erst alles digital auf 14bit-Werte strecken und dann einen mindestens 14bit DAC nehmen. Das waere dann doch etwas zu viel Aufwand, da ich so etwas nicht in meiner Bastelkiste rumfliegen hab.

Wenn es denn ohne 14 bit DAC geht, dann ist auch die Frage, ob ich effektiv (und nicht nur theoretisch) etwas von dem hoeheren Dynamikumfang habe.

Irgendwelche Tips?

Danke niels. [mailpostfachwirdnichtgeleertundquilltgradevonspammailsüber]

Reply to
niels laugwitz
Loading thread data ...

Hi!

Du möchtest 8 Bit speichern, ja?

Aber Du möchtest mehr als 8 Bit Dynamik.

Mehr als 8 Bit würde ich von einem R2R-Wandler nicht erwarten. Der Wert eines LSB ist bei 8 Bit immerhin schon 1/256, also 0,4% des Bereichs. Bin zu faul nachzuschauen, wie die Genauigkeit der Widerstände im R2R-Netzwerk eingeht, aber das kannst Du sicher herausfinden. Ich rate mal: 0,2% oder 0,4% oder 0,8% für 8Bit. Damit werden 14Bit schon sehr, sehr teuer.

Das klingt so wie die "13-Segment-Kennlinie" beim Telefon. Naja nicht ganz, denn: die "linearen" Bits (die unteren vier) werden von den "Verstärkungs-"Bits (die drei darüber) nicht einfach verdoppelt. Stell Dir vor, die unteren wären Null, und Du verdoppelst das - wieder Null. Damit schmeißt Du effektiv Bandbreite weg, da Du "Null" auf verschiedenste Weise beschreiben kannst.

Bei der "13-Segment-Kennlinie" verdoppeln sich nicht mit den höheren Bits die Ausgangswerte, sondern die _Steigung_ verdoppelt sich.

Ein linearer Wandler braucht dazu auf jeden Fall 14 Bit. Wolltest Du die Kennlinie direkt in den Wandler bringen? Keine Ahnung ob das geht, aber ich glaube kaum, daß eine R2R-ähnliche Struktur (mit anderen Werten als R und 2R) sowas wie diese Kennlinie erzeugen kann. Vielleicht gibts ja spezielle Wandler für Telefon.

Wie gesagt, ich kenne keinen 8Bit-13Segment-Wandler (das hat aber nichts zu sagen). Sicher bin ich hingegen, daß Du Telefonqualität bestimmt nicht gegen 8Bit linear eintauschen möchtest :-)

Ob ich jetzt helfen konnte? Ach, gute Nacht.

Gruß, Michael.

Reply to
Michael Eggert

niels laugwitz schrieb im Beitrag ...

So wie du es beschreibst musst du multiplizieren. Es gibt 'multiplying DACs', allerdings meist mit 8 bit, wie AD7824. Der erste DAC produziert (aus 4 bit) eine Spannung, die im zweiten DAC mit den restlichen Bits multipliziert wird. Du brauchst jeweils nur 4 bit, aber ich kenne keinen DAC mit nur 4 bit. Baut man also wohl aus Widerstaenden und Analogschaltern zusammen.

Allerdings ist uLAW etwas komplexer:

formatting link

Es gibt passende Chips Winbond W681511 oder Atelic und wohl auch von TI.

--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
Reply to
MaWin

Sowohl A-law als auch u-law machen auf ca. 12 Bit.

Rein per Widerstandsnetzwerk wäre mir keine Realisierung bekannt. Widerstands/Diodennetzwerk war Anfang 70er Jahre üblich ( in Thermostat bei konstanter Temperatur wegen der Dioden ) ehe es geeignete ICs gab. Es gab historisch auch Variante Deltamodulator ( also simpler 1 Bit A/D-Wandler ) auf A-law umzukodieren ( Ferranti ). Die simpelste Lösung für Sprache wäre natürlich PCM-Codec zu verwenden, das hat aber serielle Schnittstelle. Und 300 - 3400 Hz Filter, sodaß es wirklich nur Sprache macht. Die simpelste Lösung für HiFi wäre 2 Speicher, also 16 Bit mit 12 - 16 Bit Wandlern.

MfG JRD

Reply to
Rafael Deliano

Rafael Deliano schrieb:

Man könnte auch mittels einer Tabelle (ROM) umcodieren.

Martin

Reply to
Martin Lenz

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.