Verwendung eines Audio-Codecs zur einfacheren Optimierung der Audio-Leistung in eingebetteten Systemen

Update: 8. Dezember 2023

Viele Designer integrieren Audio-Codecs in ihre auf Mikrocontrollern basierenden Designs für eingebettete Systeme, um High-Fidelity-Audio hinzuzufügen. Dabei müssen sie herausfinden, wie sie den Audio-Codec für ihre Anwendung optimieren können. Ohne Abstimmung klingt die Anwendung möglicherweise flach oder von schlechter Qualität, selbst mit einem guten Codec und Lautsprecher. Das Problem ist, dass jeder Lautsprecher seinen eigenen Frequenzgang hat. Daher sollte der Codec auf die Lautsprechereigenschaften abgestimmt sein und dabei die Art des abgespielten Audios und den erforderlichen Frequenzgang berücksichtigen.

Die Lösung zur Optimierung des Audiowiedergabesystems besteht nicht darin, Hardware-Filterung zu verwenden, sondern stattdessen die digitalen Filterblöcke des Audio-Codecs zu nutzen. Jeder Codec verfügt über diesen Block, damit ein Entwickler die Ausgabe mithilfe von Hochpass-, Tiefpass- und Bandpassfiltern filtern kann. Dadurch kann die Reaktion des Lautsprechers sorgfältig abgestimmt und bei Bedarf sogar angepasst werden.

In diesem Artikel werden die internen digitalen Audioblöcke erläutert, die in Codecs enthalten sind, wobei ein Codec von AKM verwendet wird Halbleiter als Beispiel. Außerdem werden verschiedene Tipps und Tricks zum Optimieren des Codecs besprochen, die Entwicklern dabei helfen, die Entwicklung ihrer Audiowiedergabe zu beschleunigen und gleichzeitig die Klangqualität eines Systems zu verbessern.

Verstehen der Frequenzgangeigenschaften von Lautsprechern

In dem Artikel „Auswählen und Verwenden eines Audio-Codecs und eines Mikrocontrollers für eingebettete Audio-Feedback-Dateien“ wurden die Grundlagen für die Auswahl und das Hinzufügen eines Codecs zu einem System erläutert. Der nächste Schritt besteht darin, diesen Codec zu verwenden, um die bestmögliche Audioausgabe zu erzielen.

Es gibt verschiedene Faktoren, die dazu beitragen, wie das aus einem System kommende Audio klingt. Diese Faktoren umfassen:

  • Das Lautsprechergehäuse
  • Wie der Lautsprecher montiert ist
  • Die Audiofrequenzen, die abgespielt werden
  • Der Frequenzgang des Lautsprechers

Nach sorgfältiger Abwägung dieser Faktoren wird ein Entwickler bald feststellen, dass das Einstellen eines Audiosystems nur dann nützlich ist, wenn es sich im endgültigen Produktionszustand befindet. Sicher, das System kann mit einer Leiterplatte (Leiterplatte) und dem Lautsprecher außerhalb eines Gehäuses abgestimmt werden, aber man sollte nicht erwarten, dass dieselben Abstimmungsparameter gelten, wenn der Lautsprecher montiert ist und sich in seinem Gehäuse befindet.

Wenn das Mechanikerteam das Systemgehäuse und die Halterung richtig entworfen hat, muss der Entwickler vor allem auf den Frequenzgang des Lautsprechers achten. Jeder Lautsprecher hat unterschiedliche Eigenschaften und Reaktionskurven. Sogar Lautsprecher mit derselben Teilenummer weisen häufig geringfügige Abweichungen im Frequenzgang auf, der Hersteller stellt jedoch normalerweise eine typische Frequenzgangkurve zur Verfügung. Abbildung 1 zeigt beispielsweise die Frequenzgangkurve für einen CUI Devices GC0401K 8 Ohm (Ω), 1 Watt Lautsprecher. Der GC0401K ist für Frequenzen zwischen 390 Hertz (Hz) und 20 Kilohertz (kHz) ausgelegt.

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

Lautsprecher werden normalerweise für den Bereich ihrer Antwortkurve bewertet, in dem die Antwort relativ flach ist. Ein genauer Blick auf Abbildung 1 zeigt, dass der Frequenzgang des GC0401K bei ~ 350 Hz abflacht und mindestens bis 9 kHz relativ flach bleibt. Die High-End-Frequenzen haben einen gewissen Abfall, sind aber bis zu 20 kHz stabil.

Beim GF0668 von CUI Devices ist ein anderer Lautsprecherfrequenzgang zu erkennen (Abbildung 2). Dieser Lautsprecher ist etwas größer und kann 3 Watt ausgeben. Der Frequenzgang liegt zwischen 240 Hz und 20 kHz. Dieser Lautsprecher kann etwas tiefere Frequenzen wiedergeben als der GC0401K, aber beachten Sie auch hier, dass die Kurve innerhalb des angegebenen Bereichs relativ flach ist und durchgehend einige Tiefpunkte und Spitzen aufweist.

Abbildung 2: Der Frequenzgang des 0668-Ω-8-Watt-Lautsprechers GF3 von CUI Devices zeigt, warum er für den Bereich von 240 Hz bis 30 kHz ausgelegt ist. (Bildquelle: CUI Devices)

Eine letzte sehenswerte Lautsprecherreaktion ist die des SP-2804Y von Soberton Inc. (Abbildung 3). Der SP-2804Y ist ein 500-Milliwatt-Lautsprecher (mW) mit einem Frequenzgangbereich von 600 Hz bis 8 kHz. Die Gesetze der Physik sorgen dafür, dass je kleiner der Lautsprecher ist, desto schwieriger ist es, auf niedrigere Frequenzen zu reagieren. Das heißt, wenn Entwickler niedrigere Frequenzen nicht herausfiltern und stattdessen versuchen, den Lautsprecher bei diesen Frequenzen anzusteuern, kann das Ergebnis ein knorrig klingender Ton oder Fehler in Tönen sein, die sonst kristallklar klingen würden.

Beachten Sie, dass der Frequenzgang um 10 kHz ebenfalls erheblich abfällt. Daher ist der Lautsprecher nur für 8 kHz ausgelegt, obwohl er für einige Anwendungen wahrscheinlich bis zu 20 kHz verwendet werden könnte.

Abbildung 3: Der Frequenzgang des 2804-Ω-8-Watt-Lautsprechers SP-0.5Y von Soberton Inc. zeigt, dass er für Frequenzen von 600 Hz bis 8 kHz geeignet ist. Es gibt einen Abfall nach 10 kHz, ist aber für einige Anwendungen noch bis 20 kHz verwendbar. (Bildquelle: CUI Devices)

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

Zerlegen eines Audio-Digitalfilterblocks

Eine Methode, die in der Vergangenheit verwendet wurde, um unerwünschte Frequenzen auszuschalten, besteht darin, Hardwarefilter zu erstellen, die zum Lautsprecher führen. Beispielsweise kann ein Hochpassfilter bei 500 Hz verhindern, dass Frequenzen unter 500 Hz jemals zum Lautsprecher gelangen. Am anderen Ende kann ein Tiefpassfilter verwendet werden, um Audiotöne über 15 kHz zu entfernen. Persönliche Erfahrungen haben gezeigt, dass manchmal, wenn die Stimme einer Frau mit einem kleinen Lautsprecher verwendet wird, der bei höheren Frequenzen effizient ist, der Sprecher einen hohen Twang aufweisen kann. Durch sorgfältige Auswahl der Frequenzen können diese Verzerrungen beseitigt und ein sauberer klingender Ton erzeugt werden.

Während externe Hardwarefilter die Arbeit erledigen können, erhöhen sie die Kosten und beanspruchen zusätzlichen Platz. Aus diesen Gründen ist es praktischer und effizienter, das Audio mithilfe des in einen Audio-Codec integrierten digitalen Filterblocks abzustimmen.

Zum Beispiel das Blockdiagramm für das AKM Halbleiter Beim 4637-Bit-Audiocodec AK24 ist der digitale Filterblock hervorgehoben (Abbildung 4).

Abbildung 4: Der AK4637 ist ein Audio-Codec mit einem Mono-Lautsprecherausgang, der über Audiowiedergabe- und Aufnahmefunktionen verfügt. Es enthält außerdem einen internen Audioblock, mit dem eingehende und ausgehende Audiodaten gefiltert werden können, um die Audiotreue zu verbessern. (Bildquelle: AKM Semiconductor)

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

  • Ein Hochpassfilter (HPF2)
  • Ein Tiefpassfilter (LPF)
  • Ein 4-Band-Equalizer (XNUMX-Band-EQ)
  • Automatische Niveauregulierung (ALC)
  • Ein Einband-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 das Mikrofon weiterleiten oder Audio über sie wiedergeben. Die eigentliche Frage an dieser Stelle ist, wie der Audio-Codec berechnet und programmiert werden kann.

Berechnung und Programmierung digitaler Filterparameter

In den meisten Audioanwendungen wird ein Hochpassfilter verwendet, um niedrigere Frequenzen zu entfernen, und ein Tiefpassfilter wird verwendet, um höhere Frequenzen auszuschließen. Ein Equalizer kann verwendet werden, um die Frequenzgangkurve zu glätten oder bestimmte Töne hervorzuheben. Wie genau diese Einstellungen ausgewählt werden sollen, geht über den Rahmen dieses Artikels hinaus. Stattdessen wird am Beispiel des AKM AK4637 untersucht, wie die mit diesen Parametern verknüpften Werte berechnet und programmiert werden.

Zunächst ist es immer eine gute Idee, das Datenblatt zu überprüfen. Die Seiten 7 und 8 zeigen in diesem Fall die alles entscheidende Registerkarte für den Codec. Ein erster Blick könnte einschüchternd sein, da das Teil 63 Register hat. Viele dieser Register steuern jedoch den digitalen Audioblock. Beispielsweise steuern die Register 0x22 bis 0x3F den Equalizer. Die Register 0x19 bis 0x1C steuern das Hochpassfilter, während die Register 0x1D bis 0x20 das 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 mit der gewünschten Frequenz zu erstellen. Verwenden Sie beispielsweise Gleichung 600, um den digitalen Filterblock zum Erstellen eines Hochpassfilters bei 1 Hz zu verwenden:

Abbildung 5: Dargestellt sind die Gleichungen, die zur Berechnung der Koeffizienten für einen Hochpassfilter für den digitalen Filterblock AK4637 erforderlich sind. (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 jedoch je nach Anwendung variieren. Diese Werte würden dann in die Gleichungen zur Berechnung der Koeffizienten A und B eingefügt. Diese Werte werden dann während des Startvorgangs über I2C in die Codec-Register geschrieben. Der gleiche Prozess wird für die Tiefpassfilter und andere digitale Blockfunktionen verwendet, obwohl die Übertragungsfunktionen häufig unterschiedlich sind und die Verwendung eines eigenen Gleichungssystems erforderlich ist (siehe Datenblatt).

Tipps und Tricks zum Einstellen eines Audio-Codecs

Die in einem Audio-Codec enthaltenen digitalen Filterblöcke sind häufig sehr flexibel und leistungsstark. Selbst ein kostengünstiger Audio-Codec bietet Entwicklern die Tools, die zum Generieren von High-Fidelity-Audio erforderlich sind. Letztendlich ist der Audio-Codec jedoch nur ein Teil des Puzzles. Um einen Audio-Codec erfolgreich abzustimmen, sollten Entwickler einige „Tipps und Tricks“ beachten, z. B.:

  • Stellen Sie sicher, dass der Lautsprecher in einem für die Anwendung geeigneten Gehäuse montiert ist. Eine falsch gestaltete Lautsprecherbox kann ein ansonsten perfektes Wiedergabesystem leicht ruinieren.
  • Optimieren Sie die Codec-Audiofilterblöcke erst, wenn das System vollständig in seiner Produktionsabsichtskonfiguration zusammengebaut ist. Andernfalls können sich die Optimierungsparameter ändern.
  • Wählen Sie den Frequenzbereich basierend auf dem wiedergegebenen Audio aus. Beispielsweise sind die Frequenzeinstellungen für Musik von einer Gitarre, einem Klavier oder einer sprechenden Person unterschiedlich.
  • Verwenden Sie den digitalen Balance-Block, um den Frequenzgang des Lautsprechers zu kompensieren. Einige Frequenzen klingen natürlich lauter und klarer und müssen möglicherweise gedämpft werden, während andere möglicherweise verstärkt werden müssen.
  • Verwenden Sie Testtöne, um den Frequenzgang des Systems zu bewerten. Eine einfache Internetsuche liefert MP3-Dateien für eine Vielzahl von Audiotönen, mit denen Sie den Frequenzgang des Audiowiedergabesystems und die Funktionsweise des digitalen Filterblocks verstehen können.
  • Speichern Sie die Konfigurationseinstellungen des Filterblocks in Flash oder EEPROM, damit sie während der Herstellung so eingestellt werden können, dass System-zu-System-Abweichungen berücksichtigt werden (falls dies von Belang ist).

Entwickler, die diese „Tipps und Tricks“ befolgen, werden feststellen, dass sie beim Versuch, ihr Audio-Wiedergabesystem zu optimieren, viel Zeit und Kummer sparen und sicherstellen, dass es mit den beabsichtigten Audioeigenschaften auf den Markt kommt.

Fazit

Das Hinzufügen eines Audio-Codecs zu einem eingebetteten System garantiert nicht, 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. Audio-Codecs verfügen jedoch über integrierte Funktionen für digitale Filterung und Balance. Wie gezeigt, können diese verwendet werden, um dem Lautsprecher nur die Frequenzen zuzuführen, für die er am besten geeignet ist. Durch sorgfältige Analyse und Anwendung der Filtereinstellungen können Entwickler das sauber klingende Audio erstellen, das Endbenutzer von ihren Geräten erwarten.