
【電】 Gray code
格裡電碼(Gray Code)詳解
一、定義與命名
格裡電碼(Gray Code),又稱格雷碼或循環碼,是一種二進制編碼系統。其核心特點是相鄰的兩個碼字僅有一位二進制數不同。這種編碼由貝爾實驗室的弗蘭克·格雷(Frank Gray)于1947年發明,主要用于減少數字信號傳輸中的錯誤率。英文術語為 "Gray Code" 或 "Reflected Binary Code"(反射二進制碼)。
二、核心特性
單步變化性
相鄰數值的編碼僅有一位比特差異(例如:十進制數 1 的格雷碼為 001
,2 的格雷碼為 011
),而标準二進制碼中相鄰數可能需翻轉多位(如二進制 001
→010
需改變兩位)。這一特性顯著降低了電路切換時的瞬時錯誤風險。
反射與循環結構
格雷碼的生成基于遞歸反射原理:n 位格雷碼的前半部分為 (n-1) 位格雷碼高位補 0
,後半部分為 (n-1) 位格雷碼的鏡像高位補 1
。例如 2 位格雷碼序列為 00→01→11→10
。
三、應用場景
位置傳感器與編碼器
旋轉編碼器(如工業機械臂、光學儀器)利用格雷碼将角度位置轉換為數字信號。因物理接觸抖動可能引發瞬時誤差,單比特變化特性可避免讀數大幅跳變。
異步電路與信號同步
在跨時鐘域數據傳輸中,格雷碼減少亞穩态概率。例如 FIFO(先進先出存儲器)的地址指針常采用格雷碼,确保指針同步時僅需比較單比特變化。
卡諾圖化簡與數字邏輯設計
格雷碼的相鄰性簡化了邏輯函數的卡諾圖填充,助力工程師快速優化組合電路。
四、與二進制碼的對比
特性 | 格裡電碼 | 标準二進制碼 |
---|---|---|
相鄰碼變化位數 | 恒為 1 位 | 可能為 1 位或多位 |
數值順序 | 非權重遞增 | 權重遞增 |
錯誤敏感度 | 低(抗瞬時幹擾) | 高 |
參考來源
“格裡電碼”是“格雷碼”(Gray code)的音譯,屬于一種二進制循環碼系統,在數字通信、電子工程等領域有重要應用。以下是詳細解釋:
定義與特點
格雷碼的特點是相鄰兩個數僅有一個二進制位不同。例如,十進制數3(二進制011)與4(二進制100)在常規二進制轉換時會發生3位變化,但格雷碼會調整為010→110,僅改變最高位,從而減少信號傳輸中的瞬時誤差。
核心用途
主要用于避免數字信號在切換過程中的“競争冒險”現象,常見于旋轉編碼器、錯誤校正系統等場景。例如,機械設備的角位置傳感器常采用格雷碼編碼盤。
與普通電碼的區别
普通“電碼”通常指電報通信中代表文字或數字的符號(如中文電報用4位數字表示一個漢字),而格裡電碼是特定技術場景下的編碼規則,屬于電碼的細分應用類型。
數學表達示例
十進制數轉換為格雷碼的公式為:
$$
G = n oplus (n gg 1)
$$
其中,$n$是原二進制數,$gg$表示右移一位,$oplus$為異或運算。
阿米巴膿腫巴西樹膠存在分析帶括號的道德敗壞的等鍊結構定點算術碲酸鉀反電動勢功率位準指示器黑頭組織滴蟲揮發順序甲苯磺丁脲郊遊角狀物李司氏防腐劑離心澄清器麻風菌素試驗馬具煤氣表苗勒氏反應米氏艾美球蟲莫希爾氏引流管普通物理日光榴石事先查看數字線性代數數字字母的蘇奇倫外彙限額