オーディオコーデックを使って組み込みシステムのオーディオ性能をより簡単に最適化する方法

著者 Jacob Beningo

DigiKeyの北米担当編集者の提供

多くの設計者は、高忠実度のオーディオを追加するために、マイクロコントローラベースの組み込みシステムの設計にオーディオコーデックを含めています。その場合、自身のアプリケーション向けにオーディオコーデックをチューニングする方法を見つけなければなりません。チューニングをしないと、良いコーデックやスピーカを使っていても、アプリケーションのサウンドがフラットなままだったり、品質が悪いままだったりすることがあります。問題は、スピーカごとに周波数特性が異なるため、再生する音声の種類や要求されるレスポンスを考慮しながら、スピーカの特性に合わせてコーデックをチューニングする必要があることです。

オーディオプレイバックシステムのチューニングに対する解決策は、ハードウェアフィルタリングを使用するのではなく、オーディオコーデック独自のデジタルフィルタリングブロックを活用することです。すべてのコーデックにこのブロックがあり、開発者がハイパス、ローパス、バンドパスフィルタを使って出力をフィルタリングできるようになっています。これにより、必要に応じてスピーカのレスポンスを丁寧にチューニングし、さらには調整まで行うことができます。

本記事では、AKM Semiconductor製のコーデックを例に、コーデックに含まれる内部のデジタルオーディオブロックについて解説します。また、開発者がシステムの音質を向上させながらオーディオプレイバック開発を加速させるのに役立つコーデックのチューニング方法についても、いくつかのヒントを紹介します。

スピーカの周波数応答特性の理解

組み込みオーディオフィードバックファイル用のオーディオコーデックとマイクロコントローラの選択と使用」という記事では、コーデックを選んでシステムに追加する際の基本を論じています。次のステップは、そのコーデックを使用して最高の音声出力を得ることです。

システムから出てくる音声がどのように聞こえるかについては、いくつかの異なる要因があります。それらの要因には、以下のようなものがあります。

  • スピーカのエンクロージャ
  • スピーカの取り付け方法
  • 再生されているオーディオ周波数
  • スピーカの周波数特性

開発者はこれらの要素を慎重に検討した後で、オーディオシステムのチューニングが最終製品段階になって初めて有用になることにすぐに気づくでしょう。確かに、システムはプリント回路基板(プリント基板)とハウジングの外にあるスピーカでチューニングすることができますが、スピーカが取り付けられてエンクロージャ内にある場合、同じチューニングパラメータを適用できることを期待すべきではありません。

メカニックチームがシステムのエンクロージャとマウントを適切に設計しているのであれば、開発者が注意深く見る必要がある主な特性はスピーカの周波数応答です。スピーカごとに特性や応答曲線が異なります。同じ品番のスピーカでも、周波数応答に若干のばらつきがあることが多いのですが、メーカーは通常、標準的な周波数応答曲線を提示します。例えば図1は、CUI DevicesGC0401K 8Ω、1ワットのスピーカの周波数応答曲線を示しています。GC0401Kの定格周波数は、390Hzから20kHzの間です。

CUI DevicesのGC0401K 8Ω、1Wスピーカのグラフ図1:CUI DevicesのGC0401K 8Ω、1Wスピーカの定格周波数は、390Hz~20kHzの間です。(画像提供:CUI Devices)

スピーカの定格は通常、応答曲線のうち応答が比較的フラットな領域です。図1をよく見ると、GC0401Kの周波数応答は約350Hzでフラットになり始め、少なくとも9kHzまでは比較的フラットなままであることがわかります。高域の周波数には多少の落ち込みがありますが、20kHzまでは安定しています。

異なるスピーカの周波数応答は、CUI DevicesのGF0668で見ることができます(図2)。少し大きめのスピーカで、3ワットの出力が可能です。定格周波数応答は240Hz~20kHzの間です。このスピーカはGC0401Kよりもわずかに低い周波数に対応しますが、指定された範囲内ではカーブが比較的フラットで、全体的にいくつかの山と谷があることに再度注意してください。

CUI DevicesのGF0668 8Ω、3Wスピーカの周波数応答グラフ(クリックして拡大)図2:CUI DevicesのGF0668 8Ω、3Wスピーカの周波数応答の定格範囲が240Hz~30kHzである理由を示しています。(画像提供:CUI Devices)

最後に注目すべきスピーカの応答として、Soberton Inc.SP-2804Yがあります(図3)。SP-2804Yは500mWのスピーカで、周波数応答範囲は600Hz~8kHzです。物理学の法則により、スピーカが小さいほど低い周波数に応答するのが難しくなります。つまり、開発者が低い周波数をフィルタリングせずに、その周波数でスピーカを駆動させようとすると、結果的にオーディオの音が荒く聞こえることや、クリアに聞こえるはずのトーンに欠陥が生じる可能性があるということです。

また、10kHz前後の周波数応答にも大きな低下があることにも注目してください。そのため、用途によっては20kHzまで使用できる可能性があるにもかかわらず、スピーカの定格は8kHzまでしかありません。

Soberton Inc.のSP-2804Y 8Ω、0.5Wスピーカの周波数応答グラフ(クリックして拡大)図3:Soberton Inc.のSP-2804Y 8Ω、0.5Wスピーカは600Hz~8kHzの周波数に対応していることが示されています。10kHz以降に低下がありますが、一部の用途では20kHzまで使用可能です。(画像提供:CUI Devices)

各スピーカの周波数応答を見ると、スピーカを駆動させてはいけない周波数があるため、何らかのフィルタリングやチューニングが必要であることが明らかです。例えば、これらのスピーカで4Hzの低音を出そうとすると、長続きする振動が発生し、そこに高い周波数が挿入されて音の歪みが大きくなることがあります。

オーディオデジタルフィルタブロックの分析

不要な周波数をチューニングして除去するためにこれまで使用されてきた方法の1つは、スピーカにつながるハードウェアフィルタを構築することです。たとえば、500Hzのハイパスフィルタは、500Hz以下の周波数がスピーカに到達するのを防ぐことができます。もう一方では、ローパスフィルタを使用して15kHz以上のオーディオトーンを除去することができます。個人的な経験から、高周波数で効率的な小型スピーカで女性の声が使用された場合、スピーカが高音のノイズを発生させる場合があることがわかっています。慎重に周波数を選択することで、これらの歪みを除去し、よりクリーンなサウンドのオーディオを実現することができます。

外付けのハードウェアフィルタでも対応できますが、コストがかかり場所も取ります。これらの理由から、オーディオコーデックに内蔵されているデジタルフィルタブロックを使ってオーディオをチューニングする方が実用的かつ効率的です。

たとえば、AKM SemiconductorのAK4637 24ビットオーディオコーデックのブロック図では、デジタルフィルタブロックが強調表示されています(図4)。

AKM Semiconductorのモノラルスピーカ出力付きAK4637オーディオコーデックの図(クリックして拡大)図4:AK4637は、オーディオのプレイバック/録音機能を備えたモノラルスピーカ出力のオーディオコーデックです。また、オーディオの忠実度を向上させるために、受信と送信のオーディオをフィルタリングするために使用できる内部オーディオブロックも含まれています。(画像提供:AKM Semiconductor)

この場合のデジタルフィルタブロックには、以下を含むさまざまなフィルタリング機能があります。

  • ハイパスフィルタ(HPF2)
  • ローパスフィルタ(LPF)
  • 4バンドイコライザ(4バンドEQ)
  • 自動レベル制御(ALC)
  • 1バンドイコライザ(1バンドEQ)

これらの機能をすべて有効にする必要はありません。開発者は必要とする機能を選択し、それらを介してブロック、ルートマイクまたはプレイバックオーディオをイネーブルおよびディスエーブルにすることができます。この時点での本当の問題は、どのようにオーディオコーデックを計算してプログラムするかということです。

デジタルフィルタのパラメータを計算してプログラムする方法

ほとんどのオーディオアプリケーションでは、低周波数を除去するためにハイパスフィルタを使用し、高周波数を除外するためにローパスフィルタを使用します。イコライザは、周波数応答曲線を滑らかにしたり、特定のトーンを強調したりするために使用できます。これらの設定をどのように正確に選択すべきかということは、この記事で取り扱う範囲を超えています。この記事ではAKMのAK4637を例にとり、これらのパラメータに関連付けられた値を計算してプログラムする方法について説明します。

まず、データシートを確認することをお勧めします。この場合、7ページと8ページには、コーデックのために極めて重要なレジスタマップが示されています。63個のレジスタがあることを考えると、最初に見た際に気後れするかもしれません。しかし、これらのレジスタの多くは、デジタルオーディオブロックを制御します。たとえば、レジスタ0x22~0x3Fはイコライザを制御します。レジスタ0x19~0x1Cはハイパスフィルタを制御し、0x1D~0x20はローパスフィルタを制御します。

開発者は通常、コーデックに入力する周波数を単に指定できません。その代わりに、フィルタ係数を計算するために使用されるフィルタ式があり、それをコーデックレジスタにプログラムして、所望の周波数でフィルタを作成します。たとえば、デジタルフィルタブロックを使用して600Hzのハイパスフィルタを作成するには、以下の式1を使用します。

ハイパスフィルタの係数計算に必要な方程式の画像図5:AK4637デジタルフィルタブロックのハイパスフィルタの係数を計算するために必要な式を示しています。(画像提供:AKM Semiconductor)

開発者は、希望するカットオフ周波数fcを特定しますが、この場合は600Hzです。標準的なオーディオサンプリング周波数fsは48kHzですが、用途によって異なります。これらの値は、係数AとBを計算するための式に入れられます。その後、これらの値は起動時にI2Cを介してコーデックレジスタに書き込まれます。ローパスフィルタやその他のデジタルブロックでも同じプロセスが使用されますが、独自の式を使用する必要があるため、転送機能が異なることが多くなります(データシートを参照)。

オーディオコーデックのチューニングに対するヒントとコツ

オーディオコーデックに含まれるデジタルフィルタブロックは、多くの場合、非常に柔軟で強力です。低価格のオーディオコーデックでも、開発者は高忠実度のオーディオを生成するために必要なツールが得られます。しかし結局のところ、オーディオコーデックは全体の一部にしか過ぎません。オーディオコーデックをうまくチューニングするには、開発者が留意すべき以下のようないくつかの「ヒントとコツ」があります。

  • スピーカが用途に適したエンクロージャにマウントされていることを確認してください。不適切に設計されたスピーカボックスは、それ以外が完璧なプレイバックシステムを簡単に台無しにしてしまいます。
  • システムが製造目的の構成で完全に組み立てられるまでは、コーデックオーディオフィルタブロックをチューニングしないでください。さもないと、チューニングパラメータが変わってしまう場合があります。
  • 再生するオーディオに応じて周波数範囲を選択してください。たとえば、ギター音楽、ピアノ音楽、会話に対する周波数設定はすべて異なります。
  • デジタルバランスブロックを使用して、スピーカの周波数特性を補正してください。ある周波数が自然と大きくクリアに聞こえるため減衰が必要な場合もあれば、増幅が必要な場合もあります。
  • テストトーンを使用して、システムの周波数応答を評価してください。簡単にインターネット検索をすれば、オーディオプレイバックシステムの周波数応答やデジタルフィルタブロックがどのように機能しているかを理解するのに役立つ、幅広いオーディオトーンのmp3ファイルが得られます。
  • フィルタブロックの構成設定をフラッシュまたはEEPROMに保存して、製造時にシステム間のばらつきを考慮して設定できるようにしてください(懸念される場合)。

これらの「ヒントとコツ」に従う開発者は、オーディオプレイバックシステムのチューニング時に時間と苦労の大部分を削減でき、確実に意図されたオーディオ特性を持つ製品を市場に供給できることが理解できるでしょう。

結論

組み込みシステムにオーディオコーデックを追加したからといって、エンドユーザーにとって良い音が出るとは限りません。すべてのオーディオプレイバックシステムは、慎重にチューニングする必要があります。外部フィルタを使ってチューニングすることも可能ですが、オーディオコーデックにはデジタルフィルタやバランス機能が内蔵されています。ここに示されているように、これらを使用して最適な周波数のみをスピーカに供給することができます。慎重に分析し、フィルタ設定を適用することで、開発者はエンドユーザーが自身のデバイスに期待するようなクリーンなサウンドのオーディオを作成することが可能になります。

DigiKey logo

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

著者について

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo氏は組み込みソフトウェアコンサルタントで、現在、製品の品質、コスト、市場投入までの時間を改善することで、ビジネスを劇的に変革するために数十か国以上のお客様と作業しています。同氏は、組み込みソフトウェア開発技術に関する200以上の記事を発表しており、引っ張りだこのスピーカーでありテクニカルトレーナです。ミシガン大学のエンジニアリングマスターを含む3つの学位を取得しています。気楽にjacob@beningo.comにメールするか、彼のウェブサイトwww.beningo.comから連絡してみてください。そして毎月のEmbedded Bytes Newsletterにサインアップしましょう。

出版者について

DigiKeyの北米担当編集者