目的
この記事では、応用情報技術者試験の出題分野である通信・計測・制御技術に関する理論に関する覚書きを列挙する。
誤り検出と訂正
通信時の回線状況問題などで起こるデータ送信の誤り検出と誤り訂正にはいくつかの方法がある。
以下、誤り検出・訂正の代表的な手法。
- \(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)という技術が用いられている。 -
アクチュエータ
機械を物理的に正確に動かすために電気や油圧などのエネルギーを機械的な動きに変換する機構のこと。
参考文献
- 瀬戸 美月(2020)『徹底攻略 応用情報技術者教科書』株式会社インプレス