www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einige Fragen: Aufnahme und Wiedergabe von Audio


Autor: Supa Micha (supa_micha)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einige Fragen zur Aufnahme und Wiedergabe von Audio.

1) Angenommen ich habe ein Elektret-Mikrofon als Audio-Quelle. Das 
Mikrofon-Signal wird verstärkt, tiefpass gefilter und AD-gewandelt.
Dabei interessiert mich der Spektralbereich bis 3,4kHz.

Wie dimensioniere ich meinen Tiefpassfilter? Angenommen ich taste mit 
8kHz ab und meine Auflösung beträgt 12bit. Orientiert sich die benötigte 
Dämpfung des Tiefpasses bei 8kHz dann aus dem Quantisierungsrauschen, 
also entsprechend etwa -72dB? Oder orientiere ich mich eher an dem ENOB 
Wert des AD-Wandlers?
Oder doch ganz anders?

2) Wenn ich jetzt beispielsweise mit 16kHz überabtaste und dann 
entsprechend digital filtere und downsample, dann lege ich meinen 
analogen Filter so aus, dass er bei 24kHz die benötigte Dämpfung hat. Im 
Bereich von 8kHz bis 16kHz entstehen dann zwar Aliasing-Effekte, diese 
filtere ich dann aber ja digital wieder heraus. Oder?

3) Nun möchte ich mein Audiosignal mit Hilfe einer PWM ausgeben, es gilt 
wieder 12bit und 8kHz. Zunächst beträgt die PWM Frequenz 8kHz. Wie 
dimensioniere ich jetzt meinen analogen Filter? Orientiere ich mich 
wieder an dem Qunatisierungsrauschen, also etwa -72dB?

4) Was passiert, wenn ich die PWM-Frequenz in den nicht hörbaren Bereich 
verlagere, beispielsweise 40kHz. Wie bestimme ich dann meinen Filter?
-Ich benutze gar keinen analogen Filter, die Frequenz kann man eh nciht 
hören
-Ich bestimme die Dämpfung des Gesamtsystems, bestehend aus einem 
analogen Filter, einem Verstärker und einem Lautsprecher, so, dass ich 
bei 40kHz eine Dämpfung von -72dB habe?
-Oder bestimme ich das entpsrechend schon wie bei Frage 3?

Ich würde mich sehr freuen, wenn ihr mir die ein oder andere Frage 
beantworten könntet? Zur Not hätte ich auch noch mehr ;-)

Viele Grüße
Michael

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie dimensioniere ich meinen Tiefpassfilter? Angenommen ich taste mit
>8kHz ab und meine Auflösung beträgt 12bit. Orientiert sich die benötigte
>Dämpfung des Tiefpasses bei 8kHz dann aus dem Quantisierungsrauschen,
>also entsprechend etwa -72dB? Oder orientiere ich mich eher an dem ENOB
>Wert des AD-Wandlers?

Ich denke, das Filter muss schon bei 4,6kHz die ausreichende Dämpfung 
haben, egal ob du dich am Quantisierungsrauschen oder an der eff. 
Auflösung orientierst. Alles was oberhalb 4,6kHz (bis 8 + 3,4kHz, dann 
periodisch wiederholend) noch im Signal ist, taucht bei der DA-Wandlung 
wieder im Nutzspektrum auf.
>Wenn ich jetzt beispielsweise mit 16kHz überabtaste und dann
>entsprechend digital filtere und downsample, dann lege ich meinen
>analogen Filter so aus, dass er bei 24kHz die benötigte Dämpfung hat. Im
>Bereich von 8kHz bis 16kHz entstehen dann zwar Aliasing-Effekte, diese
>filtere ich dann aber ja digital wieder heraus. Oder?

Bei der Überabtastung mit 16kHz sollte entsprechend das Signal ab 
16-3.4kHz sauber sein. Die Signale um 16 +- 3,4kHz sind nachher im 
Nutzsspektrum und auch digital nicht entfernbar.

Autor: Supa Micha (supa_micha)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für deine Antwort. Da hatte ich wohl gestern abend einen 
Denkfehler. Ist klar, du hast natürlich recht.

Aber für welche Dämpfgung lege ich das ganze denn genau aus? Wirklich 
für das Quantisierungsrauschen? Oder kann ich da Kompromisse eingehen?

Von der Qualtität soll es nichts besonderes werden, Telefonqualität 
halt. Es sollte aber schon "sauber" designed sein.

Viele Grüße
Michael

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Exakte Fakten habe ich da keine parat - aber:
- die effektiven Bits geben eh die erreichbare Auflösung an, besser 
musst du also nicht werden. Wieviel da möglich ist, hängt vom Wandler 
und vom Aufbau ab. Bei 12Bit nominal sollten schon so ca. 10-11 bit 
effektiv erreicht werden, also 60-66 dB.
- ausserdem sind im Nutzspektrum die Frequenzanteile bei den höheren 
Frequenzen mit geringerem Pegel enthalten: das kommt dir entgegen. Falls 
du keine Synthesizermusik übertragen willst ;-)
- bei geforderter Telefonqualität sollten locker 60dB @ 4.6KHz 
ausreichen - wäre meiner Ansicht nach noch sauber designed.
- für ein Spardesign müssen auch 45-50dB bei 4,6kHz ausreichen. Die 
Filterdämpfung nimmt in Richtung Abtastfrequenz ja weiter zu und die 
Signalpegel bei einer natürlichen Quelle nehmen ab.
- bei Überabtastung mit 16kHz solltest du die Dämpfung bei 12.6kHz 
erreicht haben, d.h. das Filter wird einfacher. Und dort sind die 
Eingangssignalanteile noch viel geringer, so dass hier erst recht die 
50dB ausreichen müssten.
Theoretisch sind es natürlich die von dir genannten 72dB.
Theoretisch hat der AD-Wandler aber auch 12 Bit Auflösung.

Für reine Telefonqualität gab es (zumindest Anfang der 1980er) Wandler, 
die speziell für Telefon designed waren. Es waren eigentlich 
12-bit-Wandler, denen aber eine gekrümmte Kennlinie (Stichwort A-Law 
bzw. µ-Law) vor- bzw. nachgeschaltet war, so dass damit die Ausgabe auf 
8 Bit reduziert werden konnte. Bei leisen Signalen war die Auflösung 12 
Bit udn damit geringes Quantisierungsgeräusch), bei sehr lauten jedoch 
nur 6 Bit, das höhere Quantisierungsgeräusch wurde aber durch das laute 
Nutzsignal zugedeckt.
Ich müsste meine Diplomarbeit wieder heraussuchen ....

Autor: Anonymous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
See this link:

AVR335: Digital Sound Recorder
http://www.atmel.com/dyn/resources/prod_documents/...

Autor: Supa Micha (supa_micha)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey HildeK, es klingt so, als könntest du mir wirklich weiterhelfen ;-)

Vielleicht kurz zum Hintergrund: Ich schreibe gerade an meiner 
Diplomarbeit, die sich im Wesentlichen mit der Komprimierung von 
Audiodaten beschäftigt. Also durchaus angefangen bei A-law und µ-law. 
Dazu soll auch ein einfaches Demonstrationssystem für die 
Sprachaufnahme,-speicherung und -wiedergabe entwickelt werden.

Bislang habe ich aber halt noch keine genauen Quellen gefunden, die sich 
mit der Dimensionierung der benötigten Filter beschäftigen. Also wenn du 
mir vielleicht noch irgendeine Quelle nennen könntest, auf die ich bei 
der Dimensionierung entsprechend verweisen kann, dann würdest du mich so 
glücklich machen ;-)Von mir aus auch deine Diplomarbeit ;-)

Und dann noch zwei zusätzliche Fragen:
-Mein Rekonstruktionstiefpass lege ich entsprechend auf die gleiche 
Dämpfung wie beim Eingangsfilter aus?
-Habe ich das richtig verstanden, dass sich die benötigte Dämpfung aber 
schon an der Auflösung orientiert? Also wenn du schreibst, für 
Spardesigns reichen 45-50dB, bezieht sich das auf 12bit oder?
-Hierzu im Anschluss gleich noch ein Gedanke von mir, wo ich aber nicht 
sicher bin, ob das geht: Wenn ich die Auflösung des AD-Wandlers auf 
beispielsweise 11bit beschränke, mit 32kHz abtaste, meinen Tiefpass 
entsprechend dimensioniere und dann durch Oversampling mir mein eines 
"verlorenes" Bit wiederhole? Wäre das grundsätzlich möglich?

Danke schonmal,
Michael

PS: Alle Antworten sind willkommen, es kann natürlich auch jeder andere 
als HildeK antworten :-)

Autor: Supa Micha (supa_micha)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Anonymous:
Danke für den Hinweis. Leider wird in dieser Application Note, wie in 
irgendwie keiner, auf die benötigte Dämpfung eingegangen. Man kann zwar 
zurückrechnen, sich in der Praxis anschauen, das es funktioniert usw. 
Das reicht aber leider nicht so als theoretische Grundlage ;-)

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bislang habe ich aber halt noch keine genauen Quellen gefunden, die sich
>mit der Dimensionierung der benötigten Filter beschäftigen. Also wenn du
>mir vielleicht noch irgendeine Quelle nennen könntest, auf die ich bei
>der Dimensionierung entsprechend verweisen kann, dann würdest du mich so
>glücklich machen ;-)Von mir aus auch deine Diplomarbeit ;-)
Die Diplomarbeit ist irgendwo in Papierform auf dem Speicher 
(hoffentlich) - damals gabs noch kein Internet, noch nicht mal PCs. Es 
gibt also nichts in elektronischer Form. Ich baute einen digitalen 
Fernsprechapparat für ein Voruntersuchungssystem des heutigen ISDN.
Soweit ich mich erinnere, hatte der eingesetzte Chip bereits die 
notwendige Filterei enthalten, ich musste da die Details nicht mehr 
erarbeiten - sorry, ist einfach zu lange her.
Suche mal im Bereich Anti-Alias-Filter, Shannon, Nyquist, ITU G.711

>Und dann noch zwei zusätzliche Fragen:
>-Mein Rekonstruktionstiefpass lege ich entsprechend auf die gleiche
>Dämpfung wie beim Eingangsfilter aus?
Schon - bei der DA-Wandlung wird das ursprüngliche Spektrum von 
0.3-3.4kHz  ja um die Abtastfrequenz herum wiederholt. Ohne Filter hast 
du dann um 8kHz nochmals zwei Bänder und die sollten wieder soweit 
gedämpft werden, dass das Quantisierungsgeräusch das einzige ist, was 
übrigbleibt.

>-Habe ich das richtig verstanden, dass sich die benötigte Dämpfung aber
>schon an der Auflösung orientiert? Also wenn du schreibst, für
>Spardesigns reichen 45-50dB, bezieht sich das auf 12bit oder?
Ja, die notwendige Dämpfung orientiert sich schon an der erforderlichen 
oder erreichbaren Auflösung des AD. Mehr muss nicht, den der Rest geht 
im Quantisierungsgeräusch unter. Andererseits auch an die Anforderungen 
an das Ergebnis und den zu leistenden Aufwand, z.B. 16 Bit AD für 
Sprachübertragung im Telefon wäre eben oversized!
Meine 'Spar'-Aussage ist so zu verstehen, dass man für die allgemein 
akzeptierte Telefonqualität eigentlich mit weniger auskommen müsste. Die 
3,4 kHz Bandbegrenzung sind ja qualitativ auch nicht gerade ein Renner.

>-Hierzu im Anschluss gleich noch ein Gedanke von mir, wo ich aber nicht
>sicher bin, ob das geht: Wenn ich die Auflösung des AD-Wandlers auf
>beispielsweise 11bit beschränke, mit 32kHz abtaste, meinen Tiefpass
>entsprechend dimensioniere und dann durch Oversampling mir mein eines
>"verlorenes" Bit wiederhole? Wäre das grundsätzlich möglich?
Meiner Meinung nach schon. Der größte Vorteil der OV-Methode ist aber 
die geringeren Anforderungen an die Filterflanken im Analogen mit dem 
Aufwand eines nachgeschaltete digitalen Filters. Dort kann man dann aber 
Typen wählen, die analog gar nicht zu bauen sind. Stichwort "lineare 
Phase".

Ich habe mich mit der Oversampling-Sache noch kaum beschäftigt. Da würde 
ich dir mal raten, im Bereich AD/DA-Wandler für CD-Audio zu suchen. Dort 
wird meines Wissens auch mit 1 Bit DA gearbeitet. Aber: DA!
Oben haben wir von Überabtastung und digitaler Nachfilterung geredet, 
jetzt von Erhöhung der Auflösung bei Überabtastung. Kann eng 
zusammenhängen, muss aber nicht - das überschaue ich gerade nicht, 
zumindest bei der AD-Wandlung.

Darf man eigentlich so lange Postings schreiben ???

Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin mir nicht ganz sicher ob ich hier richtig bin, aber vielleicht 
könnt ihr mir trotzdem helfen.
Ich beschäftige mich zur Zeit auch mit der Aufnahme und Wiedergabe von 
Audiosignalen mit einem LPC2138. Mein Problem dabei ist die Speicherung 
der Daten. Ich möchte gerne 10-30sec Aufzeichnen, das aber möglichst 
ununterbrochen in einem Ringpuffer (Datenrate: 10-16kByte/s). Mein 
erster Ansatz war, die Daten mit Speex zu komprimieren (1kByte/s)um sie 
im RAM zu halten. Das Problem dabei ist, daß die Kompression und 
Dekompression der Daten viel zu lange dauert (d.h. die Rechenleistung 
nicht ausreicht). Die Speicherung unkomprimierter Daten in den Flash ROM 
ist erstens wegen des zu langsamen schreibzugriffs (min. 1ms) und 
zweitens wegen der begrenzten Anzahl der schreib-lese- zugriffe nicht 
geeignet. Der Prozessor hatt auch kein Interface für externen Speicher. 
Wie würdet ihr das Problem lösen? Kennt jemand vielleicht ein geeignetes 
Hardwacodec, daß mir die Daten bereits komprimiert liefert oder einen 
eigenen Speicher besitzt?

Gruß
Harry

Autor: 2920 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein externes SPI flash anhaengen...

Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort,
aber das mit dem Flash funktioniert (wie oben schon erwähnt) nicht, da 
ich alle paar ms (spätestens nach 1s) drauf schreiben muss. Der Speicher 
würde das nicht lange mitmachen.

Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zum Thema Oversampling fällt mir grad ein:
ich hatte mal einen 1 Bit delta-Sigma converter gebaut, der durch 
oversampling eine genauigkeit von 10 Bit hatte. Allerdings für einem 
Temp. Sensor. (Microchip Applnotes)
Soweit ich weis, ist das bei CD-Playern schon weit verbreitet.

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.