ディジタル信号処理には、映像、音声、制御系信号処理などさまざまな応用分野がありますが、 ここでは音響系の信号処理技術をご紹介して行きます
音声、オーディオ信号のデジタル信号処理は、アナログの電気信号をデジタル信号に変換し(A/D変換)、信号処理の結果をアナログ信号に変換(D/A変換)する上の図のようなモデルがシンプルな構成ですが、 記録メディアや信号伝送経路(電波、ネットワーク、デジタル接続)、再生装置によってアナログ信号や信号処理の介在する状況は異りなます。 出力もデジタルスピーカーになる場合など、必ずしもD/A変換器を介するとは限りません。
信号処理は、ハードウェアで実現される場合もソフトウェアで実現される場合もありますが、 音声信号の場合は、目的に応じたDSPやCPUによってソフトウェア処理されるケースが一般的です。
パソコンのオーディオ信号はCPUで処理されますが(多くの場合)、 オーディオ機器や組込みシステムでは信号処理に特化したDSPやカスタムIPが用いられます。
CPU、DSP何れの場合であっても、信号処理部分のソフトウェアは、算術アルゴリズムを実行するためのプログラムになり、 一般的なアプリケーションソフトや制御用のコードとは、やや趣が異なります。
A/D変換器によってマイクロフォンなどのアナログ入力信号の時間方向を離散化することをサンプリング(標本化)、 振幅方向を離散化することを量子化と呼び、音声に限らず、映像分野やセンサー入力信号を処理する場合であっても、デジタルに変換する機構が必要となります (センサーなどはI/Fによりますが……)。
デジタル化された音声信号は、リアルタイム処理される場合と記録されたデータを処理する場合に大きく分けられます。 さらに、リアルタイム処理系の中でも、PCのようにバッファリングされたストリーミングデータを処理するものと、DSPのようにサンプル毎逐次処理されるものがあります。
非リアルタイムな信号処理は、分析や高度な符号化、復号化(エンコード、デコード)など、同一のテストデータを繰り返し利用したり、処理時間がかかる場合などで行われます。 計算能力とOSを利用することによるメリットが大きいためパソコンで実行されるような信号処理です。
昨今のパソコンのDirectSoundなどのマルチメディア能力とSIMD命令を用いればリアルタイム処理も可能になっています。 パソコンのリアルタイム処理の場合には、ある程度の長さのバッファをバケツリレーのようにデータを受け渡す方式をアプリケーションレベルで行っています。 そのため、極限られたドライバ部分などを除くとパソコンのリアルタイム音声処理はバッファサイズ分のレイテンシ(遅延)を持ちます。 このレイテンシーが問題になる目的では、計算能力が十分であってもパソコンを利用したリアルタイム処理が適さない場合があります。
さらに、パソコンの場合にはマルチタスク切替のサイクルと別アプリケーションなどの処理時間が発生するため、数百msのバッファとレイテンシーが許容できない目的では、 特別な手段を講じない限り、動作状況を限定しないと安定的に動作させることは困難です。
パソコンでは、豊富なメモリと計算資源、二次記憶やディスプレイをはじめ周辺機器の能力を生かした目的に適しています。
組込みシステムの音声アプリケーションでは、DSPによるリアルタイム処理が多くを占めています。 DSPのリアルタイム処理の特徴は、基本的に毎サンプルごとに処理をするデータスループットのI/F能力と信号処理に適したアーキテクチャーによるものです。
音声信号のアルゴリズムは、サンプリング周期ごとに完結する演算が多いですが、複数のサンプリングデータの演算によって結果を求める場合もあります。
複数サンプル時間を要するアルゴリズムにはエンコーダーやFFTのようにフレームサイズ単位で演算を進めるタイプが代表的なものになります。 演算結果によって演算方法を制御的に切り替えるような手法を用いる場合などは、CPUのソフトウェアで行われているようにアイドリング処理を併用している場合があります。
DSPで高速に信号処理を行っても、フレームサイズごとに演算を実行するアルゴリズムでは、バッファ方式と同様のレイテンシ問題を持つことになります。
DSPのソフトウェアは、サンプリング周期ごとに繰り返し信号処理の演算が連続して実行されます。 1サンプリング周期内に演算を完了させる必要があるためアルゴリズムや演算速度が要求されます。
さらに、聴覚はひずみや雑音に対する感度が視覚に比較すると高いため、音声品質を確保するためには演算精度が、 また、フィードバックを持つ処理も多いため、誤差が累積しないことや安定的であることなども重要な要素になります。
音声の信号処理に用いられるサンプリング周波数は、3つ位のグループに大別できます。
低いサンプリング周波数の用途は、携帯電話などの通信規格の音声帯域が低い分野や、音声認識など、人の話声の内容を重視し、音響的品質のプライオリティが低い分野です。 アナログ信号の音声周波数帯域が狭いため、必要なサンプリング周波数も低めになり、16KHz〜8KHz程度が用いられます。
Hi-Fiオーディオの用途では、音声通話などとは異なり、可聴帯域(以上)の音を高品位で処理するため、サンプリング周波数が高くなっています。
電子楽器やオーディオでは、目的に応じて、32KHz〜96KHz程度のサンプリング周波数が用いられます(A/D、D/Aの周波数ではなく、データ単位の周波数です)。 ご存知のように、CDは44.1Khz、DATが48KHz、DVD-Audioは96KHz・192KHzです。現在のところ、民生で96KHz程度が上限で落ち着きそうな分野です。
音声で最も高レートなサンプリング周波数が用いられるのは測定器でしょう。 測定器は常に最も高レートな存在になりますが、オーディオや携帯電話などの民生機器などとは、そもそも分野が異なるといえます。
サンプリング周波数が高くなると処理時間が短くなるため、信号処理を行うDSPの演算能力とデータスループットの要求も高くなります。 コストや消費電力などが比例するため、音質とプロセッサに求める処理内容によってバランスが取られます。
複雑で演算量の多いアルゴリズムを適用することで、現在製品に実現されている機能の性能が改善される技術も存在しますが、 リアルタイム処理を必要とする音声の信号処理ではコストパフォーマンス的に難しいなどの理由によって、まだ、製品レベルで実現されていない場合もあります。
通信やケーブルによる接続を介してデジタル信号を処理する場合、機器同士のサンプリングクロックが異なるため、 クロック同期を行うか伝送されたデジタル信号を再度サンプリング処理を行って、クロックの違いを吸収する必要が生じます。
現在、一般化しているデジタルの音声のようにサンプリング周波数が高くなると、伝送経路を経由したクロック同期は困難です。 そのため、AES/EBU、S/PDIFなどのデジタル信号接続では非同期の通信方法になっています。
非同期通信で伝送したデジタル信号を再サンプリングを行うには、既にデジタル化された信号から非同期に別のクロックのデータにするため、オーバーサンプリングが用いられます。
オーバーサンプリングは、必要なサンプリング周波数の数倍高い周波数でサンプリングすることでアナログ信号のサンプリング回路のロー・パス・フィルターの特性を簡易にすることができる技術です。 デジタル信号を再サンプリングする場合にも、オーバーサンプリングが利用されます。
アナログ信号をサンプリングする際、サンプリング周波数の半分にあたる Nyquist 周波数以上の周波数成分をロー・パス・フィルター (アンチ・エイリアシング・フィルター) でカットしなければなりません。
しかし急峻なアナログ・ロー・パス・フィルターは作り難く高価になるうえ、位相歪みが大きい問題があります。 オーバーサンプリングによりサンプリング周波数を何倍かに高くしてやると、急峻な特性が要らず、簡単なフィルターで済ませることができ、位相特性も改善できます。