




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 Hamming碼的編碼和譯碼的Java程序1 程序設(shè)計(jì)理論依據(jù)程序設(shè)計(jì)的理論基礎(chǔ)是漢明碼的定義漢明碼的定義是一個(gè)線性分組碼,它的最小Hamming距離為3,能糾正全部一位錯(cuò)誤,它的校驗(yàn)矩陣H由全部-1個(gè)長度為r的非0,相異的二元列矢量組成.二元Hamming碼是完備碼.Hamming碼是一類非常重要的線性分組碼,它能糾正全部一位錯(cuò)誤,而且譯碼編碼都非常簡單接收矢量的伴隨式等于校驗(yàn)矩陣H中與出錯(cuò)位對(duì)應(yīng)的列矢量之和.因此,與可糾正的錯(cuò)誤形式對(duì)應(yīng)的H矩陣列矢量之和不應(yīng)為0 而且彼此可以區(qū)分,對(duì)于能糾正一位錯(cuò)誤的線性碼來說就是要求它的校驗(yàn)矩陣中每一列矢量是非0矢量同時(shí)要求每一列矢量彼此相異.因?yàn)槿绻?/p>
2、H中有一列0矢量,則與該列對(duì)應(yīng)的比特錯(cuò)誤就不可能被檢測出來.另外如果H中有2列矢量完全相同,則不可能區(qū)分與這2列矢量相對(duì)應(yīng)的2個(gè)比特錯(cuò)誤形式如果校驗(yàn)矩陣H有r=n-k 行, 則總共有-1個(gè)不相同的非0 r維列矢量.例如r=3,則存在-1個(gè)不同的列矢量 2 程序設(shè)計(jì)思想給出校驗(yàn)矩陣H 生成矩陣輸入碼為(7,4)Hamming碼,所有可能接收的編碼總數(shù)為 個(gè),由G生成的編碼數(shù)為16個(gè),H與這16個(gè)碼相乘得到的伴隨式為S=000 即S=HY如S=001 根據(jù)校驗(yàn)矩陣H, Y的第8位出錯(cuò),將Y的第8位異或1即該位求反將結(jié)果作為X'輸出3 算法根據(jù)教材3.1 給出校驗(yàn)矩陣H 和待處理的編碼矩Y3
3、.2 計(jì)算每個(gè)編碼對(duì)應(yīng)的伴隨式 3.3 如果S等于0 , 輸出=y3.4如果S等于H的某一列,例如S= ,對(duì)Y 的第i個(gè)分量求反將該位異或1,將結(jié)果作為輸出4 總結(jié) 根據(jù)教材中提供的算法,用筆算和觀察法進(jìn)行Hamming碼的編碼和譯碼是簡單易行的方法但用程序處理則要對(duì)數(shù)據(jù)結(jié)構(gòu)精心安排,能夠在Java語言中沒有提供二進(jìn)制數(shù)據(jù)類型的情況下以二進(jìn)制的方式處理并以二進(jìn)制的形式輸出數(shù)據(jù). 另外根據(jù)計(jì)算得到的伴隨式確定S在H中的列位置也需要技巧,盡管用觀察法很簡單.5 該程序從設(shè)計(jì)到最后檢驗(yàn)正確無誤本文提供的Hamming碼的編碼和譯碼的Java程序經(jīng)過與筆算和觀察法對(duì)比,在可靠性上兩者是完全一致的.如果
4、有充分的時(shí)間進(jìn)行完善,修改還可用于線性碼的編碼和譯碼.import java.awt.*; import java.io.*;import java.lang.*;public class Array50public static void main(String args)int Sbefore=new int30317;int S =new int3031;int ST =new int3013;int HT =new int 713;int nC =new int30;int counter,check,sign=0,finish;int i,j,k,r;int H=0,1,1,1,1,
5、0,0, 1,0,1,1,0,1,0, 1,1,0,1,0,0,1;int C=0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,0,1,1, 1,1,0,1,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,1, 1,0,0,0,1,0,1,1,0,0,1,1,1,1,1,1,0,1,0,1,0; int z =1,3,5; intnColumn=999; System.out.println("打印輸入二進(jìn)制代碼矩陣H"); for(r=0;r<C.length;r+) System.out.print(" C&quo
6、t;+r+"="); for(j=0;j<H0.length;j+) for(k=0;k<H00.length;k+) System.out.print(""+Crjk); System.out.println(); for(i=0;i<H.length;i+) counter=0; for(j=0;j<H0.length;j+) for(k=0;k<H00.length;k+) HTkji=Hijk; counter+;/ if(counter%3=0) System.out.print(" "); /
7、 System.out.println(""); System.out.println(); System.out.println("打印校驗(yàn)矩陣H"); for(i=0;i<HT.length;i+) counter=0; System.out.print("H"+i+"="); for(j=0;j<HT0.length;j+) for(k=0;k<HT00.length;k+) HTijk=Hkji; System.out.print(""+HTijk); counter+
8、; if(counter%3=0) System.out.print(" "); System.out.println(""); for(r=0;r<C.length;r+) for(i=0;i<H.length;i+) counter=0;/ System.out.print("Sbefore"+r+""+i+"="); for(j=0;j<H0.length;j+) for(k=0;k<H00.length;k+) Sbeforerijk=Hijk&Crjk;
9、/ System.out.print(""+Sbeforerijk); counter+;/ if(counter%7=0) System.out.print(" "); / System.out.println(""); for(r=0;r<C.length;r+) for(i=0;i<Sbefore0.length;i+) counter=check=0; for(j=0;j<Sbefore00.length;j+) for(k=0;k<H00.length;k+) if(Sbeforerijk=1) ch
10、eck=1; Srij=check; System.out.println(); System.out.println("打印伴隨式H"); for(i=0;i<C.length;i+) counter=0; System.out.print("S"+i+"="); for(j=0;j<ST0.length;j+) for(k=0;k<ST00.length;k+) STijk=Sikj; System.out.print(""+STijk); counter+; if(counter%3=0)
11、System.out.print(" "); System.out.println(""); for(r=0;r<C.length;r+)/ System.out.print(" S"+r+"="); for(i=0;i<S0.length;i+) counter=0; for(j=0;j<S00.length;j+)/ System.out.print(" S"+r+""+i+""+j+"="+Srij); / Sy
12、stem.out.print(""+Srij); counter+;/ if(counter%3=0) System.out.println(); System.out.println(); try System.in.read(); catch(Exception e) for(r=0;r<C.length;r+) finish=0; for(k=0;k<H00.length;k+) sign=0; / for(i=0;i<H.length;i+) for(j=0;j<H0.length;j+)/ System.out.println("
13、 S"+r+""+i+""+j+"="+Srij); try System.in.read(); catch(Exception e) System.out.println("begin"); for(r=0;r<C.length;r+) finish=0; nColumn=999; for(i=0;i<HT.length;i+)/ sign=0; / for(j=0;j<HT0.length;j+) for(k=0;k<HT00.length;k+) System.out.pri
14、ntln(" HT"+r+""+i+""+j+""+k+"="+STijk); if(HTijk!=STrjk) sign=1; break; else sign=0; if(sign=1) finish=0; break; else finish=1; if(finish=1)&&(i<HT.length) nColumn=i; break; if(nColumn>HT.length) System.out.println(" No error recei
15、ve=input"); else System.out.println("1 erroer occured in the position "+nColumn); System.out.println("system has change it"); Cr0nColumn=1; try System.in.read(); catch(Exception e)程序輸出如下所示輸入二進(jìn)制代碼矩陣 C0=0001111 C1=1001111 C2=1101011 C3=1101110 C4=1000100 C5=1101001 C6=1000101
16、C7=1001111 C8=1101010對(duì)應(yīng)伴隨式SS0=000S1=011S2=010S3=111S4=111S5=000S6=110S7=011S8=011出錯(cuò)位置 C0=0001111 No error receive=input C1=1001111 1 erroer occured in the position 0 system has change it C2=1101011 1 erroer occured in the position 5 system has change it C3=1101110 1 erroer occured in the position 3 system has change it C4=1000100 1 erroer occured in the position 3 system has change it C5=1101001 No error receive=input C6=1000101 1 erroer occured in the position 2 s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025商業(yè)大廈工程地基處理合同
- 2025股權(quán)轉(zhuǎn)讓典當(dāng)合同AA
- 2025解除土地租賃合同書
- 2025租賃合同出租
- 電商行業(yè)個(gè)性化營銷與用戶體驗(yàn)提升方案
- 2025年度個(gè)人與個(gè)人抵押借款合同(標(biāo)準(zhǔn)版)
- 2025授權(quán)代理銷售合同
- 2025合同法規(guī)定解除權(quán)法律法規(guī)匯編
- 供應(yīng)鏈管理倉儲(chǔ)與庫存管理指南
- 新零售背景下智慧物流平臺(tái)搭建及智能化技術(shù)應(yīng)用
- 孕期妊娠期糖尿病
- 建設(shè)項(xiàng)目環(huán)境保護(hù)管理?xiàng)l例
- 中國心力衰竭診斷和治療指南2024解讀(完整版)
- 硬件測試崗位招聘筆試題及解答(某大型集團(tuán)公司)
- 幼兒園小班健康《太陽感冒了》課件
- 醫(yī)學(xué)教程 《小兒腹瀉》課件
- 勝利油田吊裝作業(yè)安全管理實(shí)施細(xì)則
- 2024年高三歷史總復(fù)習(xí)備考高中歷史階段特征(素材)
- 期末 (試題) -2024-2025學(xué)年教科版(廣州)英語四年級(jí)上冊
- 開關(guān)電源之雷擊浪涌分析之典型的雷擊測試和對(duì)策以及小技巧
- 北師大版二年級(jí)下冊數(shù)學(xué)教案(含教學(xué)反思)
評(píng)論
0/150
提交評(píng)論