資源描述:
《實驗三 漢明碼編碼與譯碼》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、實驗三漢明碼編碼與譯碼一、實驗題目1、寫一個錯誤生成器模塊,在給定的一個比特流作輸入時,它的輸出流的每個比特流都以概率p發(fā)生了改變,即比特錯誤概率為p。2、對m=3,將漢明碼編碼后的比特流輸入到上述模塊,然后對收到的字用譯碼器進行譯碼。二、實驗?zāi)康?、理解和掌握漢明碼編碼與譯碼的原理;三、算法設(shè)計四、程序分析1、錯誤生成模塊:任一給以p,系統(tǒng)任意生成一數(shù),若比p小則讓其出錯,否則不出錯。2、編碼:首先隨機生成H矩陣,由H矩陣生成G矩陣,利用C=mG編碼。3、解碼:若v*H’=0,則沒有出錯,直接輸出v中前k位;若v*H’!=0,列出所有的e和e*H’得到伴隨陣s,若能在s中找到s=v*H則c0
2、=v-e,輸出c0中前k位;若找不到s,則輸出“錯誤位數(shù)大于糾錯能力,無法解碼”。五、程序代碼#include#include//字符串處理頭文件#include//輸入輸出控制頭文件#include#include#includeusingnamespacestd;voidErr_Pro();voidHamming_Decode();intm,n,k,t,err,r,R[100],N[100],COUNT[100],num[100][100],Th[100][100],PT_S[100]
3、[100],PT_D[100][100];intH[100][100],HT[100][100],Ig[100][100],P[100][100],G[100][100],Ibit[100],Cbit[100],Err_Cbit[100],V[100];/**************************************************************************//*函數(shù)名:voidBinary_Conversion(inti)*//*功能:十-二進制轉(zhuǎn)換*//*說明:該函數(shù)輸出二進制數(shù)為低位在前,高位在后*//*********************
4、*****************************************************/voidBinary_Conversion(inti){intj=0,temp=0;do//生成完整n個二進制{temp=i%2;//判斷相應(yīng)最低位為0或1(若為2的倍數(shù)則為0,否則為1)i=i/2;//為考慮前一位為0或1做準備if(j5、********************//*函數(shù)名:voidRandom_Array()*//*功能:將數(shù)組的列隨機排放*//**************************************************************************/voidRandom_Array(){srand(unsigned(time(NULL)));//隨機生成條件(抵消rand函數(shù)偽隨機效果)cout<6、0;i隨機轉(zhuǎn)置系數(shù)矩陣}}}/**************************************************************************//*函數(shù)名:voidCreat_H()*//*功能:創(chuàng)建系統(tǒng)型奇偶校驗矩陣H*//*說明:系統(tǒng)型奇偶校驗矩陣H由轉(zhuǎn)置負系數(shù)
7、矩陣和單位矩陣組成*//**************************************************************************/voidCreat_H(){inti,j,count0=0,count1=0,count2=0,count3=0;/*************生成單位矩陣Ih************///教材P101for(i=0;i