檢錯算法是通信領域中很重要的基礎技術之壹,很多標準中都有這樣的算法。其作用是數據在傳輸時,我們該如何判斷這個數據是傳輸正確的?如果沒有傳輸正確,是否提醒對方重新傳輸?以前的做法是,無論正確與否,每個數據包重復傳輸幾次,按照概率來講,總有壹次是正確的,然後交由應用層去判斷。但是有了檢錯算法,就能第壹時間得出數據是否傳輸錯誤了,檢錯算法的優勢是:可以用很少的檢錯成本(代價)實現檢錯,相比於糾錯算法在這個代價很低。所以在壹些比較穩定的信道,壹般都是用檢錯算法。目前市面上有CRC、奇偶校驗、海明校驗等。
根據行業特征,壹般以發明者的名字命名新算法,所以叫傑林碼。比如香濃費諾碼、哈夫曼編碼、所羅門碼、RS碼等。
傑林碼之檢錯算法極為簡單,具體來講有兩個步驟
1、給序列進行添加規律,比如二進制序列中“每個1後面增加1個0”,這方法具有很多組合方式,且每壹種方式增加的符號量是不同的,且得到的概率系數r是不同的。告知大家壹個公式:
等概二進制序列中,給c個符號1後增加壹個符號0,則實際增加符號0的比例(概率)為:
p(c)=1/((2^(c+1))-2)
感興趣的朋友不妨利用這個公式去驗證壹下偽隨機數。c=1時,p(c)=1/2;c=2時,p(c)=1/6。現在免費贈送壹個知識點,壹個序列編碼後是否達到最混亂(等熵)狀態,可以利用上面的公式對編碼後的結果做判斷(這壹方法也已申請專利)。
2、基於非歸壹化概率模型進行編碼,因為通過該理論編碼既可以極大的消除添加的符號(編碼後的比特長度極大趨近於未添加符號前的比特程度),又可以保持解碼時人為添加的規律還存在,理論和實踐均已經證明,當編碼結果等於原序列長度時,添加的規律無效。
檢錯判據:
按序譯碼時,如果連續譯碼出兩個符號1,則說明數據在傳輸時發生了錯誤。
優勢:
1、碼率可以無限接近1,比如支持(0,1)的任意碼率,極大降低了通訊檢錯成本;
2、無碼長限制,最小支持1比特,最長支持無限;
3、當二進制序列中概率不均等時,可以實現無損壓縮,即算法具有檢錯和壓縮雙重功能,當然也可以限制不放開壓縮功能;
4、通過理論證明:當碼長無限長是,檢錯概率等於1,即可以100%實現檢錯;以譯碼32bit為例,檢驗32比特是否符合規律的誤判概率為0.00164126,且這個比特數越長,誤判概率越小。
5、邏輯極為簡單,僅須壹個int型的緩存空間。
6、不增加代碼量的情況下,功能可以任意組合,比如加密和檢錯,壓縮和檢錯,壓縮和加密,壓縮、加密、檢錯組合等等。
7、已經具有了知識產權保護,且所有的專利和知識產權屬於湖南瑞利德信息科技有限公司。
有些專家可能會問,妳這樣的方式,其他的熵編碼可以做到,那妳不妨試試!相信試過了才知道我的理論原創性。有壹個前提,編碼結果要盡可能的接近熵極限,同時還要保持規律。
同時,上述任意壹條優點,任何專家可以去尋找壹下是否有雷同理論和方法!