Verwendung eines Audiocodecs zur einfacheren Optimierung der Audio-Performance in eingebetteten Systemen

Von Jacob Beningo

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Viele Entwickler integrieren Audiocodecs in ihre Mikrocontroller-basierten Embedded-System-Designs, um High-Fidelity-Audio hinzuzufügen. Dabei müssen sie herausfinden, wie sie den Audiocodec für ihre Anwendung abstimmen können. Ohne Abstimmung kann die Anwendung flach oder qualitativ schlecht klingen, selbst mit einem guten Codec und Lautsprecher. Das Problem besteht darin, dass jeder Lautsprecher seinen eigenen Frequenzgang hat und der Codec daher auf die Eigenschaften des Lautsprechers abgestimmt werden sollte, wobei die Art der wiedergegebenen Audiosignale und der erforderliche Frequenzgang berücksichtigt werden müssen.

Die Lösung für die Abstimmung des Audiowiedergabesystems besteht nicht in der Verwendung von Hardware-Filterung, sondern in der Nutzung der eigenen digitalen Filterblöcke des Audiocodecs. Jeder Codec verfügt über diesen Block, um dem Entwickler die Möglichkeit zu geben, die Ausgabe mit Hochpass-, Tiefpass- und Bandpassfiltern zu filtern. Dadurch kann das Verhalten des Lautsprechers sorgfältig abgestimmt und bei Bedarf sogar angepasst werden.

Dieser Artikel behandelt die internen digitalen Audioblöcke, die in Codecs enthalten sind, am Beispiel eines Codecs von AKM Semiconductor. Außerdem werden einige Tipps und Tricks zur Abstimmung des Codecs besprochen, die Entwicklern helfen, die Entwicklung der Audiowiedergabe zu beschleunigen und gleichzeitig die Klangqualität eines Systems zu verbessern.

Verstehen des Frequenzgangs von Lautsprechern

Im Artikel „Wie man einen Audiocodec und Mikrocontroller für eingebettete Audio-Feedback-Dateien auswählt und verwendet“ wurden die Grundlagen der Auswahl und des Hinzufügens eines Codecs zu einem System behandelt. Der nächste Schritt ist die Verwendung dieses Codecs, um die bestmögliche Audioausgabe zu erhalten.

Es gibt verschiedene Faktoren, die bestimmen, wie der aus einem System kommende Ton klingt. Zu diesen Faktoren gehören:

  • Das Gehäuse des Lautsprechers
  • Wie der Lautsprecher montiert ist
  • Die wiedergegebenen Audiofrequenzen
  • Der Frequenzgang des Lautsprechers

Nach sorgfältiger Abwägung dieser Faktoren wird ein Entwickler schnell erkennen, dass das Tuning eines Audiosystems erst im endgültigen Produktionszustand sinnvoll ist. Sicherlich kann das System mit einer Platine und dem Lautsprecher außerhalb eines Gehäuses abgestimmt werden, aber man sollte nicht erwarten, dass dieselben Abstimmungsparameter auch gelten, wenn der Lautsprecher montiert und innerhalb seines Gehäuses ist.

Wenn das Mechanikteam das Systemgehäuse und die Halterung richtig entworfen hat, ist das Hauptmerkmal, das der Entwickler genau beobachten muss, der Frequenzgang des Lautsprechers. Jeder Lautsprecher hat unterschiedliche Eigenschaften und Antwortkurven. Selbst Lautsprecher mit der gleichen Teilenummer haben oft leichte Abweichungen im Frequenzgang, aber der Hersteller gibt in der Regel einen typischen Frequenzgang an. Abbildung 1 zeigt zum Beispiel den Frequenzgang für einen Lautsprecher der Serie GC0401K (8 Ohm (Ω), 1 Watt) von CUI Devices. Der GC0401K ist für Frequenzen zwischen 390 Hertz (Hz) und 20 Kilohertz (kHz) ausgelegt.

Grafik des Lautsprechers GC0401K (8 Ω, 1 Watt) von CUI DevicesAbbildung 1: Der Lautsprecher GC0401K (8 Ω, 1 Watt) von CUI Devices ist für Frequenzen zwischen 390 Hz und 20 kHz ausgelegt. (Bildquelle: CUI Devices)

Lautsprecher werden typischerweise für den Bereich ihrer Frequenzgangkurve ausgelegt, in dem der Frequenzgang relativ flach ist. Ein genauer Blick auf Abbildung 1 zeigt, dass der Frequenzgang des GC0401K bei ca. 350 Hz abzuflachen beginnt und bis etwa 9 kHz relativ flach bleibt. Die hohen Frequenzen weisen einen gewissen Abfall auf, sind aber bis 20 kHz noch stabil.

Ein anderer Lautsprecher-Frequenzgang ist beim GF0668 von CUI Devices zu sehen (Abbildung 2). Dieser Lautsprecher ist ein wenig größer und kann 3 Watt ausgeben. Der Frequenzgang liegt zwischen 240 Hz und 20 kHz. Dieser Lautsprecher erreicht etwas tiefere Frequenzen als der GC0401K, aber auch hier ist zu beachten, dass die Kurve innerhalb des angegebenen Bereichs relativ flach ist und einige Mulden und Spitzen aufweist.

Diagramm des Frequenzgangs für den Lautsprecher GF0668 (8 Ω, 3 Watt) von CUI Devices (zum Vergrößern klicken)Abbildung 2: Der Frequenzgang des Lautsprechers GF0668 (8 Ω, 3 Watt) von CUI Devices zeigt, warum er für den Bereich von 240 Hz bis 30 kHz ausgelegt ist. (Bildquelle: CUI Devices)

Ein letzter Frequenzgang, der einen Blick wert ist, ist der des SP-2804Y von Soberton Inc. (Abbildung 3). Der SP-2804Y ist ein 500 Milliwatt (mW) Lautsprecher mit einem Frequenzgang von 600 Hz bis 8 kHz. Die Gesetze der Physik sorgen dafür, dass je kleiner der Lautsprecher ist, desto schwieriger hat er es, auf tiefe Frequenzen zu reagieren. Das heißt, wenn die Entwickler die tiefen Frequenzen nicht herausfiltern und stattdessen versuchen, den Lautsprecher mit diesen Frequenzen anzusteuern, kann das Ergebnis ein knorriger Klang oder Defekte in Tönen sein, die sonst kristallklar klingen würden.

Beachten Sie, dass der Frequenzgang um 10 kHz deutlich einbricht. Daher ist der Lautsprecher nur bis 8 kHz ausgelegt, obwohl er für einige Anwendungen wahrscheinlich bis 20 kHz verwendet werden könnte.

Diagramm des Frequenzgangs für den Lautsprecher SP-2804Y (8 Ω, 0,5 Watt) von Soberton Inc. (zum Vergrößern klicken)Abbildung 3: Der Frequenzgang für den Lautsprecher SP-2804Y (8 Ω, 0,5 Watt) von Soberton Inc. zeigt, dass er für Frequenzen von 600 Hz bis 8 kHz geeignet ist. Er hat einen Einbruch nach 10 kHz, ist aber für einige Anwendungen noch bis 20 kHz nutzbar. (Bildquelle: CUI Devices)

Wenn man sich den Frequenzgang jedes Lautsprechers ansieht, ist es klar, dass eine Art Filterung und Abstimmung stattfinden muss, da es einige Frequenzen gibt, bei denen ein Lautsprecher nicht betrieben werden sollte. Wenn Sie z. B. versuchen, einen 4-Hz-Basston auf diesen Lautsprechern zu treiben, kann dies zu lang anhaltenden Schwingungen führen, die höhere Frequenzen einspeisen, was zu starken Klangverzerrungen führt.

Zerlegen eines digitalen Audio-Filterblocks

Eine Methode, die in der Vergangenheit verwendet wurde, um unerwünschte Frequenzen auszublenden, ist der Bau von Hardware-Filtern, die bis zum Lautsprecher führen. So kann z. B. ein Hochpassfilter bei 500 Hz verhindern, dass Frequenzen unterhalb von 500 Hz überhaupt an den Lautsprecher gelangen. Am anderen Ende kann ein Tiefpassfilter verwendet werden, um alle Töne über 15 kHz zu entfernen. Persönliche Erfahrung hat gezeigt, dass manchmal, wenn eine Frauenstimme mit einem kleinen Lautsprecher verwendet wird, der bei höheren Frequenzen effizient ist, der Lautsprecher ein hochfrequentes Klirren aufweisen kann. Durch sorgfältige Auswahl der Frequenzen können diese Verzerrungen beseitigt und ein sauberer klingender Ton erzeugt werden.

Externe Hardware-Filter können diese Aufgabe zwar übernehmen, verursachen aber zusätzliche Kosten und nehmen zusätzlichen Platz in Anspruch. Aus diesen Gründen ist es praktischer und effizienter, den Ton mit dem in einem Audiocodec eingebauten digitalen Filterblock abzustimmen.

Im Blockdiagramm für den 24-Bit-Audiocodec AK4637 von AKM Semiconductor ist zum Beispiel der digitale Filterblock hervorgehoben (Abbildung 4).

Diagramm des Audiocodecs AK4637 von AKM Semiconductor mit einem Mono-Lautsprecherausgang (zum Vergrößern anklicken)Abbildung 4: Der AK4637 ist ein Audiocodec mit Mono-Lautsprecherausgang, der über Funktionen zur Audiowiedergabe und -aufnahme verfügt. Er enthält zudem einen internen Audioblock, der zur Filterung ein- und ausgehender Audiosignale verwendet werden kann, um die Tonwiedergabe zu verbessern. (Bildquelle: AKM Semiconductor)

Der digitale Filterblock enthält in diesem Fall mehrere verschiedene Filterfunktionen, darunter:

  • Ein Hochpassfilter (HPF2)
  • Ein Tiefpassfilter (LPF)
  • Ein Vier-Band-Equalizer (4-band EQ)
  • Automatische Pegelregelung (ALC)
  • Ein Ein-Band-Equalizer (1 Band EQ)

Diese Funktionen müssen nicht alle aktiviert sein. Entwickler können auswählen, welche Funktionen sie benötigen und den Block aktivieren und deaktivieren oder Mikrofon oder Audiowiedergabe durch sie leiten. Die eigentliche Frage an dieser Stelle ist, wie man den Audiocodec berechnet und programmiert?

So berechnen und programmieren Sie digitale Filterparameter

In den meisten Audioanwendungen wird ein Hochpassfilter verwendet, um tiefere Frequenzen zu entfernen, und ein Tiefpassfilter, um höhere Frequenzen auszuschließen. Ein Equalizer kann verwendet werden, um den Frequenzgang zu glätten oder um bestimmte Töne hervorzuheben. Wie genau diese Einstellungen zu wählen sind, würde den Rahmen dieses Artikels sprengen. Stattdessen wird betrachtet, wie die Werte, die mit diesen Parametern verbunden sind, am Beispiel des AKM AK4637 berechnet und programmiert werden.

Zunächst ist es immer eine gute Idee, das Datenblatt heranzuziehen. Die Seiten 7 und 8 zeigen in diesem Fall die wichtige Registerkarte für den Codec. Ein erster Blick könnte einschüchternd wirken, da die Komponente 63 Register hat. Viele dieser Register steuern jedoch den digitalen Audioblock. Zum Beispiel steuern die Register 0x22 bis 0x3F den Equalizer. Die Register 0x19 bis 0x1C steuern den Hochpassfilter, während 0x1D bis 0x20 den Tiefpassfilter steuern.

Entwickler können normalerweise nicht einfach eine Frequenz angeben, die in den Codec eingegeben werden soll. Stattdessen gibt es eine Filtergleichung, die zur Berechnung von Filterkoeffizienten verwendet wird, die dann in die Codec-Register programmiert werden, um den Filter bei der gewünschten Frequenz zu erzeugen. Um zum Beispiel mit dem digitalen Filterblock einen Hochpassfilter bei 600 Hz zu erstellen, verwenden Sie Gleichung 1:

Bild der Gleichungen, die zur Berechnung der Koeffizienten für ein Hochpassfilter benötigt werdenAbbildung 5: Abgebildet sind die Gleichungen, die zur Berechnung der Koeffizienten für einen Hochpassfilter für den digitalen Filterblock AK4637 benötigt werden. (Bildquelle: AKM Semiconductor)

Ein Entwickler würde die gewünschte Grenzfrequenz, fc, identifizieren, die in diesem Fall 600 Hz beträgt. Die Audio-Abtastfrequenz, fs, beträgt typischerweise 48 kHz, kann aber je nach Anwendung variieren. Diese Werte würden dann in die Gleichungen zur Berechnung der Koeffizienten A und B eingesetzt werden. Diese Werte werden dann beim Start über I2C in die Codec-Register geschrieben. Das gleiche Verfahren wird für die Tiefpassfilter und andere digitale Blockfunktionen verwendet, obwohl die Übertragungsfunktionen oft unterschiedlich sind und einen eigenen Satz von Gleichungen erfordern (siehe Datenblatt).

Tipps und Tricks zum Abstimmen eines Audiocodecs

Die in einem Audiocodec enthaltenen digitalen Filterblöcke sind oft recht flexibel und leistungsfähig. Selbst ein preiswerter Audiocodec bietet Entwicklern die notwendigen Werkzeuge, um High-Fidelity-Audio zu erzeugen. Letztendlich ist der Audiocodec aber nur ein Teil des Puzzles. Um einen Audiocodec erfolgreich zu tunen, gibt es einige „Tipps und Tricks“, die Entwickler beachten sollten, z. B:

  • Stellen Sie sicher, dass der Lautsprecher in einem für die Anwendung geeigneten Gehäuse montiert ist. Eine unsachgemäß konstruierte Lautsprecherbox kann ein ansonsten perfektes Wiedergabesystem leicht ruinieren.
  • Stimmen Sie die Codec-Audiofilterblöcke erst dann ab, wenn das System vollständig in seiner produktionsreifen Konfiguration montiert ist. Die Tuning-Parameter können sich sonst ändern.
  • Wählen Sie den Frequenzbereich auf der Grundlage des wiederzugebenden Audiosignals. Zum Beispiel sind die Frequenzeinstellungen für Musik von einer Gitarre, einem Klavier oder einer sprechenden Person alle unterschiedlich.
  • Verwenden Sie den digitalen Abgleichblock, um den Frequenzgang des Lautsprechers zu kompensieren. Einige Frequenzen werden von Natur aus lauter und klarer klingen und müssen eventuell gedämpft werden, während andere verstärkt werden müssen.
  • Verwenden Sie Testtöne, um den Frequenzgang des Systems zu bewerten. Eine einfache Internet-Suche liefert mp3-Dateien für eine Vielzahl von Tönen, die verwendet werden können, um den Frequenzgang des Audiowiedergabesystems und die Funktionsweise des digitalen Filterblocks zu verstehen.
  • Speichern Sie die Konfigurationseinstellungen des Filterblocks im Flash oder EEPROM, so dass sie während der Herstellung eingestellt werden können, um Abweichungen von System zu System zu berücksichtigen (falls dies von Bedeutung ist).

Entwickler, die diese „Tipps und Tricks“ befolgen, werden feststellen, dass sie sich eine Menge Zeit und Ärger ersparen, wenn sie versuchen, ihr Audiowiedergabesystem abzustimmen, und sicherstellen, dass es mit den beabsichtigten Audioeigenschaften auf den Markt kommt.

Fazit

Das Hinzufügen eines Audiocodecs zu einem eingebetteten System ist keine Garantie dafür, dass es für den Endbenutzer gut klingt. Jedes Audiowiedergabesystem muss sorgfältig abgestimmt werden. Es ist möglich, externe Filter zu verwenden, um diese Abstimmung zu erreichen, aber Audiocodecs verfügen über eingebaute digitale Filter- und Abgleichfunktionen. Diese können, wie gezeigt, verwendet werden, um dem Lautsprecher nur die Frequenzen zuzuführen, für die er am besten geeignet ist. Durch sorgfältige Analyse und Anwendung von Filtereinstellungen können Entwickler den sauberen Klang erzeugen, den Endbenutzer von ihren Geräten erwarten.

DigiKey logo

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Autor

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo ist ein Berater für eingebettete Software, der derzeit mit Kunden in mehr als einem Dutzend Ländern zusammenarbeitet, um ihr Unternehmen durch die Verbesserung von Produktqualität, Kosten und Markteinführungszeit dramatisch zu transformieren. Er hat mehr als 200 Artikel über Entwicklungstechniken für eingebettete Software veröffentlicht, ist ein gefragter Redner und technischer Trainer und verfügt über drei Abschlüsse, darunter einen Masters of Engineering der University of Michigan. Bei Interesse können Sie ihn unter jacob@beningo.com kontaktieren oder besuchen Sie seine Website www.beningo.com und melden Sie sich für seinen monatlichen Embedded Bytes Newsletter an.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey