ワッツAD変換

微妙にかじり始めたけど真面目にΔΣ変調あたりで意味が分からなくなって脳が死んでいたのでまとめながら復習をします。

AD変換のADはそれぞれAnalog(アナログ、連続量)とDigital(デジタル、離散量)のことを指す。マイコン(PCも含む)に信号処理をさせるときにはアナログとデジタルの変換が必要になる。理由はデジタルICの論理レベル(TTLCMOS)とかを考えればわかるように、彼らがある閾値で入力電圧を切ってHighかLowかの二値で扱うからだ。0か1かしか扱えないと言われているのはそういう事情からきている。

さて、アナログ信号をデジタル信号に変換するには時間方向の離散化と量方向の離散化が必要になる。前者は標本化と呼ばれ、後者は量子化と呼ばれる。

標本化

標本化については標本化定理だとかエイリアシングだとかいう用語を聞いたことがある人もいるかもしれない。ある特定のサンプリング周波数でアナログ信号からデータを拾ってきて飛び飛びのデータ列を作るということだ。その時に気を付けなければいけないのが標本化定理とエイリアシングとなる。

ディラックデルタ関数とかフーリエ変換を導入するような証明は割愛するが、標本化された信号から元の信号に復元しようとするとき、変換したい信号の最高周波数の二倍以上のサンプリング周波数でサンプリングしなければならない。さもないと、逆変換後の信号にエイリアシングというサンプリング周波数の半分の周波数のところで折り返したような雑音が生じてしまうということを言ったのが標本化定理だ。

これを避けるには高いサンプリング周波数でサンプリングすればいいが、周波数を上げるごとに変換に時間がかかるようになりいずれ入力の変化にAD変換が追い付かなくなってくる。そこで実際のデータの間に0データを補間して疑似的にサンプリング周波数を上げるオーバーサンプリングという処理が考えられた。

他にもアンチエイリアシングフィルタとかフィルタの次数だとかいろいろなことを考えないといけないらしいけど以下省略。大体理解した。

量子化

なんなら学部のころに標本化についてはほんのちょっと一瞬だけ勉強してたからいいんだけど、こっちは全く勉強したことなくて初見だから簡単な説明を見ただけではマジでわけわからん。

順を追って見ていこう。

f:id:cookiebiscuit:20190516223604j:plain

分かりやすかったのでhttp://www.tij.co.jp/lsds/ti_ja/analog/glossary/dnl_inl.page から引用。

アナログの入力電圧は0Vから入力電圧の最大値Vref(今回は7Vとする)まである。この時、デジタル量(これは3bitだね)は000(0V)から111(7V)まで直線的に変化していってほしい。

この直線を理想直線というが当たり前のように理想通りにいくわけがない。実際にはグラフ中の青色の階段のようにアナログの値がデジタルの値に変換される。この階段の幅を1LSB(Least Significant Bit; 最下位ビット)といい、この幅だけアナログ量が増えればデジタル量が1増える。

この量子化の時に生じるアナログデータとデジタルデータの誤差を量子化誤差といって、ビット数を増やすごとに6[dB]ずつSN比(Signal to Noise Ratio)を増やせるらしい。なるほどね。

 

さてさて、こっからがよくわからない。まずΔΣ変調のノイズシェーピング。

ふつうアナログ信号とサンプリング信号には相関がないから、量子化雑音はフラット(0-サンプリング周波数までどこにも等しくノイズ成分あり)になる。この雑音を積分回路に通してAD変換して微分回路に通せば雑音が高周波数領域へ移動して、ローパスフィルタを通すと雑音を減らせるよ、あら不思議というのがノイズシェーピングだ。すごいね!

 

は?なんで積分回路を通してAD変換して微分回路を通したら雑音が高周波数領域に移動すんねん。行間が広すぎるんだよなぁ…。

順番に行こう、まず積分回路。例えば抵抗とコンデンサで作られるRC回路のCを出力とするとき。出力はRとXc(コンデンサインピーダンス)の分圧を考えれば簡単に計算できる。積分というくらいだから、例えば矩形波が入力されたら電圧が上昇して下降するまで一定の傾きを持って上昇する波形(矩形波と時間軸が囲む面積の時間変化)が出力されて、下降するときも同様に一定の傾きを持って下降する波形が出力される(矩形波から三角波が作れる)。伝達関数からGainを計算すると-20log10(1+jωCR)となって低周波の成分はほぼそのまま、高周波の成分は減衰することがわかる(LPFができる)。

そのあとAD変換をすることでフラットな量子化雑音が生じ、微分回路を通す。微分回路は例えばRC回路のRを出力とするとき。微分だから矩形波を入力すると電圧が上昇したときに急激に立ち上がり、そのあとはなだらかに下がっていく。電圧が下降したときは急激に下がり、なだらかに上がっていく。積分回路と同様にGainを計算すると20log10(jωCR)-20log10(1+jωCR)となって高周波の成分はほぼそのまま、低周波の成分は減衰するHPFができる。

そのあとローパスフィルタを通すと高周波成分のみが取り出され、量子化雑音の絶対量は減るということになる。なんとなくわかったかもしれない。

AD変換の方式にはいろいろなものがあるらしいけど今回は割愛。ひとまずAD変換器の能力に応じて変換できるアナログ信号の周波数には制限があるよってことだけ覚えておこう。