格雷碼
典型的二進(jìn)制格雷碼簡稱格雷碼,因1953年公開的弗蘭克·格雷專利“Pulse Code Communication”而得名,當(dāng)初是為了通信,現(xiàn)在則常用于模擬-數(shù)字轉(zhuǎn)換和位置-數(shù)字轉(zhuǎn)換中。法國電訊工程師波特在1880年曾用過的波特碼相當(dāng)于它的一種變形。1941年George Stibitz設(shè)計的一種8元二進(jìn)制機(jī)械計數(shù)器正好符合格雷碼計數(shù)器的計數(shù)規(guī)律。
格雷碼(Gray code)曾用過Grey Code、葛萊碼、葛蘭碼、格萊碼、戈萊碼、循環(huán)碼、二進(jìn)制反射碼、最小差錯碼等名字,它們有的是錯誤的,有的易與其它名稱混淆,建議不再使用它們。
格雷碼的編碼規(guī)則
格雷碼母線位置檢測單元包括地址發(fā)射單元、天線箱、地址檢測單元、格雷碼母線及安裝輔件等部分。
利用最簡單的單匝線圈的感應(yīng)原理,當(dāng)天線箱線圈中通進(jìn)交變電流時,在天線箱四周會產(chǎn)生交變磁場。格雷碼母線近似處在一個交變的、均勻分布的磁場中,每對格雷碼母線芯線會產(chǎn)生感應(yīng)電動勢。發(fā)射單元地址信號通過電磁耦合方式傳送到格雷碼母線的感應(yīng)環(huán)線上。
地址檢測單元對接收到的信號進(jìn)行相位比較。交叉線的信號相位與平行線的信號相位相同,地址為“0”;交叉線的信號相位與平行線的信號相位相反,地址為“1”,這樣感應(yīng)的地址信息是格雷碼排列,永不重復(fù),由此確定移動站在格雷碼母線長度方向上的位置。
格雷碼有的規(guī)律
在數(shù)字系統(tǒng)中只能識別0和1,各種數(shù)據(jù)要轉(zhuǎn)換為二進(jìn)制代碼才能進(jìn)行處理,格雷碼是一種無權(quán)碼,采用絕對編碼方式,典型格雷碼是一種具有反射特性和循環(huán)特性的單步自補(bǔ)碼,它的循環(huán)、單步特性消除了隨機(jī)取數(shù)時出現(xiàn)重大誤差的可能,它的反射、自補(bǔ)特性使得求反非常方便。格雷碼屬于可靠性編碼,是一種錯誤最小化的編碼方式,因為,自然二進(jìn)制碼可以直接由數(shù)模轉(zhuǎn)換器轉(zhuǎn)換成模擬信號,但某些情況,例如從十進(jìn)制的3轉(zhuǎn)換成4時二進(jìn)制碼的每一位都要變,使數(shù)字電路產(chǎn)生很大的尖峰電流脈沖。而格雷碼則沒有這一缺點,它是一種數(shù)字排序系統(tǒng),其中的所有相鄰整數(shù)在它們的數(shù)字表示中只有一個數(shù)字不同。它在任意兩個相鄰的數(shù)之間轉(zhuǎn)換時,只有一個數(shù)位發(fā)生變化。它大大地減少了由一個狀態(tài)到下一個狀態(tài)時邏輯的混淆。另外由于最大數(shù)與最小數(shù)之間也僅一個數(shù)不同,故通常又叫格雷反射碼或循環(huán)碼。下表為幾種自然二進(jìn)制碼與格雷碼的對照表:
┌────┬──────┬───┬────┬──────┬────┐
│十進(jìn)制數(shù)│自然二進(jìn)制數(shù)│格雷碼│十進(jìn)制數(shù)│自然二進(jìn)制數(shù)│ 格雷碼 │
├────┼──────┼───┼────┼──────┼────┤
│0 │0000 │0000 │8 │1000 │1100 │
├────┼──────┼───┼────┼──────┼────┤
│1 │0001 │0001 │9 │1001 │1101 │
├────┼──────┼───┼────┼──────┼────┤
│2 │0010 │0011 │10 │1010 │1111 │
├────┼──────┼───┼────┼──────┼────┤
│3 │0011 │0010 │11 │1011 │1110 │
├────┼──────┼───┼────┼──────┼────┤
│4 │0100 │0110 │12 │1100 │1010 │
├────┼──────┼───┼────┼──────┼────┤
│5 │0101 │0111 │13 │1101 │1011 │
├────┼──────┼───┼────┼──────┼────┤
│6 │0110 │0101 │14 │1110 │1001 │
├────┼──────┼───┼────┼──────┼────┤
│7 │0111 │0100 │15 │1111 │1000 │
└────┴──────┴───┴────┴──────┴────┘
一般的,普通二進(jìn)制碼與格雷碼可以按以下方法互相轉(zhuǎn)換:
二進(jìn)制碼-格雷碼(編碼):從最右邊一位起,依次將每一位與左邊一位異或(XOR)( ),作為對應(yīng)格雷碼該位的值,最左邊一位不變(相當(dāng)于左邊是0);
格雷碼-〉二進(jìn)制碼(解碼):從左邊第二位起,將每位與左邊一位解碼后的值異或,作為該位解碼后的值(最左邊一位依然不變)。
數(shù)學(xué)(計算機(jī))描述:
原碼:p[0~n];格雷碼:c[0~n](n∈N);編碼:c=G(p);解碼:p=F(c);書寫時從左向右標(biāo)號依次減小。
編碼:c=p XOR p[i+1](i∈N,0≤i≤n-1),c[n]=p[n];
解碼:p[n]=c[n],p=c XOR p[i+1](i∈N,0≤i≤n-1)。
Gay Code是由貝爾實驗室的Fank Gay在20世紀(jì)40年代提出的(是1880年由法國工程師Jean-Mauice-Emlle
Baudot發(fā)明的),用來在使用PCM(Pusle Code Modulation)方法傳送訊號時避免出錯,并于1953年3月17日取得美國專利。由定義可知,Gay Code的編碼方式不是唯一的,這里討論的是最常用的一種。
-
計數(shù)器
+關(guān)注
關(guān)注
32文章
2290瀏覽量
96221 -
編碼
+關(guān)注
關(guān)注
6文章
967瀏覽量
55617 -
格雷碼
+關(guān)注
關(guān)注
2文章
34瀏覽量
13382
發(fā)布評論請先 登錄
什么是格雷碼

常用編碼(BCD編碼、余3碼、格雷反射碼、奇偶校驗碼)
格雷碼簡介及格雷碼與二進(jìn)制的轉(zhuǎn)換程序
什么是BCD碼、8421碼、余三碼、格雷碼
格雷碼的規(guī)則和應(yīng)用問題?
格雷碼運(yùn)算研究
循環(huán)格雷碼VHDL源程序
格雷碼辨析

評論