dsPICを使ってアナログ信号のディジタル処理をするためには、まず入力となる
アナログ信号をサンプリングして入力する必要があります。
さらにDSPからアナログ信号を出力する場合にもサンプリングで行われます。
ここではdsPICで、入力あるいは出力する場合の課題について説明しています。
【高速A/D変換】
アナログ信号をディジタル処理する場合には、通常「A/D変換器」でアナログデータを
ディジタルデータに変換します。しかしA/D変換器は、変換に時間を要します。
このA/D変換をしている間に入力が変化してしまうと正確なアナログ値を取り込め
ませんから、通常は、A/D変換器の前に「サンプルホールドアンプ」が付いていて
下図のように入力のアナログ信号をいったんコンデンサに蓄積して、変換中は入力
信号が変化しないようにしてA/D変換をします。
これは結局入力信号をRCのローパスフィルタを通したのと同じことになってしまいます。
この方式でA/D変換すると、ホールドキャパシタに充電する時間(これをアパーチャ
タイムという)と、変換する時間の合計時間がA/D変換時間ということになります。
従って、アナログ信号を瞬時で連続的に取り込むことは不可能で、一定時間間隔
でしか取り込めないことになります。
この一定間隔でアナログ信号を取り込むことを「サンプリング」するといいます。
ここでサンプリング方式でアナログ信号を取り込むと問題になることがあります。
非常に高い周波数で変化するアナログ信号をサンプリング方式で取り込むとき、
単純に考えても、サンプリング周期以上に早い変化をする信号は、もとの波形の
まま取り込むことは不可能です。
では、元の波形を再現できるサンプリング周期はどれくらいの早さが必要なので
しょうか。
これについては、「シャノンのサンプリング定理」で理論的に説明されていて、
2倍の早さでサンプリングする必要があることになっています。
従って、できるだけ高い周波数のアナログ信号を扱うためには、その2倍以上の
早さでサンプリングができる高速A/D変換器が必要ということになります。
これがDSPを使うときには、一般的に高速A/D変換器が必要といわれる理由です。
【エリアシング】
サンプリング方式でアナログデータを入力する場合、さらに別の問題があります。
もしA/D変換器の能力が高く、必要な周波数より高いサンプリングが可能なものだ
とすると、変換による高調波の影響が現れてきます。
これはなぜかというと、Fsの周期でサンプリングするということは、ちょうど下図の
ようなFsの周波数の信号で変調するのと同じことになるためで、変調するために
(n×Fs±元の信号)という変調波が現れることになってしまうわけです。
この変調波で考えると、サンプリング周波数がFsとしたとき、入力信号がFs/2以下
の成分しか無いときには、下図のような高調波が現れますが、通常はこれらの
高調波は後段のローパスフィルタで取り除くことができるので大きな問題には
なりません。
しかし、もし入力信号がFs/2より高い周波数成分まで含んでいるとすると、その高調波は
下図のようになって折り返しの側波帯の部分が元の信号に重なって現れてしまうことに
なります。このように重なってしまう現象を「エリアシング」といいます。
この重なりによる現象は、音声ではビート音、画像ではモアレとなって現れます。
この元の波形と同じ周波数帯に現れる高調波は取り除くことは不可能ですから、入力の
信号にFs/2以上の周波数を含まないようにする必要があります。
従って、このエリアシングを無くすためには、入力のアナログ信号にFs/2以上の
周波数成分を含まないようにすればよいわけですから、結局ローパスフィルタを追加する
ことになります。このようなフィルタを「アンチエリアシングフィルタ」と呼びます。
しかしこのフィルタを厳密にかけようとすることは、せっかくディジタルフィルタリングを使う
ために、わざわざアナログフィルタを追加することになってしまいますから、本末転倒に
なってしまいます。
このため、通常は簡単なローパスフィルタだけで対策し、できるだけ高い周波数で
サンプリングするようにします。この時の別の課題は、dsPIC内部の処理速度になります。
つまりサンプリング速度に追従できる速さで演算処理ができなければ、いくら高速で
サンプリングしても無意味になってしまいます。
結局、これらの関係から、処理可能な最高周波数が決まってくることになります。
【0次ホールド効果】
次に、DSPで処理したアナログ信号を出力する場合のことを考えてみます。
DSPの出力はディジタル信号ですから、出力をアナログ信号として得るためには
D/A変換が必要になります。
このD/A変換は原理的に、下図のような階段状の出力となります。これを
「0次ホールド」と呼びますが、有限の間隔Fsで出力されるわけですから、
これに伴う周波数特性をもつことになってしまいまいます。
Fsより早い変化には追従できないということから感覚的にローパスフィルタの
特性を持つことがわかります。
このD/A変換の0次ホールドの周波数特性は下図のようになり、ローパスフィルタ
と同じ特性を持ちます。
従って、入力の信号の特性をできるだけ損なわないように出力するためには、
このD/A変換の速度もできるだけ高速でできるようにする必要があることに
なります。
【オーバーサンプリング】
D/A変換の出力特性がサンプリング周期のローパスフィルタになることから、
出力特性を良くするためには、入力信号のサンプリング周期より、早い周期で
D/A変換のサンプリングを行えば、元の波形をより正確に再現することが可能に
なることになります。
これを「オーバーサンプリング方式」とよび、入力信号の数倍の高いサンプリング
周波数で出力して、下図のようにD/A変換による影響が出ないようにすることが
可能になります。
特に最近のディジタルオーディオなどでは8倍とか16倍のオーバーサンプリングが
行われています。