A/D変換とサンプリング定理とは?一言でいうと
A/D変換(アナログ/デジタル変換)とは、センサが出す連続した電圧の変化を、マイコンやクラウドで扱える数値の列に変える処理です。サンプリング定理とは、その数値の列から元の信号を正しく復元するには、どれだけ細かい時間の間隔で読み取ればよいかを示す定理です。
定理の条件は「信号に含まれる最も高い周波数(帯域)の2倍より大きい周波数で標本化すること」です。この考え方はナイキストやシャノンらの研究に由来し、ナイキスト=シャノンの標本化定理とも呼ばれます。
IoTでは、温度のようにゆっくり変わる量から、機械の振動や音のように速く変わる量まで、センサの信号はほぼすべてA/D変換を通ってデータになります。センサ側の仕組みはセンサの原理とはで整理しています。
標本化・量子化・符号化はそれぞれ何をする?

- 1
アナログ信号
センサが出す、連続して変わる電圧
- 2
標本化
一定の時間の間隔で値を読む(標本化周波数)
- 3
量子化
読んだ値を決まった段階に丸める(ビット数)
- 4
符号化
段階の番号を2進数のデータにする
標本化は「時間の細かさ」、量子化は「値の細かさ」を決める。
| 段階 | すること | 決めるパラメータ | 起きる誤差・問題 |
|---|---|---|---|
| 標本化(サンプリング) | 時間を一定の間隔で区切り、その瞬間の値を読む | 標本化周波数(1秒間に読む回数) | 低すぎるとエイリアシングが起きる |
| 量子化 | 読んだ値を、決まった段階のどれかに丸める | ビット数(段階の数=2のビット数乗) | 理想的な最近傍への丸め・入力範囲内なら最大で1段の半分 |
| 符号化 | 段階の番号を2進数のデータにする | ビット数、データの形式 | ビット数×回数だけデータ量が増える |
身近な例として、Arduino の公式リファレンスでは、UNO R3 のアナログ入力は10ビットで、0〜5Vを0〜1,023の整数に変換し、1段の幅は約4.9mV(5V÷1,024)と説明されています。読み取り1回に約100マイクロ秒かかるため、最大で1秒間に約1万回が目安とされています。UNO R4 は最大14ビットまで上げられます(既定は互換性のため10ビット、2026年9月27日確認)。
A/D変換の方式にも違いがあります。マイコンに内蔵されることが多い逐次比較型、多くの比較器を並べて最も速く変換するフラッシュ型、何倍も速く読んでから平均化して高い分解能を得るΔΣ(デルタシグマ)型、ゆっくり変わる信号を精密に測る二重積分型などです。
エイリアシングはどう計算する?独自の数値で確かめる
ここからは当サイトの説明用の数値です。実在の製品の仕様ではありません。
例1:必要な標本化周波数。ポンプの振動を監視したい。調べたい振動の成分は最大400Hzまで。サンプリング定理の条件は「400Hzの2倍の800Hzより大きい」ことです。実際には、フィルタで高い成分を完全には落とせないので、条件より余裕を持った周波数を選ぶことが多くなります。
例2:化けて見える周波数。標本化周波数1,000Hzで、700Hzの振動を読んだとします。ナイキスト周波数は500Hzなので、700Hzは条件を満たしていません。このとき読み取った数値の列は、1,000−700=300Hzの振動と区別がつかなくなります。これがエイリアシング(折り返し)です。
例3:分解能。0〜3.3Vを12ビットで読むなら、1段の幅は3.3V÷4,096=約0.81mVです。同じ範囲を10ビットで読むと約3.2mVで、12ビットのほうが4倍細かく読めます。
例4:データ量。1チャンネルを1,000Hz・12ビットで読み続けると、1秒で12,000ビット=1,500バイト、1日(86,400秒)で約130MBになります。生の波形の継続送信が通信容量・送信制限・電池の条件に合わない場合には、デバイスやゲートウェイで特徴量(最大値や周波数の成分など)にまとめてから送る設計が考えられます。通信方式の比較はLPWAの比較へ。
ナイキスト周波数 = 標本化周波数 ÷ 2
- 1標本化周波数 1,000Hz のナイキスト周波数は 1,000 ÷ 2 = 500Hz
- 2読みたい振動は 700Hz で、500Hz を超えているので条件を満たさない
- 3化けて見える周波数は 1,000 − 700 = 300Hz
700Hz の振動が、300Hz の振動と区別がつかなくなる
標本化した後では見分けられないので、A/D変換の前にローパスフィルタで高い成分を落とす。
数値は当サイトの説明用で、実在の製品の仕様ではありません。
線は連続した波形、丸い点は 1,000Hz で読み取った値。縦方向は −1〜1 に正規化しています。
700Hz の波形
300Hz の波形
線の形が違っても、読み取った点だけでは見分けられません。
1,000Hzで標本化すると、この700Hzの例は300Hzと区別できなくなる。高い成分は標本化の前に除く。
本文の数値を使った、位相をそろえた余弦波の独自例です。実測データではありません。丸い点は1ms間隔、縦方向は正規化した振幅。点を線で結んで復元した図ではありません。
POINT
エイリアシングは、標本化した後の数値の列からは見分けられません。高い周波数の成分は、A/D変換の前にアナログのローパスフィルタ(アンチエイリアシングフィルタ)で落としておく必要があります。フィルタの種類はノイズとフィルタとはで解説しています。
IoT中級ではどこで問われる?
IoTシステム技術検定 中級の公式ページに示された出題カテゴリのうち、「センサ/アクチュエータ技術と通信方式(デバイス、ネットワーク、LPWA、プロトコル)」25〜30% に当たります(2026年9月27日確認)。この中でA/D変換が何問出るかは公表されていません。
公式テキスト『IoT技術テキスト 第4版』では、第5章「IoTデバイス」に当たる範囲です。章とカテゴリの対応は当サイトの推定で、使っているのは目次の章名だけです。
4択の形としては、当サイトの作問の観点で次のようなものが考えられます(出題の傾向や頻度を示すものではありません)。
- 標本化・量子化・符号化の説明の組合せを選ぶ
- 信号の最高周波数から、必要な標本化周波数の条件を選ぶ
- ビット数と入力範囲から、段階の数や1段の幅を計算する
- エイリアシングを防ぐ方法として適切なものを選ぶ
試験の形式はIoTシステム技術検定 中級とはへ。合格基準は公式に非公開です。
12ビットの分解能と、16ビットで保存するデータ量は別
1,000回/秒で12ビットの値を記録する例の1,500バイト/秒は、値を隙間なく12ビットずつ詰めるという前提です。実装が1標本を16ビット(2バイト)の枠に保存すれば、2,000バイト/秒になります。ADCが12ビットだから保存ファイルも必ず12ビット刻み、とは限りません。
1チャンネルを24時間、欠測・圧縮なしで記録する独自例を比べます。ここでは1MB=1,000,000バイトとし、時刻・ヘッダー・通信再送などを含めません。
| 記録形式 | 1秒の値データ | 24時間の値データ |
|---|---|---|
| 12ビットを詰める | 1,000×12÷8=1,500バイト | 129,600,000バイト=129.6MB |
| 16ビット枠に1標本 | 1,000×2=2,000バイト | 172,800,000バイト=172.8MB |
| 差 | 500バイト/秒 | 43.2MB/日(約33.3%増) |
複数チャンネルならチャンネル数を掛け、時刻などの付加情報、圧縮、送信間隔も別に見積もります。LPWAで送れるかは、方式・契約・実効速度・送信制限・電池の条件との比較で判断します。12kbit/秒という値だけで、すべてのLPWAで生波形が送れないとは決められません。
分解能と精度の違いはセンサの種類と選定へ。丸めによる量子化誤差を最大半ステップと扱うのは、理想的な最近傍への丸めと入力範囲内を仮定した場合です。飽和、雑音、センサ自体の誤差まで半ステップに収まるという保証ではありません。
取り違えやすい点は?
| つまずき | 正しい整理 | 見分け方 |
|---|---|---|
| ちょうど2倍で標本化すれば十分だと思う | 条件は「2倍より大きい」。ちょうど2倍では復元できない場合がある | 「以上」か「より大きい」か |
| ビット数が1増えると段階が1つ増えると思う | 段階の数は2倍になる(10ビット1,024→11ビット2,048) | 2のべき乗で数える |
| 標本化周波数を上げれば1段の幅も細かくなると思う | 1段の幅は主にビット数と入力範囲で決まる(平均化で実効の分解能を上げる方式は別) | 時間の細かさか、値の細かさか |
| エイリアシングは後からデジタル処理で消せると思う | 標本化した後は区別できない。A/D変換の前にローパスフィルタで落とす | フィルタの位置(前か後か) |
| 分解能が細かければ正しい値が出ると思う | センサの誤差や雑音があれば、細かく読んでも正しいとは限らない | 「細かさ」か「真の値への近さ」か |
確認問題1
必要な標本化周波数の条件は?
最も高い周波数の成分が2kHzの信号を、エイリアシングを起こさずにA/D変換したい。サンプリング定理から求められる、標本化周波数の理論上の条件として最も適切なものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:3。サンプリング定理の条件は、最高周波数2kHzの2倍の4kHzより大きい周波数で標本化することです。
1 は最高周波数の半分で、条件を満たしません。2 は最高周波数と同じ値で、2倍になっていません。4 は条件を満たす値の一つですが、理論上の条件(最低限)としては大きすぎます。
確認問題2
化けて見える周波数はいくつ?
標本化周波数1,000Hzで、900Hzの正弦波を標本化した。得られた数値の列は、何Hzの正弦波と区別がつかなくなるか。最も適切なものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:1。ナイキスト周波数は500Hzで、900Hzはそれを超えています。このとき 1,000−900=100Hz の成分として現れます(エイリアシング)。
2 はナイキスト周波数500Hzと900Hzの差をとった値で、折り返しの計算ではありません。3 は条件を満たしていないので、900Hzのままとしては読めません。4 は標本化周波数と足した値で、計算の向きが逆です。
確認問題3
ビット数を増やすと何が変わる?
入力範囲0〜5VのA/D変換を、10ビットから12ビットに変えた。段階の数と1段の幅の変化として、最も適切なものはどれか。
選択肢を準備しています。「正解と解説を見る」は先に開けます。
正解と解説を見る
正解:2。10ビットは1,024段階、12ビットは4,096段階で4倍になります。1段の幅は5V÷4,096=約1.2mVに小さくなります。
1 はビット数の差をそのまま段階の数の差と考えた誤りです。3 はビット数の比(12÷10)で計算した誤りです。4 は段階の数は正しいものの、1段の幅も4倍になると取り違えています。
確認問題のあとは何をすればいい?
計算を間違えた場合は「時間の細かさ(標本化周波数)」と「値の細かさ(ビット数)」のどちらの話かを最初に書き出してから解き直してください。2つを混ぜると、選択肢のもっともらしい数字に引っかかりやすくなります。
他のカテゴリと混ぜて本番と同じ4択で確かめるなら、登録不要のIoT中級の無料お試し20問で全問の解説まで確認できます。実際のボードでアナログ入力を試す話はArduinoとRaspberry Piの違いへ。