格雷碼,格雷碼是什么?
1、格雷碼是什么?
格雷碼,是計算機中的一種編碼。主要用于“計算機控制”方面。
格雷碼的特點是:
--任意兩個相鄰數字的碼組(包括首尾碼組),只有一位二進制不同。
因為它有這種特點,當數字遞增或遞減時,碼組的變化,每次就只有一位二進制有變化。
這就可以避免變化時間參差不齊而帶來的干擾。
格雷碼的缺點,就是不夠直觀,不能直接看出它所代表的數值。
其實,這也不算什么缺點,因為,格雷碼它本來就不是給人看的。
具有這種特點的碼組,有多種多樣。
下面列出幾種:
實際上,還可以列出很多。
其中,通過“異或”算出來的格雷碼,是最簡單的。
很多初學者,只是知道這種格雷碼。
其它格雷碼是怎么編的?
也不難,大家慢慢琢磨吧。
2、什么是“格雷碼”?
格雷碼就是一種可靠性編碼。在一組數的編碼中,若任意兩個相鄰的代碼只有一位二進制數不同,則稱這種編碼為格雷碼,另外由于最大數與最小數之間也僅一位數不同,即“首尾相連”,因此又稱循環碼。在數字系統中,常要求代碼按一定順序變化。
例如,按自然數遞增技術,若采用8421碼,則數0111變到1000時四位均要變化,而在實際電路中,4位的變化不可能絕對同時發生,則計數中可能出現短暫的其他代碼(1100、1111等)。在特定情況下可能導致電路狀態錯誤或輸入錯誤。使用格雷碼可以避免這種錯誤。
:
格雷碼發展歷史:
格雷碼(Gray Code)因Frank Gray 1947年申請、1953年獲得批準的專利“Pulse Code Communication”而得名,當初是為了通信,現在則常用于模擬-數字轉換中。法國工程師Jean-Maurice-Émlle Baudot在1880年曾用過的波特碼是典型格雷碼的一種變形。1941年George Stibitz設計過一種8元格雷碼計數器。
格雷碼的優點:
1、格雷碼是一種絕對編碼方式,典型格雷碼是一種具有反射特性和循環特性的單步自補碼,它的循環、單步特性消除了隨機取數時出現重大誤差的可能,它的反射、自補特性使得求反非常方便。
格雷碼屬于可靠性編碼,是一種錯誤最小化的編碼方式,因為,雖然自然二進制碼可以直接由數/模轉換器轉換成模擬信號,但在某些情況,例如從十進制的3轉換為4時二進制碼的每一位都要變,能使數字電路產生很大的尖峰電流脈沖。而格雷碼則沒有這一缺點,它在相鄰位間轉換時,只有一位產生變化。它大大地減少了由一個狀態到下一個狀態時邏輯的混淆。
由于這種編碼相鄰的兩個碼組之間只有一位不同,因而在用于風向的轉角位移量-數字量的轉換中,當風向的轉角位移量發生微小變化(而可能引起數字量發生變化時,格雷碼僅改變一位,這樣與其它編碼同時改變兩位或多位的情況相比更為可靠,即可減少出錯的可能性。
2、格雷碼是一種變權碼,每一位碼沒有固定的大小,很難直接進行比較大小和算術運算,也不能直接轉換成液位信號,要經過一次碼變換,變成自然二進制碼,再由上位機讀取。
解碼的方法是用‘0’和采集來的4位格雷碼的最高位(第4位)異或,結果保留到4位,再將異或的值和下一位(第3位)相異或,結果保留到3位,再將相異或的值和下一位(第2位)異或,結果保留到2位,依次異或,直到最低位,依次異或轉換后的值(二進制數)就是格雷碼轉換后自然碼的值.
:百度百科-格雷碼
3、什么是格雷碼?
8421 碼中的 3 ~ 12,即為 0~9 的余 3 碼:0011~1100。
8421 碼的 0 ~ 15:0000~1111,按照異或算法,
可以變換成格雷碼:0000~1000。
在格雷碼中,相鄰(包括首尾)兩個代碼之間只有一位不同。
格雷碼中的 3 ~ 12,即為 0~9 的余 3 循環碼:0010~1010。
余 3 碼循環碼,也是相鄰(包括首尾)兩個代碼之間只有一位不同。
它們的特點與關系,可以參考下圖:
4、格雷碼的特點是什么?為什么說它是可靠性代碼?
格雷碼(Gray code)是一種準權碼,設格雷碼最低位為n=1,則格雷碼的權的絕對值為(2^n)-1,其符號從左到右正負交替。典型格雷碼是一種具有反射特性和循環特性的單步自補碼,它的循環、單步特性消除了隨機取數時出現重大誤差的可能,它的反射、自補特性使得求反非常方便。格雷碼屬于可靠性編碼,是一種錯誤最小化的編碼方式。
1、格雷碼的特點是任意兩組相鄰之間只有一位不同,其余各位都相同,而且0和最大數(2的N次方減一)對應的兩組格雷碼之間也只有一位不同。
2、格雷碼是一種循環碼,它的特性使它在形成和傳輸過程中引起的誤差較小。如計數電路按格雷碼計數時,電路每次狀態更新只有一位代碼變化,從而減少了計數錯誤。
3、普通二進制碼與格雷碼相互轉換關系為:
(1)二進制碼轉換成格雷碼
從最右邊第一位開始,依次將每一位與左鄰一位異或(XOR),作為對應格雷碼該位的值,最左邊一位不變。
(2)格雷碼轉換成二進制碼
從左邊第二位起,將每位與左邊一位解碼后的值異或(XOR),作為該位解碼后的值(最左邊一位依然不變)。
請添加微信號咨詢:19071507959
最新更新
推薦閱讀
猜你喜歡
關注我們
