- 智能弱電工程設計與應用
- 陳宏慶 張飛碧 袁得 李惠君編著
- 1899字
- 2019-07-26 18:30:37
3.6 檢錯與糾錯
造成數據傳輸中出現差錯的原因有內部因素和外部因素兩部分。內部因素有設備內部的熱噪聲、系統傳輸的信號衰減和延時失真等。外部因素有電磁波干擾、工業設備干擾和太陽噪聲等。為了確保無差錯地傳輸,通信系統必須具有檢錯和糾錯功能。
檢錯方法是指在傳輸過程中能使接收端檢測出差錯的附加位,如果接收端檢測到了一個差錯,那么就可請求發送端再重新發送一次信息。糾錯法是指在發送每組信息時,發送足夠的供檢測使用的附加位,使接收端能以很高的概率檢測出差錯并糾正大多數錯誤信息。但是發送大量附加位,將會降低傳輸系統的效率。
3.6.1 檢錯法
數據在信道中傳輸受到各種干擾引起的差錯可分為兩種形式:①隨機錯誤。即數據序列中前后碼元之間是否發生錯誤是彼此無關的,產生這種錯誤的信道稱為隨機信道。②突發性錯誤。即序列中一個錯誤出現會影響其他碼元的錯誤,即錯誤之間有相關性。
在數字信號信息位之外再加上附加的檢驗位,以便在誤碼產生時能夠找到它,稱為檢錯(Code error detection)。數據傳輸系統常用的檢錯方法有:
1.奇偶校驗碼
奇偶校驗碼是一種最簡單的檢錯碼,它的編碼規則是先將需要發送的數據碼元分組,一般按字符進行分組,即一個字符或若干個字符構成一組。然后在各組的數據后面附加一位校驗位,使該組碼與校驗位在內的碼字中的“1”的個數總為偶數(稱為偶數校驗)或奇數(稱為奇數校驗)。
奇偶校驗僅僅校驗一個字符中的各個位,如果信息字符中只有一位誤碼,奇偶校驗法肯定能把它檢測出來。但當幾個偶數位同時出錯時,此時就無法檢錯了,因此最簡單的奇偶校驗法可以校驗查出大多數隨機誤差,它可以把10-4的出錯率改善到10-7左右,但對于突發性錯誤(相關性錯誤)的漏檢率可接近50%。它只能用于以隨機錯誤為主的計算機通信系統,極少用于數字音視頻設備中。
2.CRC循環冗余檢錯碼
CRC是Cyclic Redundancy Code(循環冗余碼)的縮寫,是一種可檢測多位差錯、最精確、最常用的檢錯技術。主要用于數字光盤CD和軟磁盤存儲系統。CRC采用任意碼長(mbit)的檢驗位,如圖3-17所示。CRC的檢驗能力與字組長度(n)無關,但與m有關,m越大,檢測能力越強。當冗余度(=m/n)一定時,字組長度n(=信息位k+檢驗位m)越長,檢測能力也越強。試驗表明,如果以16bit數作冗余校驗碼,傳輸速度為9600bit/s的數據傳輸,那么可達到3000年才會有一個差錯檢測不出來。
3.RS線性分組循環碼
RS是Reed-Solomon(里佳-所羅門碼)的縮寫。RS碼對隨機錯誤和突發性錯誤具有極強的糾正能力,它可糾正連續8bit的誤碼(m=8時)。由于RS碼性能優良以及近年來VLSI(超大規模集成電路)技術的快速發展,使得原來非常復雜、難以實現的解碼電路集成化,目前,功能強大、長RS碼的解碼器芯片已商業化了,因此RS碼獲得了廣泛應用。CD光盤存儲系統中采用的RS(32,38)碼,可糾正500B的連續誤碼。
4.交織技術
交織技術(Interleaving)主要是將突發性錯誤轉為隨機錯誤,以便充分發揮糾錯碼的作用。因為許多信道中的錯誤大都是突發性的,由于錯誤集中在一起,常常超出了糾錯碼的糾錯能力。所以在發送端加上數據交織器,在接收端加上解交織器,使信道的突發性錯誤分散開來,這樣可以充分發揮糾錯編碼的作用。加上交織后,系統的糾錯性能可以提高好幾個數量級。這是因為,對糾錯來說,分散的錯誤比較容易得到糾正,而長串的連續錯誤,比較麻煩。如我們讀一段文字,若文中在個別地方出錯,可根據前后文容易猜出錯誤字的原意。若連續出錯,就很難判斷原文的含義了。
交織技術在實用中經常與其他糾錯碼結合使用。
圖3-17 CRC循環冗余檢錯碼
檢錯能力
注:1.mbit以下的群誤碼可百分之百地檢出。
2.(m+1)bit以上的群誤碼不能檢出的概率約為2-m。
3.假定各種形式誤碼產生概率都相同,則不能檢出的概率為2-m。
4.上述1~3各項特性與字組長度n無關。
3.6.2 糾錯法
把接收到的錯誤碼矯正到原來正確的碼叫做誤碼校正(Code error correction),簡稱“糾錯”。常用的糾錯法是接收端檢測到誤碼后,自動向發送端發出重發請求(Automatic Repeat Request,ARQ)。當發送端向接收端發送的一個數據塊無差錯時,接收端回送一個肯定應答(Acknowledge-ment,ACK),即ACK指令;如果接收端檢測出差錯則回送否定應答(No Acknowledgement,NAK),即NAK指令,發送端重新發送存儲在緩存器中已發送數據塊的副本,直到確認接收到的數據正確無誤為止。
另一種糾錯法稱正向糾錯,發送端發送的是能使接收端檢錯和糾錯的冗余位。一種經典的正向糾錯法是漢明糾錯法。
漢明碼(Hamming code)是一種具有自我糾正能力的加權平均碼。奇偶校驗方法可以檢測出差錯碼,但不能判斷錯誤發生在哪一位,甚至大致的位置也不知道。因此,為了校正錯誤,必須請求再發送。如果能夠使碼本身具有判斷錯誤發生在碼的哪一位的能力,那么錯誤的改正僅限于把0變成1或者把1變成0,就可以把位置出錯的碼反轉過來糾正錯誤。這就是漢明碼技術的基本點。