アナログ信号をデジタル値に変換する処理
A/D変換(Analog to Digital conversion)とは、連続的に変化するアナログ信号を、コンピュータが扱えるとびとびの数値(デジタル値)に変換する処理のことです。マイクが拾った音声や、センサが測った温度・明るさ・圧力といった現実世界の量を、コンピュータに取り込む入口の役割を果たします。
身近な例で言うと、連続して流れる川の水量を、決まった時刻にバケツ何杯分かを数えて記録するのに似ています。本当は水は途切れなく流れていますが、「ある瞬間に何杯分」という数字の列に置き換えれば、後から表計算ソフトで集計できるようになります。これがアナログを数値に変えるということです。
上のツールで▶ボタンを押すと、なめらかな波(青)が標本点(オレンジ)→ 階段状の量子化(紫)→ ビット列(緑)へと段階的に変換されていく様子を確認できます。サンプリング点数と量子化ビット数のスライダーを動かして、忠実さがどう変わるか試してみてください。
A/D変換は、必ず「標本化 → 量子化 → 符号化」の 3 ステップの順で行われます。
・① 標本化(サンプリング):一定の時間間隔ごとに信号の値を測り取ること。時間軸を区切る作業です(横方向の離散化)
・② 量子化:取り出した値を、あらかじめ決めた段階(レベル)のどれかに丸めること。値の軸を区切る作業です(縦方向の離散化)
・③ 符号化:丸めた段階に 2 進数の番号を割り当てること。たとえば 8 段階なら 000〜111 の 3 ビットで表します
覚え方のコツは「標本化は横(時間)、量子化は縦(大きさ)を区切る」と方向で対比することです。両方を区切って初めて、波形がマス目(格子)の上の点に乗り、番号を振れる状態になります。
変換の「きめ細かさ」を決める 2 つの指標が分解能とサンプリングレートです。どちらも大きいほど元のアナログ信号に忠実になりますが、データ量も増えます。
分解能とは、量子化で 1 段階あたりが表す大きさのこと。量子化ビット数が大きいほど段階数が増え、1 段が細かく(=分解能が高く)なります。
分解能 = 入力範囲 ÷ 2^量子化ビット数
例: 入力範囲 0〜5V、量子化 3bit のとき
段階数 = 2^3 = 8 段階
分解能 = 5V ÷ 8 = 0.625 V
→ 0.625V より細かい違いは区別できない
一方サンプリングレート(サンプリング周波数)は、1 秒間に何回サンプリングするか(単位 Hz)。これが低すぎると元の波を取りこぼします。
・標本化定理(サンプリング定理):元の信号に含まれる最高周波数の 2 倍より高い周波数でサンプリングすれば、元の波を復元できる
・例: 人間に聞こえる音は最高約 20kHz なので、CD は余裕をもって 44.1kHz でサンプリングしている
・量子化ビット数を上げると分解能が上がり、サンプリングレートを上げると時間方向が細かくなる、と覚える