一、基本概念 實際的通信鏈路都不是理想的,比特在傳輸過程中可能會產生差錯:1可能變為0,0可能變為1,稱為比特差錯。 在一段時間內,傳輸錯誤的比特占所傳輸比特總數的比率稱為誤碼率BER(Bit Error Rate)。 提高數據代碼的抗干擾能力. 這必須在原二進位代碼長度的基礎上增加幾位二進位代碼的 ...
一、基本概念
實際的通信鏈路都不是理想的,比特在傳輸過程中可能會產生差錯:1可能變為0,0可能變為1,稱為比特差錯。
在一段時間內,傳輸錯誤的比特占所傳輸比特總數的比率稱為誤碼率BER(Bit Error Rate)。
提高數據代碼的抗干擾能力. 這必須在原二進位代碼長度的基礎上增加幾位二進位代碼的長度,使相應數據具有一定的冗餘度。
編碼有一定的檢錯能力,編碼必須要有一定的冗餘度,編碼器的冗餘性只是檢錯的必要條件,而不是充分條件。
碼重:編碼中1的個數。如01100010B的碼重為3
碼距:兩個編碼不相同的位數。兩個編碼之間的碼距等於它們“異或”操做結果的碼重。例如:01101100B ^10001001B=11100101B 碼距為5。
二、奇偶校驗
在原編碼的基礎上增加一位奇偶檢驗位,使得整個編碼的碼重固定為奇數(奇校驗)或偶數(偶校驗)
當干擾持續時間很短(如常見的尖峰干擾),即當差錯單個出現,奇偶檢驗即可以達成檢錯的目的。
如:奇校驗 發送:1101101 -----------------接收端:1101100 “1”數量奇性改變,可檢錯。
1101101 -----------------0111101 產生2位誤碼,奇校驗無法檢錯。
當連續出現幾個差錯時,簡單的奇偶校驗不能發現,這也是奇偶檢驗的缺點。
三、和校驗
如果一串信息有“n”個位元組,對這n個位元組進行"加"運算,然後將結果附在位元組後面進行傳輸,附加的位元組就是校驗和。
在電腦中常用兩種加法 1、邏輯異或 2、加法指令
四、迴圈冗餘校驗CRC(應用最廣泛)
基本原理是將一段信息看成一段二進位,然後用一個特定的數去除它,最後將餘數作為校驗附在信息後,在接收端同樣處理。
其根本思想就是先在要發送的幀後面附加一個數(這個就是用來校驗的校驗碼,但要註意,這裡的數也是二進位序列的,下同),生成一個新幀發送給接收端。當然,這個附加的數不是隨意的,它要使所生成的新幀能與發送端和接收端共同選定的某個特定數整除(註意,這裡不是直接採用二進位除法,而是採用一種稱之為“模2除法”)。到達接收端後,再把接收到的新幀除以(同樣採用“模2除法”)這個選定的除數。因為在發送端發送數據幀之前就已通過附加一個數,做了“去餘”處理(也就已經能整除了),所以結果應該是沒有餘數。如果有餘數,則表明該幀在傳輸過程中出現了差錯。