確定字符與二進(jìn)制數(shù)之間的對(duì)應(yīng)關(guān)系僅是向前邁出了第一步,若要使數(shù)據(jù)為計(jì)算機(jī)所用,還需要將二進(jìn)制數(shù)轉(zhuǎn)變成為電信號(hào)。在數(shù)據(jù)通信中有很多種采用直流信號(hào)表示二進(jìn)制中0和1的方式,其中用直流信號(hào)表示二進(jìn)制中0和1的信號(hào)形式被稱為碼型。表0-1中列出了幾種常見(jiàn)碼型的編碼方式,下面分別對(duì)這幾種常見(jiàn)碼型進(jìn)行詳細(xì)的介紹。
表0-1:常見(jiàn)碼型的編碼方式
欲進(jìn)一步詳細(xì)了解相關(guān)編碼方式的請(qǐng)進(jìn)入:常用字符集編碼方式;基帶信號(hào)的常用編碼方式
1、二電平碼
二電平碼是最簡(jiǎn)單、最基本的一種碼型,它采用兩種不同的電平來(lái)分別表示二進(jìn)制中的0和1。例如,用恒定的正電平表示1,用無(wú)電壓的狀態(tài)表示0。而更為常見(jiàn)的方法則是用一個(gè)正電平表示0,用一個(gè)負(fù)電平表示1,這種碼型被稱為非歸零電平碼(NRZ-L)。圖1-1描述了非歸零電平碼對(duì)數(shù)據(jù)流110001011010進(jìn)行編碼的情形。與第一種情況不同,在采用NRZ-L的情況下,若線路上的電壓為0,則說(shuō)明當(dāng)前線路上沒(méi)有信號(hào)傳輸。
圖1-1:非歸零電平碼
這種碼型的思想簡(jiǎn)單,便于實(shí)現(xiàn)。但是它具有直流分量,不適于使用變壓器和交流耦合的情況。此外,它還難于確定一個(gè)比特的開(kāi)始和停止時(shí)刻,特別是在傳輸連續(xù)的比特1或連續(xù)的比特0的情況下。為此收發(fā)雙方需要從其他途徑獲取同步信息,以便實(shí)現(xiàn)同步控制。
2、差分碼
與二電平碼不同,差分碼是一種以電平跳轉(zhuǎn)狀況來(lái)表示數(shù)據(jù)信息的碼型。值得注意的是,以差分碼傳輸數(shù)據(jù)時(shí),在一個(gè)比特持續(xù)的時(shí)間內(nèi)信號(hào)電平不會(huì)出現(xiàn)跳變,而且這段時(shí)間內(nèi)電平的值與數(shù)據(jù)信息不相關(guān)。而與數(shù)據(jù)信息相關(guān)的電平跳轉(zhuǎn)只發(fā)生在比特傳輸?shù)拈_(kāi)始時(shí)刻。非歸零反相碼(NRZ-I,Non Return to Zero-Invert on ones)就是一種差分碼。采用這種碼型時(shí),如果傳輸一個(gè)比特的起始時(shí)刻電平發(fā)生了跳轉(zhuǎn),那么這個(gè)比特就表示二進(jìn)制的1;如果此刻電平?jīng)]有發(fā)生跳轉(zhuǎn),那么這個(gè)比特就代表二進(jìn)制的0。圖2-1描述了非歸零反相碼對(duì)數(shù)據(jù)流110001011010進(jìn)行編碼的情況。
圖2-1:非歸零反相碼
由于差分碼不是用信號(hào)電平的絕對(duì)狀態(tài)表示數(shù)據(jù)信息,所以在接收信號(hào)時(shí)只需檢測(cè)信號(hào)電平是否發(fā)生跳變,不必將其與閾值進(jìn)行比較,從而在有噪聲影響的情況下這種碼型更為可靠,而且在傳輸過(guò)程中某些環(huán)節(jié)引起的基帶信號(hào)反相也不會(huì)影響最終的接收結(jié)果。但是差分碼也有其不足之處,它仍缺乏完善的同步機(jī)制。以非歸零反相碼為例,雖然在傳輸連續(xù)的比特1時(shí),每個(gè)比特開(kāi)始時(shí)刻都將發(fā)生電平的轉(zhuǎn)換,此時(shí)信號(hào)自身具備了同步信息,但是對(duì)于傳輸連續(xù)比特0的情況它卻無(wú)能為力。
3、雙極碼
雙極碼是一種采用三個(gè)電平表示二進(jìn)制數(shù)的碼型。目前在數(shù)據(jù)通信中得到廣泛應(yīng)用的雙極碼是信號(hào)交替反轉(zhuǎn)碼(AMI)、8零替換碼(B8ZS)和高密度雙極性3零碼(HDB3)。其中8零替換碼和高密度雙極性3零碼均是信號(hào)交替反轉(zhuǎn)碼的變種,此二者與AMI碼的實(shí)現(xiàn)基本相同,只是在遇到長(zhǎng)0串時(shí)其實(shí)現(xiàn)方式與AMI碼略有差別。它們分別以各自的方式對(duì)長(zhǎng)0串進(jìn)行替換,以便使收發(fā)雙方更有效地實(shí)現(xiàn)步調(diào)一致。
1)雙極性信號(hào)交替反轉(zhuǎn)碼:雙極性信號(hào)交替反轉(zhuǎn)碼用無(wú)電壓的狀態(tài)表示二進(jìn)制0,用交替的正、負(fù)電平表示二進(jìn)制1。圖3-1描述了用雙極性信號(hào)交替反轉(zhuǎn)碼對(duì)數(shù)據(jù)110001011010進(jìn)行編碼的情況。雙極性信號(hào)交替反轉(zhuǎn)碼用交替變換的正、負(fù)電平表示比特1的方法使其所含的直流分量為零。而且在傳輸比特1時(shí),無(wú)論其前導(dǎo)數(shù)據(jù)是比特0還是比特1都將引起信號(hào)電平的變化,這在一定程度上為收發(fā)雙方取得同步提供了方便。特別是在傳輸連續(xù)的比特1時(shí),信號(hào)電平將連續(xù)出現(xiàn)反轉(zhuǎn)。但對(duì)于較長(zhǎng)的比特0序列,它還是無(wú)法提供同步信息。
圖3-1:雙極性信號(hào)交替反轉(zhuǎn)碼
2)雙極性8零替換碼:8零替換碼(B8ZS,Bipolar with 8-Zero Substitution)是北美地區(qū)使用的一種AMI變形碼,它在一定程度上解決了為長(zhǎng)0串提供同步信息的問(wèn)題。B8ZS通過(guò)對(duì)連續(xù)8個(gè)比特0進(jìn)行替換來(lái)實(shí)現(xiàn)上述功能,具體的替換方法如圖3-2所示。兩種模式的選擇取決于待轉(zhuǎn)換序列的前導(dǎo)比特1所采用的極性。但無(wú)論選擇哪種模式,在替換后的序列中均會(huì)出現(xiàn)兩次相鄰非零電平同極的現(xiàn)象。接收端正是通過(guò)檢測(cè)這個(gè)特征來(lái)確定被替換序列的位置的,以便把它還原成連續(xù)的8個(gè)比特0。
圖3-2:8零替換碼的替換方式
3)高密度雙極性3零碼和雙極訊號(hào)3零替換:高密度雙極性3零碼(HDB3,High-Density Bipolar 3-Zero)是日本和歐洲地區(qū)用于處理長(zhǎng)0串的一種AMI變形碼。采用這種碼型時(shí),如果遇到由連續(xù)的4個(gè)比特0組成的序列,則根據(jù)位于上一次已轉(zhuǎn)換序列和本次待轉(zhuǎn)換序列之間比特1的數(shù)量來(lái)決定待轉(zhuǎn)換序列的轉(zhuǎn)換模式。
另外,類似HDB3碼的雙極訊號(hào)3零替換(B3ZS,Bipolar with 3-Zero Substitution)是一種如果用戶數(shù)據(jù)流包含一行三個(gè)或三個(gè)以上連續(xù)零值時(shí),雙極變異值(bipolar violations)就會(huì)被插入的T型載波線路編碼。雙極訊號(hào)三零替換被用來(lái)確保當(dāng)用戶數(shù)字流所包含的“1”值不充足時(shí),確保充分?jǐn)?shù)量的轉(zhuǎn)換以維護(hù)系統(tǒng)的同步性。
例如,若采用B8ZS碼對(duì)數(shù)據(jù)10100000000010進(jìn)行編碼,假設(shè)序列中第一個(gè)比特1的極性為正,注意長(zhǎng)0串前導(dǎo)比特1的極性,編碼后如圖3-3所示。若采用HDB3碼將數(shù)據(jù)100000000010000進(jìn)行編碼,假設(shè)位于這段數(shù)據(jù)序列首部的比特1極性為正,且其后繼數(shù)據(jù)是4個(gè)連續(xù)的比特0,則編碼后如圖3-4所示。
圖3-3:雙極性8零替換碼 圖3-4:高密度雙極性3零碼
欲詳細(xì)了解HDB3、B3ZS碼編碼規(guī)則的請(qǐng)進(jìn)入。
4、裂相碼
裂相碼是一種在比特中點(diǎn)位置上電平跳轉(zhuǎn)為相反極的碼型。目前,最常用的兩種裂相碼是曼徹斯特碼和差分曼徹斯特碼。
1)曼徹斯特碼:曼徹斯特碼(Manchester Encoding)是一種將出現(xiàn)在比特中點(diǎn)位置的電平跳變既作為數(shù)據(jù)信息又作為同步信息的裂相碼。它以在比特中點(diǎn)位置上出現(xiàn)的從負(fù)電平到正電平的跳變表示二進(jìn)制的1,將此刻出現(xiàn)從正電平到負(fù)電平的跳變表示二進(jìn)制的0。圖4-1描述了用曼徹斯特碼對(duì)數(shù)據(jù) 110001011010進(jìn)行編碼的情況。
圖4-1:曼徹斯特碼
2)差分曼徹斯特碼:差分曼徹斯特碼(Differential Manchester Encoding)是一種融入了差分碼特點(diǎn)的裂相碼。這種碼型以比特中點(diǎn)位置的電平跳轉(zhuǎn)作為同步信息,以比特開(kāi)始時(shí)刻是否出現(xiàn)電平跳變的情況作為數(shù)據(jù)信息。若在比特開(kāi)始時(shí)刻出現(xiàn)電平跳變,則該比特表示0,否則表示1。圖4-2描述了用差分曼徹斯特碼對(duì)數(shù)據(jù)110001011010進(jìn)行編碼的情況。
圖4-2:差分曼徹斯特碼
由上述兩種碼型的實(shí)現(xiàn)方式可知,裂相碼通過(guò)位于比特中點(diǎn)的電平轉(zhuǎn)換使數(shù)據(jù)信號(hào)自身夾帶了時(shí)鐘節(jié)拍,從而確保收發(fā)雙方能夠同步工作。但這卻使得在傳輸裂相碼時(shí)需要更大的帶寬。
5、密勒碼
密勒碼也是一種利用電平的跳變表示數(shù)據(jù)信息的碼型。它以位于比特中點(diǎn)的電平跳轉(zhuǎn)表示二進(jìn)制的1,而比特中點(diǎn)沒(méi)有出現(xiàn)電平跳轉(zhuǎn)時(shí)則表示二進(jìn)制的0。若當(dāng)前傳輸?shù)谋忍?span>0后面緊跟另一個(gè)比特0,則該比特0的傳輸要進(jìn)行電平跳轉(zhuǎn)。圖5-1描述了用密勒碼對(duì)數(shù)據(jù)110001011010進(jìn)行編碼的情況。這種編碼方式消除了裂相碼出現(xiàn)的頻帶過(guò)寬的問(wèn)題,并且較完善地解決了同步問(wèn)題。
圖5-1:密勒碼
6、多電平碼
多電平碼是一種以M個(gè)電平狀態(tài)表示由n個(gè)比特組成的碼元的編碼(其中n與M的關(guān)系是n = log2M)。較為常見(jiàn)的多電平碼有自然碼和格雷碼。一般地,多電平碼所需的M個(gè)電平是以0電平為中心對(duì)稱等距設(shè)置的。例如,當(dāng)M=4時(shí)多電平碼所選用的4個(gè)電平為3a,a,-a和-3a。表6-1分別列出了在四電平自然碼和四電平格雷碼中電平與碼元之間的對(duì)應(yīng)關(guān)系。
表6-1:M=4時(shí)自然碼和格雷碼的定義表
多電平碼的優(yōu)點(diǎn)是提高了傳輸效率和頻帶利用率。在輸入比特率一定的情況下,M的取值越大頻帶利用率就越高。但在發(fā)送功率一定的情況下,M越大抗噪聲干擾的能力就越低。鑒于此,M的取值一般不宜超過(guò)16。例如分別采用四電平自然碼和四電平格雷碼對(duì)數(shù)據(jù)001110011000進(jìn)行編碼,如圖6-1和圖6-2所示。
圖6-1:四電平自然碼 圖6-2:四電平格雷碼
7、雙二進(jìn)制碼
雙二進(jìn)制碼是一種通過(guò)電平狀態(tài)表示數(shù)據(jù)信息的碼型。它用無(wú)電壓狀態(tài)表示二進(jìn)制中的1,用正、負(fù)電平交替表示二進(jìn)制的0。當(dāng)兩個(gè)比特0之間出現(xiàn)奇數(shù)個(gè)比特1時(shí),則位置靠后的那個(gè)比特0需改變電平極性。圖7-1描述了用雙二進(jìn)制碼對(duì)數(shù)據(jù)110001011010進(jìn)行編碼的情況。
圖7-1:雙二進(jìn)制碼
通過(guò)上述介紹可知,常用的碼型種類很多,每種碼型都有其各自的特點(diǎn),例如,不同碼型所采用的電平數(shù)量可能不同,包含的同步信息量不同,所具有的直流成分不同等。于是在選擇碼型的過(guò)程中,需要根據(jù)實(shí)際情況從差錯(cuò)檢測(cè)能力、信號(hào)自同步能力、抗干擾能力、實(shí)現(xiàn)費(fèi)用等因素出發(fā)進(jìn)行綜合考慮。
欲更多了解信道編碼原理的請(qǐng)進(jìn)入。