循環(huán)碼實驗報告_第1頁
循環(huán)碼實驗報告_第2頁
循環(huán)碼實驗報告_第3頁
循環(huán)碼實驗報告_第4頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、循環(huán)碼實驗報告 湖 南 大 學 信息科學與工程學院 實 驗 報 告 實驗名稱 香農(nóng)編碼 課程名稱 信息論與編碼 1 、實驗?zāi)康?(1)進一步熟悉循環(huán)編碼、譯碼算法; (2)掌握 c 語言程序設(shè)計和調(diào)試過程中數(shù)值的進制轉(zhuǎn)換、數(shù)值與字符串之間的轉(zhuǎn)換等技術(shù)。 2、 、 實驗要求 (1)輸入:7 位信息序列 (2)輸出:輸出(11,7)循環(huán)碼 3、 、 循環(huán)碼 編碼算法 一個碼長為 n 的(n,k)循環(huán)碼,它必為按模 xn+1 運算的一個余式。 cn-1(x) =c0 xn-1+cn-1xn- ci (x) xi c(x) mod (xn + 1) 循環(huán)碼完全由其碼組長度 n 和生成多項式 g(x)所

2、決定 生成多項式 g(x)具有以下特性: (1) g(x)是一個常數(shù)項為 1 的 r=n-k 次多項式; (2) g(x)是 1 +nx 的一個因式; (3)該循環(huán)碼中其它碼多項式都是 g(x)的倍式。 g(x), xg(x) , xk-1g(x) 如果 g(x)是一個 n k = r 次多項式,并且是 xn+1 的一個因式,則 g(x)生成一( n , k )循環(huán)碼。 任何(n,k)循環(huán)碼的全體碼字都是由一個 n-k=r 次多項式生成。 ïïïþïïïýüïïïî

3、ïïïíì=- - - - - - - - -0 1 10 1 10 1 10 1 1. 0 . 000.0 . 0 . 000 . 00 . 00 . 000 .g g g gg g g gg g g gg g g ggk n k nk n k nk n k nk n k n 生成矩陣 可見 h 矩陣可由下述的多項式矩陣的系數(shù)構(gòu)成,即由 h(x)的反多項式 h*(x)循環(huán)移位得到 r組互不相關(guān)的多項式系數(shù)矢量構(gòu)成。稱 h 為循環(huán)碼的一致監(jiān)督矩陣 定義一個矩陣是生成矩陣還是監(jiān)督矩陣,主要是看它們在編碼過程中所起的作用。由于 h矩陣與 g 矩陣彼

4、此正交,所以兩者的作用可以互換。若 g(x)生成一(n,k)循環(huán)碼,那么 h*(x)可生成(n,n-k)循環(huán)碼,h(x)亦也作為生成多項式得到一(n,n-k)循環(huán)碼。 h*(x) = x k h(x 以 g(x)作為生成多項式生成的 (n,k)循環(huán)和以 h*(x)作為生成多項式生成的 (n,n-k)循環(huán)碼互為對偶碼,而以 g(x)作為生成多項式生成的 (n,k)循環(huán)碼和以 h(x)作為生成多項式生成的 (n,n-k)循環(huán)碼互為等效對偶碼。 設(shè)待編碼的信息序列為 i=cn- - - i(x)=cn-1xk-1+cn-2xk-2+cn-k 一般系統(tǒng)循環(huán)碼的編碼可由下述三個步驟完成: (1) 先用

5、xn- 乘以 i(x),這相當于用移位寄存器 將信息序列移位 n-k 位。 (2) 用生成多項式 g(x)除 xn-ki(x),得到余式 v(x), 即構(gòu)成監(jiān)督碼元位 (3) 輸出 k 個未變化的信息元,cn-1,cn-2,cn-3,cn-k, 其后緊隨 n-k 個監(jiān)督碼元輸出。 編碼電路的關(guān)鍵是如何構(gòu)造一個以 g(x)為除式, 以 xn-ki(x)為被除式的除法電路。 4 4 、循環(huán)碼 譯碼: 1)由接收到的碼多項式 b(x)計算校正子(伴隨式)多項式 s(x); 2)由校正子 s(x)確定錯誤圖樣 e(x); 3)將錯誤圖樣 e(x)與 b(x)相加,糾正錯誤。 上述第(1)步運算和檢錯譯

6、碼類似,也就是求解 b(x)整除 g(x)的余式,第(3)步也很簡單。因此,糾錯碼譯碼器的復(fù)雜性主要取決于譯碼過程的第(2)步。 基于錯誤圖樣識別的譯碼器稱,它的原理圖如圖 8-7 所示。錯誤圖樣識別器是一個具有(n-k)個輸入端的邏輯電路,原則上可以采用查表的方法,根據(jù)校正子找到錯誤圖樣,利用循環(huán)碼的上述特性可以簡化識別電路。梅吉特譯碼器特別適合于糾正 2 個以下的隨機獨立錯誤。 梅基特譯碼器 5 5 、實驗代碼 #includestdio.h main() int i,j,k,wy=0; int total1287; int temp7=0,0,0,0,0,0,0; int s,ss; i

7、nt ydev5=0,0,0,0,0; int xdev5=1,0,0,1,1; int ye1116411; int in11; int end=6; int y6411; int e1111; /得到 7 位所有源碼 for(i=0;i128;i+) for(j=0;j7;j+)totalij=tempj; s=temp0*64+temp1*32+temp2*16+temp3*8+temp4*4+temp5*2+temp6*1;/ 轉(zhuǎn)換為 10 進制 s+;/加一 ss=s; for(k=6;k=0;k-)/轉(zhuǎn)換為二進制 tempk=ss%2; ss=ss/2; for(i=0;i128;

8、i+)/求 64 位 第七位為 1 的碼 if(totali6=1) for(j=0;j7;j+) ywyj=totalij; for(;j11;j+) ywyj=0; wy+; wy=0; while(wy64) /把前面的五位信息位賦給保存上位模二加后的數(shù)組中,而由其初始化知后兩位開始為 0 for(i=0;i5;i+)ydevi=ywyi; while(end!=0) /做除法 11101 需要六次移位,由 end 進行判斷除法是否結(jié)束 if(ydev0=0) ydev0=ydev1;ydev1=ydev2;ydev2=ydev3;ydev3=ydev4;ydev4=ywy11-end;

9、 end-; /end 為 0 時若 ydev0=0 則停止若為 1 則還有一次運算 if(ydev0=1) for(j=0;j5;j+) ydevj=(ydevj+xdevj)%2; for(j=1;j5;j+) ywyj+6=ydevj; printf(%dt,wy+1); for(j=0;j7;j+) printf(%d,ywyj); printf(t 此信息對應(yīng)的循環(huán)碼為:); for(j=0;j11;j+)printf(%d,ywyj); printf(n); end=6;wy+; printf(n); getchar(); /*生成一位錯誤圖樣*/ printf(一位錯誤圖樣:n); for(i=0;i11;i+) ei10-i=1; for(j=0;j11;j+) if(j!=(10-i) eij=0; /*加到源碼中*/ for(k=0;k11;k+) for(i=0;i64;i+) for(j=0;j11;j+) ye1kij

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論