數據編碼

數據編碼

為了便於使用,容易記憶,常常要對計算機加工處理的對象進行編碼,用一個編碼符合代表一條信息或一串數據,這就是數據編碼。幾種常用的編碼方案有:單極性碼、極性碼、雙極性碼、歸零碼、雙相碼、不歸零碼、曼徹斯特編碼、差分曼徹斯特編碼、多電平編碼、4B/5B編碼等。

簡介


數據編碼是計算機處理的關鍵。不同的信息記錄應當採用不同的編碼,一個碼點可以代表一條信息記錄。由於計算機要處理的數據信息十分龐雜,有些資料庫所代表的含義又使人難以記憶。為了便於使用,容易記憶,常常要對加工處理的對象進行編碼,用一個編碼符合代表一條信息或一串數據。對數據進行編碼在計算機的管理中非常重要,可以方便地進行信息分類、校核、合計、檢索等操作。人們可以利用編碼來識別每一個記錄,區別處理方法,進行分類和校核,從而克服項目參差不齊的缺點,節省存儲空間,提高處理速度。

編碼要求


在進行數據編碼時應遵循系統性、標準性、實用性、擴充性和效率性。
數據編碼數據通過編碼可建立數據間的內在聯繫,便於計算機識別和管理。地理信息系統中主要的數據編碼是服務於空間信息分析的地理編碼。即為識別圖形點、線、面或格網位置及屬性而建立的編碼方法,包括拓撲編碼和坐標編碼。前者是表示空間數據位置相鄰邏輯關係的編碼方法;後者是表示空間數據位置在某一坐標系統下的量度,可以是隱式的(對格網數據)或顯式的。

目的


編碼的主要目的是減少信息量,因為數據影響處理效率和精度,效率低主要是由於大量字元用於名稱或描述,許多時間用於報告、錄入、辨認及理解。更重要的是必須有足夠空間存放那些字元及數字。這種低效率對手工操作及計算機處理都有很大影響。另一方面,要提高計算機處理精度,必須實現數據項定義標準化。設計好的編碼結構可以解決上述問題。例如一個三位數編碼000-999,唯一併簡潔標識1000個不同條目,明顯比每一條用語言描述佔用空間少。
運用編碼除提高處理效率及精度之外,編碼結構可用表示特定意思。例如一個人的身份證號碼可以表示所在省市區、出生年月、性別等。關於這個人的數據就可以根據規定演演算法,用計算機進行排序、總結、統計、分析等。
編碼在離線批處理及在線查詢系統中都是必要的,編碼的結構可能非常複雜,但它對實現現代化的信息處理系統是非常重要。

編碼的結構類型


編碼可以用許多方法,選擇適當的編碼結構是非常重要的,經常使用的是以下幾種編碼結構。

順序編碼

順序中每一項代表一個信息,它的可能結構表示如下:
001 王林
002 張三
003 李四
.....
500 李明
順序編碼方案的優點:
1、這是一個最經常使用的結構,因為它簡單;
2、短而且單一;
3、當查詢者知道編碼時,查找比較方便,只要找到編碼出現的地方即可;
4、管理簡單方便
順序編碼方案的缺點:它無邏輯基礎,除了在列表中順序外,不包括其他有用信息;"不具有容錯性,每次修改只能在最後一個記錄。

分類編碼

分類編碼可能出現的情況與身份證號碼差不多,分類編碼就是將一個數據塊分成若干個表示特定意義的小數據塊組成,這些小的數據塊必須能表示所有數據。
分類編碼的優點:
1、數據的值和位置表示特定含義;
2、分類編碼結構對於信息處理比較方便,每個小數據塊均能方便地檢索、操作、分析、排順序等;
3、數據塊類別擴展起來比較方便,除非這項數已達到最大容量;
4、分類數據塊可以在編碼結構中添加或刪除。
分類編碼的缺點:編碼長度由性質分類來決定,使得編碼位數偏多;許多情況下,編碼都有空閑;需要修改時,可能帶來系統維護的問題。

常見編碼方案


常見的數據編碼方案有:單極性碼、極性碼、雙極性碼、歸零碼、雙相碼、不歸零碼、曼徹斯特編碼、差分曼徹斯特編碼、多電平編碼、4B/5B編碼。

單極性碼

在這種編碼方案中,只適用正的(或負的)電壓表示數據。單極性碼用在電傳打字機介面以及PC機和TTY兼容的介面中,這種代碼需要單獨的時鐘信號配合定時,否則當傳送一長串0或1時,發送機和接收機的時鐘將無法定時,單極性碼的抗雜訊特性也不好。

極性碼

在這種編碼中,分別用正和負電壓表示二進位數“0”和“1”。這種代碼的電平差比單極碼大,因而抗干擾特性好,但仍需另外的時鐘信號。

雙極性碼

信號在三個電平(正、負、零)之間變化。一種典型的雙極性碼就是信號反轉交替編碼(AMI)。在AMI信號中,數據流遇到“1”時使電平在正和負之間交替翻轉,而遇到“0”時則保持零電平。

歸零碼

歸零碼(Return to Zero,RZ),即碼元中間信號回歸到零電平,比如從正電平到零電平的轉換表示碼元“0”,而從負電平到零電平表示碼元“1”。

雙相碼

雙相碼要求每一位中都要有一個電平轉換。因而這種代碼的最大優點是自定時,同時雙相碼也有檢測錯誤的功能,如果某一位中間缺少了電平翻轉,則被認為是違例代碼。

非歸零電平編碼

非歸零電平編碼(Non-Return to Zero Level,NRZ-L),即不使用0電平,用正電平表示“1”,負電平表示“0”。

非歸零反相編碼

非歸零反相編碼(Non-Return to Zero Inverted,NRZ-I),即當“1”出現時電平翻轉,當“0”出現時電平不翻轉。這種代碼也叫差分碼。

曼徹斯特碼

曼徹斯特碼(Manchester),高電平到低電平的轉換邊表示"0",低電平到高電平的轉換邊表示"1",位中間的電平轉換邊既表示數據代碼,也作定時信號使用。曼徹斯特編碼用在乙太網中。

差分曼徹斯特碼

差分曼徹斯特碼(Differential Manchester),也叫做相位編碼(PE);常用於區域網傳輸。在曼徹斯特編碼中,每一位的中間有一跳變,“0”表示位的開頭有跳變,“1”表示位的開頭沒有跳變,位中間的跳變既作時鐘信號,又作數據信號。

多電平編碼:

碼元可取多個電平之一,每個碼元可代表幾個二進位位。

4B/5B編碼

這是兆位快速乙太網的光纖分散式數據介面(FDDI,Fiber Distributed Data Interface)中採用的信息編碼方案。這種編碼的特點是將欲發送的數據流每4bit作為一個組,每四位二進位代碼由5位編碼表示,這5位編碼稱為編碼組(code group),並且由NRZI方式傳輸。