概要
情報技術の基礎として理解しておきたい通信・制御理論について、誤り検出、誤り訂正、A/D変換、標本化定理、制御システムを整理する。
通信や計測では、データが途中で壊れたり、アナログ信号をディジタル化するときに情報が失われたりする。
この分野では、誤りを見つける方法、訂正する方法、信号を扱う基本ルールを理解することが重要となる。
この記事で扱うこと
- パリティ、ハミング符号、CRC の役割の違い。
- 誤り検出と誤り訂正の違い。
- A/D変換における標本化、量子化、符号化の流れ。
- 標本化定理が必要になる理由。
- フィードバック制御とフィードフォワード制御の違い。
理解しておきたい要点
| 分野 | 整理する内容 |
|---|---|
| 誤り検出 | パリティやCRCが何を検出できるか。 |
| 誤り訂正 | ハミング符号で1ビット誤りを訂正する考え方。 |
| A/D変換 | 標本化、量子化、符号化の順序。 |
| 標本化定理 | 元信号の最大周波数と標本化周波数の関係。 |
| 制御方式 | フィードバック制御とフィードフォワード制御の特徴。 |
誤り検出と訂正
通信時の回線状況問題などで起こるデータ送信の誤り検出と誤り訂正にはいくつかの方法がある。
以下、誤り検出・訂正の代表的な手法。
- \(1\) ビット誤り検出
→ 奇数・偶数パリティ - \(1\) ビット誤り訂正 \(+\ 1\) ビット誤り検出
→ 垂直・水平パリティ - \(1\) ビット誤り訂正 \(+\ 2\) ビット誤り検出
→ ハミング符号 → ハミング符号 - \(n\) ビット誤り検出
→ CRC
奇数・偶数パリティ( \(1\) ビット誤り検出)
ある数値の合計が奇数か偶数かよって誤りを検出する技術。
データの最後にパリティビットを付加し、奇数 or 偶数で誤りを検出する。
-
奇数パリティ
ビットの合計が奇数となるようにパリティビットを付加する方法。- 例 : \(7\) ビットのデータ \(1110011\) に奇数パリティを付加する。
→ \(1\) の個数の合計が奇数となるようにパリティビット \(0\) を付加する。
→ \(11100110\)
- 例 : \(7\) ビットのデータ \(1110011\) に奇数パリティを付加する。
-
偶数パリティ
ビットの合計が偶数となるようにパリティビットを付加する方法。- 例 : \(7\) ビットのデータ \(1110011\) に偶数パリティを付加する。
→ \(1\) の個数の合計が偶数となるようにパリティビット \(1\) を付加する。
→ \(11100111\)
- 例 : \(7\) ビットのデータ \(1110011\) に偶数パリティを付加する。
垂直・水平パリティ( \(1\) ビット誤り訂正 \(+1\) ビット誤り検出)
-
垂直パリティ
データ送信単位で末尾に \(1\) ビットのパリティビットを付加する方法のこと。 -
水平パリティ
垂直パリティを付加した各データ(各行)を横断的(全ての各列)に対して \(1\) ビットのパリティビットを付加する方法のこと。垂直パリティと水平パリティの組合せにより、データ全体で誤りのある場所を特定でき、ビット反転によりエラーを修正できる。
ハミング符号( \(1\) ビット誤り訂正 \(+2\) ビット誤り検出)
-
ハミング符号
複数の冗長ビットを付加し、\(1\) ビットの誤りを検出・訂正する仕組みのこと。-
例 : \(4\) ビットのデータ \(X_1,\ X_2,\ X_3,\ X_4\) に冗長ビット \(P_3,\ P_2,\ P_1\) を付加したハミング符号 \(X_1,\ X_2,\ X_3\) \(,P_3,\ X_4,\ P_2,\ P_1\) を考える。
また、\(P_1,\ P_2,\ P_3\) は、以下(*1)~(*3)を満たす取り決めをする。(*1)\(\ X_1 \oplus X_3 \oplus X_4\) \(\oplus P_1\ =\ 0\)
(*2)\(\ X_1 \oplus X_2 \oplus X_4\) \(\oplus P_2\ =\ 0\)
(*3)\(\ X_1 \oplus X_2 \oplus X_3\) \(\oplus P_3\ =\ 0\)このとき、\(1\)ビットの誤りがあるハミング符号 \(1110011\) を訂正する。
→ \(1\) ビットの誤りがあるということは、(*1)~(*3)すべてに \(1\) ビットの誤りがある。
また、(*1)~(*3)すべてに存在するのは \(X_1\) のみであるため、訂正後のハミング符号は、\(X_1\) を反転した \(0110011\)となる。
-
CRC
-
CRC (Cyclic Redundancy Check)
連続する誤りを検出する仕組みで、送信データと公開されたある多項式の剰余を比較し、エラーチェックを行う仕組みのこと。 -
バースト誤り
ケーブル不良や混戦によって、連続した複数ビットに誤りが生じること。
この誤り検出には、CRCが用いられている。
(イーサネットのパケット通信でも、誤り検出にCRCが用いられている。)
A/D、D/A変換
-
A/D変換 (Analog/Digital)
音、画像などのアナログ信号をディジタル信号に変換すること。 -
D/A変換 (Digital/Analog)
ディジタル信号をアナログ信号に変換すること。 -
A/D変換の原理
A/D変換するには、以下3つの手順が必要。-
標本化(サンプリング)
→ アナログ信号を一定時間ごとに区切って読み込むこと。(サンプリング) -
量子化
→ 標本化されたアナログ値をディジタル値に変換すること。 -
符号化
→ 量子化されたディジタル値を \(2\) 進数で表現すること。 -
例 : サンプリング周波数が \(40\ kHz\)、量子化ビット数が \(16\) ビットでA/D変換した音声の \(1\) 秒間のデータ量を求める。
→ 「サンプリング周波数が \(40\ kHz\)」であることより、標本化すると \(1\) 秒間に \(40 \times 10^3\) 回のサンプリングとなる。
また、この \(1\) 回のサンプリング毎に「量子化ビット数が \(16\) ビット」のA/D変換となるので量子化と符号化により、「 \(1\) 秒間のデータ量」は、次の通り、\(\ 80\ \)[\(k\)バイト]となる。
\(16\) [ビット]\(\ \times\ 40\ \times\ 10^3\) [回/秒] \(\div\ 8\) [ビット/バイト] \(=\ 80\ \times\ 10^3\)バイト \(=\ 80\ \)[\(k\)バイト]
-
標本化定理
-
標本化定理
アナログ信号をディジタル信号に変換した場合
復元する際に必要な周波数は、元周波数の \(2\) 倍のサンプリング周波数が必要という定理。-
例 : \(0 ~ 20 kHz\) の帯域幅のオーディオ信号をディジタル信号に変換する際の最大サンプリング周期を求める。
→ サンプリング周波数は、標本化定理により
\(20 kHz \times 2\) \(= 40 kHz\)ここでサンプリング周期は、サンプリング周波数 \(Hz\) の逆数(秒)となるので
\(40 k^{-1} = 40000^{-1}\) \(= 0.000025\)(秒)\(= 25\)(マイクロ秒)となる。
-
制御システム
-
センサー
動きや温度を検知・計測するための仕組みのこと。 -
サーミスタ
温度を測定する温度センサーのこと。 -
ジャイロセンサー
物体の角度や角速度を測定するセンサーのこと。 -
距離画像センサー
対象までの距離を測定するセンサーのこと。
※ 家庭用ゲーム機などで使われており、反射する光の往復時間から距離を計測するTOF(Time of Flight)という技術が用いられている。 -
アクチュエータ
機械を物理的に正確に動かすために電気や油圧などのエネルギーを機械的な動きに変換する機構のこと。
違いを整理する
| 比較する項目 | 整理するポイント |
|---|---|
| 検出と訂正 | 検出は誤りを見つけること、訂正は誤ったビットを直すこと。 |
| 垂直パリティと水平パリティ | 行方向と列方向の両方を見ると誤り位置を特定しやすい。 |
| 標本化と量子化 | 標本化は時間方向の切り出し、量子化は値の段階化。 |
| CRCとハミング符号 | CRCは主に検出、ハミング符号は訂正まで扱う。 |
| 開ループと閉ループ | 出力結果を戻して制御するかどうかで見分ける。 |
実務とのつながり
-
誤り検出
ネットワーク通信やストレージでデータ破損を検知するために使われる。 -
A/D変換
音声、画像、センサー値をコンピュータで扱う基礎になる。 -
制御システム
空調、ロボット、組込み機器などの動作制御に関係する。
まとめ
- 通信では、誤りを検出する仕組みと訂正する仕組みを分けて理解する。
- A/D変換は、標本化、量子化、符号化の流れでアナログ信号をディジタル化する。
- 制御方式は、出力結果を利用するかどうかで特徴が変わる。
参考文献
- 瀬戸 美月(\(2020\))『徹底攻略 応用情報技術者教科書』株式会社インプレス