> グレイ | 反射 | 2進 <
// グレイコード - 連続する値の間で1ビットだけが変化する2進数体系
0 文字
0 文字
[SINGLE-BIT]
ユニットディスタンス
連続する値の間で変化するのは常に1ビットだけです。
[ERROR-REDUCTION]
エラー低減
アナログ-デジタル変換時の誤りを減らします。
[CYCLIC]
循環特性
最初と最後の値も1ビットだけが異なるように設計されています。
>> 技術情報
グレイコードの仕組み:
グレイコード(反射2進コード)は、連続する2つの値が常に1ビットだけ異なるように構成された2進数体系です。各ビットを直前のビットとXORすることで生成されます。この特性により、位置エンコーダやデジタルシステムでの遷移エラーを抑える用途に適しています。
グレイコードの例:
Decimal | Binary | Gray Code 0 | 0000 | 0000 1 | 0001 | 0001 2 | 0010 | 0011 3 | 0011 | 0010 4 | 0100 | 0110 5 | 0101 | 0111 6 | 0110 | 0101 7 | 0111 | 0100 注: 連続するグレイコード間では常に1ビットだけが変化します
グレイコードを使う理由:
- ▸ロータリーエンコーダ
- ▸カルノー図 (Karnaugh map)
- ▸エラー訂正
- ▸デジタル通信
- ▸位置センサー
>> よくある質問
グレイコードとは何ですか?
グレイコードは、反射2進コードとも呼ばれる符号で、連続する値が常に1ビットだけ異なるように設計された2進コードです。遷移の途中で誤った値を読み取ってしまう問題を防ぐため、デジタルシステムで広く利用されています。
バイナリからグレイコードへはどう変換しますか?
バイナリからグレイコードへの変換手順: 1) 最上位ビット (MSB) はそのままにする、2) それ以降の各ビットについて、現在のビットと直前のビットのXORをとる。式: G[i] = B[i] XOR B[i-1]。例えば、バイナリ 1011 はグレイコード 1110 になります。
なぜエンコーダにグレイコードが適しているのですか?
通常の2進数では、7 (0111) から 8 (1000) へのように複数ビットが同時に変化することがあり、その途中の不正な状態が読み取られる可能性があります。グレイコードなら1ステップごとに1ビットしか変化しないため、ロータリーエンコーダなどでの読み取りが安定します。
グレイコードはどこで使われていますか?
グレイコードはロータリーエンコーダ、カルノー図による論理簡略化、デジタル通信におけるエラー訂正、遺伝的アルゴリズム、A/Dコンバータなど、多くの分野で利用されています。