資源描述:
《matlab實現(xiàn)漢明碼編碼譯碼》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、MATLAB實現(xiàn)漢明碼編碼譯碼漢明碼的編碼就是如何根據(jù)信息位數(shù)k,求出糾正一個錯誤的監(jiān)督矩陣H,然后根據(jù)H求出信息位所對應(yīng)的碼字。1、根據(jù)已知的信息位數(shù)k,從漢明不等式中求出校驗位數(shù)m=n-k;?2、在每個碼字C:(C1,C2,??,C2m?-1)中,用c02?,c12?,cn-12作為監(jiān)督位,剩下的位作為信息位;?3)用二進(jìn)制數(shù)字表示2m-1?列,得到2m-1列和m行監(jiān)督矩陣H;?4)用3步的H形成HCT?=0,從而得出m個監(jiān)督方程;?5)將已知的信息代入方程組,然后求出滿足上述方程組的監(jiān)督位c?(i=0,1,??,m一1)。?例
2、如,用以上方法,很容易求出[7,4,3]漢明碼的監(jiān)督矩陣:?及編碼所對應(yīng)的碼字為C=011001。clear????m=3;????????%給定m=3的漢明碼[h,g,n,k]=hammgen(m);??msg=[0?0?0?1;0?0?0?1;0?0?0?1;0?0?1?1;0?0?1?1;0?1?0?1;0?1?1?0;0?1?1?1;1?0?0?0;1?0?0?1;1?0?1?0;1?0?1?1;1?1?0?0;1?1?0?1;1?1?1?0;1?1?1?1];?code=encode(msg,n,k,'hamming/bi
3、nary')???????%編碼?C=mod(code*h',2)????%對伴隨式除2取余數(shù)newmsg=decode(code,n,k,'hamming/binary')????%解碼?d_min=min(sum((code(2:2^k,:))'))????????????%最小碼距?運(yùn)行結(jié)果:>>hangmingcode=10100011010001101000101000110100011110010110001100010111110100001110010011010100101110111000001101010111
4、01111111C=000000000000000000000000000000000000000000000000newmsg=0001000100010011001101010110011110001001101010111100110111101111d_min=3clear????m=3;????????%給定m=3的漢明碼[h,g,n,k]=hammgen(m);??msg=[0?0?0?1;0?0?0?1;0?0?0?1;0?0?1?1;0?0?1?1;0?1?0?1;0?1?1?0;0?1?1?1;1?0?0?0;1?
5、0?0?1;1?0?1?0;1?0?1?1;1?1?0?0;1?1?0?1;1?1?1?0;1?1?1?1];?code=encode(msg,n,k,'hamming/binary')???????%編碼?subplot(121)plot(code)C=mod(code*h',2)????%對伴隨式除2取余數(shù)newmsg=decode(code,n,k,'hamming/binary')????%解碼?subplot(122)plot(newmsg)d_min=min(sum((code(2:2^k,:))'))?????????
6、???%最小碼距?運(yùn)行結(jié)果: