実際にDSPプログラムを触ってもらう前に、ここではまず、アナログ信号と ディジタル信号の関係を簡単に復習します。
図に、DSPボードにおける信号の流れを示します。
アナログ信号波形をディジタル化するには、まず時間的に一定の間隔 Tsで信号の大きさを標本化(サンプリング)して、 離散的な信号に変換します。どのぐらいの時間間隔でサンプリングすれば 元のアナログ波形の持つ性質を正確に再現できるかの基準を理論的に示したのが 次の「サンプリングの定理」です。
サンプリング間隔の逆数をとったもの1/Tsをサンプリング 周波数fsと呼び、fsを用いて上式を 書き換えると
となります。
すなわち、任意のアナログ信号をディジタル化するためには、そこに含まれる 最大周波数の2倍以上の周波数でサンプリングしなければなりません。 サンプリングの定理が満たされないと、離散化された波形がどのようになるかを、 正弦波を用いて調べてみましょう。
まず、正弦波の1周期[T]に対して、サンプリング間隔Tsを 十分細かくすれば、元の正弦波をほぼ再現することができます。 図には1周期に約10点サンプリングした場合を示します。
次に、1周期に2点程度まで減らすとどうなるでしょうか。この場合、 図のように正弦波の山と谷を拾うことができれば、なんとか元の正弦波の 特徴をつかむことができます。
更にそれ以下にしてしまうと図のようになります。もはや正弦波の山と谷を 全部拾うことができなくなり、離散化された信号は、元の正弦波よりも低い 周波数を持つように見えてしまいます。
サンプリングの定理が満たされない場合、元々のアナログ信号が持つ周波数の 情報が正しくディジタル化されなくなります。このような現象を 「エイリアシング」と呼びます。 エイリアシングの発生を防ぐには、元々の波形が含む最大周波数の2倍以上の 周波数でサンプリングしなければなりませんが、逆にサンプリング周波数が決まって いる場合は、元々の波の最大周波数をサンプリングの定理が満たされるように 制限しなければなりません。そのために、A/D変換の前には通常、サンプリング 周波数の1/2以下の低周波のみを通す低域通過型のフィルタが置かれます。これを、 エイリアシングを防ぐという意味で、アンチエイリアシングフィルタと呼びます。
以上のようにして一定のサンプリング周期毎に離散化されたそれぞれの 「波形の大きさ」は、次にディジタル的な飛び飛びの数値に変換されます。 これを量子化と呼びます。波の大きさをどれだけ細かいレベル幅で量子化できるかは、 A/D変換の際に使われるビット数で決まります。Nビットを用いる場合は、 量子化レベル幅は最大振幅(A/D変換の入力電圧範囲)を2N 分割したものになります。
そのため、ビット数が多いほど滑らかに波形を再現できます。例えば ±1[V]を8ビットで量子化するA/D変換器を用いると、図のように±1[V]が 28=256通りに分割され、ディジタル化されます。
それに対して、逆にビット数が小さいと量子化レベルが粗くなります。 例えば±1[V]を3ビットで量子化すると23=8通りのレベルしか 存在しなくなるため、図のように階段状の誤差が現れてきます。 このような、量子化による誤差のことを「量子化誤差」といいます。
ちなみに、本実習で用いるDSPボードには16ビットのA/D変換器が 2チャンネル(ステレオ)搭載されています。そのため、1チャンネルあたり 216=65536通りのレベルを再現することができます。 これは一般の音楽用CD等で使われているビット数と同じであり、通常の 音声や音楽をディジタル化するには十分なものとなっています。 また、サンプリング周波数は最大で48 kHzとなっており、理論的には半分の 24kHzまでが再現できますが、これは、通常人間の耳に聴こえる 周波数範囲(20 Hz〜20 kHz)を十分カバーしています(ちなみに、CDなどの 高音質ディジタルオーディオで使用されているサンプリング周波数は44.1 kHzです)。
D/A変換では、A/D変換とは逆に、ディジタル的な飛び飛びの数値が、 電圧値などの連続(アナログ)量へと復元されます。標本化および量子化により 時間的にもレベル的にも飛び飛びの値になっているディジタルデータを元にして、 まず階段上の電圧波形が出力されます。それを滑らかにするために、通常、 信号の最大周波数(サンプリング周波数の半分)以下の周波数成分のみを通す、 低域通過フィルタなどが用いられます。