差錯控制編碼
在通信系統中,信道通常是非理想的。信號經過信道時,一方面會受到噪聲的干擾;另一方面,信道本身可能產生的複雜衰落變化也會對信號造成影響。這兩種因素通常導致接收出現誤碼。
故此,在一個實際的數字通信系統中,應有某些措施將一個非理想的物理信道,改造成沒有誤碼或可將誤碼控制到可接受範圍的邏輯信道。這些措施中的基本手段,就是所謂的差錯控制編碼
差錯控制的基本思想。。。。。。。。。。。。。。。。。。。。。。。。。。。
與信源編碼的區別:
信源編碼主要作用時根據信源本身的統計特性和特定的應用要求等,通過有損或無損的壓縮變換,減少傳輸的數據量,提高通信效率。
而差錯控制編碼,則是在待傳輸的碼序列中建立某種關聯關係,如果在傳輸過程中發生了錯誤,這種約束關係就會受到破壞,接收端可以據此檢測在傳輸過程中是否出現了錯誤。而要建立這種關聯關係,必須在待傳輸的序列中加入不包含信息的“冗餘”碼作爲監督位。而差錯控制編碼理論,就是研究如何有效地建立這種官渡關係的。
分類:
1、檢錯重發。只具備檢錯功能的編碼算法。如果有錯就重新發送(只適合於有反向傳輸信道的場合)
2、前向糾錯。通過較爲複雜的編碼譯碼算法,使接收端不僅能檢測出錯誤,而且定位出碼字中錯誤的位置並加以糾正。
3、混合差錯控制。前向糾錯編碼算法。
Hamming Code
漢明碼(Hamming Code),是在電信領域的一種線性調試碼,以發明者理查德·衛斯里·漢明的名字命名。漢明碼在傳輸的消息流中插入驗證碼,當計算機存儲或移動數據時,可能會產生數據位錯誤,以偵測並更正單一比特錯誤。由於漢明編碼簡單,它們被廣泛應用於內存(RAM)。
在線下分組碼中,漢明碼就是一種高效碼。
漢明碼的實現原則是在原來的數據的插入k位數據作爲校驗位,把原來的N爲數據變爲m(m = n +k)位編碼。其中編碼時要滿足以下原則:
2^k - 1 >= m 其中(m = n + k)
這就是Hamming不等式,漢明碼規定,我們所得到的m位編碼的2^k ( k>=0 && 2^k < m)位上插入特殊的校驗碼,其餘位把源碼按順序放置
參考資料
https://www.cnblogs.com/Philip-Tell-Truth/p/6669854.html