格雷碼辨析
出處:s33 發(fā)布于:2011-11-21 11:41:50
摘要:討論了Gray Code 的由來,剖析了關(guān)于格雷碼的一些不合理說法,明確了其正宗的發(fā)明者應(yīng)該是弗蘭克·格雷,正確的英文名稱是Gray Code,規(guī)范的中文名稱是格雷碼。
格雷碼是數(shù)字電子技術(shù)和自動(dòng)化檢測(cè)中的一種重要編碼,時(shí)常見到如下描述: 格雷碼( Gray Code,GreyCode,又稱作葛萊碼,二進(jìn)制循環(huán)碼) 是1880 年由法國(guó)工程師Jean - Maurice - Emlle Baudot 發(fā)明的一種編碼,因Frank Gray 于1953 年申請(qǐng)"Pulse CodeCommunication"而得名。當(dāng)初是為了機(jī)械應(yīng)用,后來在電報(bào)上取得了巨大發(fā)展,現(xiàn)在則常用于模擬- 數(shù)字轉(zhuǎn)換和轉(zhuǎn)角- 數(shù)字轉(zhuǎn)換中。
這段格雷碼簡(jiǎn)介首次正式出現(xiàn)在1999 年,現(xiàn)在看來有些不太合適。
1 格雷碼( Gray Code) 的由來
無容置疑,迄今為止對(duì)典型格雷碼( Primary GrayCode) 的權(quán)威描述是Frank Gray的美國(guó)"PulseCode Communication[8]".該申請(qǐng)于1947 年11 月13 日,申請(qǐng)?zhí)枮?85697; 1953 年3 月17 日獲得批準(zhǔn),號(hào)為2632058,權(quán)歸貝爾電話實(shí)驗(yàn)室所有。
根據(jù)所用編碼的鏡像反射特性,將其稱之為反射二進(jìn)制碼( Reflected Binary Code) .還介紹了幾種變形格雷碼( Gray Code Variants)。
筆者所見早使用術(shù)語(yǔ)"Gray Code"的文獻(xiàn)是Earl Albert Ragland 等人在1953 年10 月16 日申請(qǐng)、1958 年2 月11 日獲得批準(zhǔn)的2823345 # 美國(guó)"Direction - Sensitive Binary Code Position Control System[9]".據(jù)此,Gray code 出現(xiàn)在1953 年10 月16 日之前在邏輯上是可能的。另一篇使用Gray Code 的文獻(xiàn)是Jack Breckman 在1953 年10 月31 日申請(qǐng)、1956 年1 月31 日獲得批準(zhǔn)的2733432 # 美國(guó)"EncodingCircuit".考慮到公開時(shí)的修訂問題,GrayCode 的出現(xiàn)應(yīng)不晚于1956 年1 月。
2 格雷碼的特點(diǎn)和應(yīng)用
典型的二進(jìn)制格雷碼( Binary Gray Code) 和部分其他數(shù)碼如表1 所示。
表1 典型二進(jìn)制格雷碼和其他部分?jǐn)?shù)碼

典型格雷碼是具有反射特性和循環(huán)特性的單步二進(jìn)制自補(bǔ)碼( Reflected Cyclic Binary Unit - distanceSelf - complementing Code) .與自然二進(jìn)制碼( NaturalBinary Code) 相比,它的誤碼率較低,是一種錯(cuò)誤化的可靠性編碼,又稱為差錯(cuò)〔二進(jìn)制〕碼( Minimum Error [binary]Code) ,經(jīng)常用在數(shù)字通信和自動(dòng)化測(cè)控系統(tǒng)中,使用在格雷碼計(jì)數(shù)器中還可以大大降低計(jì)數(shù)器的動(dòng)態(tài)功耗。格雷碼還與PDC( Position - to - Digital Converter) 、TDC、ADC、DAC、真值表、卡諾圖、哈密頓圖、九連環(huán)、漢諾塔、十六進(jìn)制難題( Hexadecimal Puzzle) 、回形滑行難題或瘋像跳舞( Spinout Puzzle or Crazy Elephant Dance) 等數(shù)字測(cè)控、數(shù)理邏輯和人工智能問題有著密切關(guān)系。利用格雷碼的奇偶性和± 1 規(guī)律等數(shù)學(xué)性質(zhì),可以方便地設(shè)計(jì)出可級(jí)聯(lián)、可預(yù)置、可逆計(jì)數(shù)的三可格雷碼計(jì)數(shù)器,也方便了九連環(huán)的套解和漢諾塔的搬移。
3 幾個(gè)錯(cuò)誤說法
盡管有很多學(xué)者對(duì)格雷碼的研究和發(fā)展做出了巨大貢獻(xiàn),但難免也會(huì)出現(xiàn)一些不太準(zhǔn)確的說法。
現(xiàn)歸納如下:
?。?1) 將Gray Code 說成無權(quán)碼。
在Gray 的中可知其權(quán)的為2n - 1,其符號(hào)按照1 出現(xiàn)的次序從高到低正負(fù)交替??赡苁且?yàn)闊o數(shù)學(xué)推導(dǎo),且在中有3 處誤寫為2n - 1 而不符合實(shí)際情況( 在Robert L. Carbrey于1948 年2 月10 日申請(qǐng)、1951 年1 月16 日獲得批準(zhǔn)的2538615#中寫法都是正確的) ,致使很多數(shù)字電子技術(shù)和計(jì)算機(jī)技術(shù)的文獻(xiàn)認(rèn)為格雷碼是無權(quán)碼,僅互動(dòng)百科稱其為準(zhǔn)權(quán)碼,汪蔚霄給出了與Gray 類似的權(quán)值,J. F. A. Thompson 認(rèn)為可以從格雷碼直接轉(zhuǎn)換成十進(jìn)制數(shù)[22].
?。?2) 將Gray code 寫成Grey Code或Gray Code.
美語(yǔ)gray 等同于英語(yǔ)grey 是"灰色"的意思,且Gray 和Grey 的人名音譯均為格雷,因而造成錯(cuò)用。但Gray Code 因Frank Gray 命名,絕不能寫成Grey Code;可寫為Gray code,但不能寫成gray code.
?。?3) 將Gray Code 譯為灰色碼
可能由于Gray 有灰色的含意,且Gray Code 的權(quán)值不如自然二進(jìn)制數(shù)的權(quán)值明顯,故有人誤認(rèn)為此碼為"灰色碼".
?。?4) 認(rèn)為Gray Code 的發(fā)明者是mile Baudot
1878 年,根據(jù)右撇子手指的巧拙區(qū)別,法國(guó)工程師Jean - Maurice - mlle Baudot 曾在電報(bào)編碼中使用了一種后來擴(kuò)展為一號(hào)國(guó)際電報(bào)碼ITA1 的波特碼( Baudot Code,又稱作五單位博多碼)。雖然波特碼基本是按法文元音、輔音的順序以變形格雷碼排序的,可以看作格雷碼的一個(gè)子集,但沒必要將Gray code 的發(fā)明也歸于mile Baudot.順便指出,盡管波特率與Baudot 有關(guān),但電路、信號(hào)與系統(tǒng)和電子技術(shù)中說的波特圖則是W. H. Bode 發(fā)明的,其英文是Bode diagram,建議按照自動(dòng)控制領(lǐng)域譯成伯德圖為好。
同樣早于Gray,George Stibitz 在1941 年11 月26日申請(qǐng)、1943 年1 月12 日獲得批準(zhǔn)的2307868#美國(guó)"Binary Counter"設(shè)計(jì)了一種8 元格雷碼計(jì)數(shù)器,給出了5 元格雷碼計(jì)數(shù)器從0 開始計(jì)數(shù)16 次的狀態(tài)表。此碼表與典型格雷碼完全一致,但沒有人說格雷碼是George Stibitz 發(fā)明的。
?。?5) 認(rèn)為Gray Code 的發(fā)明者是Elisha Gray
雖然與貝爾競(jìng)爭(zhēng)電話權(quán)的Elisha Gray 在電報(bào)技術(shù)和電話技術(shù)中都做出了重要貢獻(xiàn),但他與GrayCode 無關(guān)。
?。?6) 認(rèn)為Gray Code 的發(fā)明者是中國(guó)人
如同萊布尼茲重新發(fā)現(xiàn)并完善推廣的二進(jìn)制數(shù)可以解釋邵雍改畫的伏羲八卦圖[28]只是巧合一樣,格雷碼與九連環(huán)可能是恰巧同構(gòu)。在沒有確鑿證據(jù)之前,雖然九連環(huán)的套解符合格雷碼的± 1 規(guī)律,但沒有必要把格雷碼的發(fā)明歸功于九連環(huán)的中國(guó)發(fā)明者,也沒必要將格雷碼稱為九連環(huán)碼,漢諾塔亦然。
4 幾個(gè)易混稱呼
?。?1) 將Gray Code 稱為循環(huán)碼或循環(huán)碼的特例
由于格雷碼的頭尾兩數(shù)也具有單位距離的特性,故格雷碼又稱為循環(huán)二進(jìn)制單位距離碼( Cyclic BinaryUnit - distance Code) ,循環(huán)二進(jìn)制碼( Cyclic BinaryCode[1]) ,也稱為循環(huán)置換碼( Cyclic PermutationCode) ,有時(shí)簡(jiǎn)稱為循環(huán)碼。
由于將格雷碼稱為循環(huán)碼容易與計(jì)算機(jī)糾錯(cuò)編碼中使用的循環(huán)碼混淆,建議不要再直接用循環(huán)碼稱呼格雷碼。
?。?2) 將Gray Code 譯為葛萊碼或格萊碼、戈萊碼。
早期,有人將Gray Code 音譯為葛萊碼或格萊碼、戈萊碼,目前在我國(guó)的核工業(yè)和文件中仍有葛萊碼計(jì)數(shù)器之說。但由于Marcel J. E. Golay發(fā)明的一種糾錯(cuò)用循環(huán)碼Golay Code[31]的音譯也是格萊碼或戈萊碼,與葛萊碼同音。故為免混淆,建議不要再將格雷碼譯為葛萊碼或格萊碼、戈萊碼。
當(dāng)然,將Golay Code 音譯為格雷碼或戈雷碼也是不合適的。
?。?3) 將Gray Code 稱為反射二進(jìn)制碼。
除了格雷碼因具有反射特性而稱為反射二進(jìn)制碼外,還有一種用于PCM - 24B 方式脈沖編碼調(diào)制( Pulse Code Modulation,PCM) 的反射二進(jìn)制碼。這種碼型以自然二進(jìn)制碼從中間折疊,又稱為反卷碼或折疊二進(jìn)制碼( Folded Binary Code); 其有符號(hào)數(shù)向下順移一半,與原碼表示有符號(hào)數(shù)的反碼相同。對(duì)于小振幅成分產(chǎn)生頻率高的話音信號(hào)來說,具有易于同步的優(yōu)點(diǎn)。為免兩種編碼的混淆,建議都不要再使用反射二進(jìn)制碼的名字。
5 結(jié)束語(yǔ)
根據(jù)當(dāng)前資料,關(guān)于格雷碼的下述描述是合理的:
格雷碼( Gray Code) 因Frank Gray 1947 年申請(qǐng)、1953年獲得批準(zhǔn)的"Pulse Code Communication"而得名,當(dāng)初是為了通信,現(xiàn)在則常用于模擬- 數(shù)字轉(zhuǎn)換中。法國(guó)工程師Jean - Maurice - mlle Baudot 在1880年曾用過的波特碼是典型格雷碼的一種變形。1941年George Stibitz 設(shè)計(jì)過一種8 元格雷碼計(jì)數(shù)器。格雷碼( Gray Code) 曾用過Grey Code、葛萊碼、格萊碼、戈萊碼、循環(huán)碼、反射二進(jìn)制碼、差錯(cuò)碼等名字,它們有的不對(duì),有的易與其他名稱混淆,建議不再使用這些曾用名。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 串口、UART、RS232、RS485、USB、COM 口全面解析2025/11/3 14:42:16
- 變壓器基礎(chǔ)知識(shí):原理、結(jié)構(gòu)與應(yīng)用2025/11/3 14:36:10
- 一款高集成度雙通道、寬頻、自感式數(shù)字電感電容傳感芯片 - MLC12G2025/11/3 14:33:05
- 高通SA8155P芯片的接口協(xié)議2025/10/31 15:15:33
- 晶振與晶體的區(qū)別2025/10/31 15:12:27









