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