




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、( 7, 4) 循 環 碼 的 編 碼 和譯碼 精品文檔 程,可以把消息矢量用如下多項式表示: k 1 k 2 m(x) mk 1xmk 2 x. m1x m0 要編碼成系統循環碼形式,把消息比特移入碼字寄存器的最右邊 k nk 位,而把監督比特加在最左邊的 n-k個中,則要用 xn k乘以 m(x)得到 nk x n 1 n 2 n k 1 n k mk 1xmk 2x. m1xm0 x nk x m(x)= q(x) g(x)+ p(x) ,其中 p(x) 可以表示為 p(x)= p nk1 n k 1x. n 1n = mk 1 xmk 2x nk 另 U(x)= p(x)+ x n k
2、 p1x m(x), p0 nk1 m1x 則 U=( p0 , ,則 p(x)+ x nk m0 x + pn k 1x k m(x) k1 . p1x p0 p1, p2, pn,k 1 , m0 , 7,4)循環碼的編碼譯碼 編碼的實驗原理: 根據循環碼的代數性質建立系統編碼的過 m1 ,m k,1 )。 本實驗根據以上原理,用 matlab實現書上例 6.8 系統形式的循環 3 碼,生成多項式為 g(x)= 1 x x3 7,4)循環碼的編碼的程序如下: clear; clc; a=1 0 1 1; %高次項系數在前的生成多項式 Gx=1 0 1 1; %將數組 a 的高位依次放在數組
3、 Data的低位 Data=zeros(1,7); Data(1)=a(4); Data(2)=a(3); Data(3)=a(2); Data(4)=a(1); %Data 除以 Gx 得到余數 Rx 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 Qx,Rx=deconv(Data,Gx); b=Rx+Data; %將數組 b 的高位放在后面 c=b(1); b(1)=b(7); b(7)=c; c=b(2); b(2)=b(6); b(6)=c; c=b(3); b(3)=b(5); b(5)=c; %將數組 b 校正 for i=1:7 if rem(abs(b(i),2)=0 b(i
4、)=0;end end for i=1:7 if rem(abs(b(i),2)=1 b(i)=1;end end disp(輸入序列: ); 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 a disp(編碼輸出序列: ); b 程序運行結果為:輸入序列: a = 1 1 0 0 編碼輸出序列: b = 1 0 1 1 1 0 0 改變輸入序列 a=1 0 1 1,運行結果:輸入序列: a = 1 0 1 1 編碼輸出序列: b = 1 0 0 1 0 1 1 運行結果的編碼如下: 序號 輸入序列 輸出序列 序號 輸入序列 輸出序列 1 0000 000 0000 9 1000 110 10
5、00 2 0001 101 0001 10 1001 011 1001 3 0010 111 0010 11 1010 001 1010 4 0011 010 0011 12 1011 100 1011 5 0100 011 0100 13 1100 101 1100 6 0101 110 0101 14 1101 000 1101 7 0110 100 0110 15 1110 010 1110 8 0111 001 0111 16 1111 111 1111 譯碼的實驗原理 g(x)= 1 x,在x3( n,k)循環碼中,由于 g(x)能除盡 , n 因此 x 1 可分解成 g(x)和其他
6、因式的乘積,記為 xn 1 g(x)h(x) 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 即可寫成 h(x) 即 h (x) = x4 x2 x 1 則 h*(x)= x 4 x 3 ,x其中1 h (x)式 h(x) 的逆多項式。 監督矩陣多項式可表示為 x2h* (x) H(x) xh* (x) h*(x) 相對應的譯碼和糾錯(一位)程序如下: clear; clc; r=1 0 0 1 1 1 1; h=1,0,0;1,1,0;1,1,1;0,1,1;1,0,1;0,1,0;0,0,1; b=flipud(h); s=r*b; for i=1:3 if rem(abs(s(i),2)
7、=0 s(i)=0;end end for i=1:3 if rem(abs(s(i),2)=1 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 s(i)=1;end end if s=0 0 0 e=0 0 0 0 0 0 0 elseif s=1 0 0 e=0 0 0 0 0 0 1 elseif s=1 1 0 e=0 0 0 0 0 1 0 elseif s=1 1 1 e=0 0 0 0 1 0 0 elseif s=0 1 1 e=0 0 0 1 0 0 0 elseif s=1 0 1 e=0 0 1 0 0 0 0 elseif s=0 1 0 e=0 1 0 0 0 0 0
8、 else s=0 0 1 e=1 0 0 0 0 0 0 end u=r+e; for i=1:7 if rem(abs(u(i),2)=0 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 u(i)=0;end end for i=1:7 if rem(abs(u(i),2)=1 u(i)=1;end end Data=zeros(1,4); Data(1)=u(4); Data(2)=u(5); Data(3)=u(6); Data(4)=u(7); if e=0 0 0 0 0 0 0 disp(第幾位錯誤: ) k=0,else disp(第幾位錯誤: ) k=find(e) ;end
9、 disp(接受碼字 ) r disp(編碼輸出序列: ) Data 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 運行程序結果如下: e = 0 0 0 0 1 0 0 第幾位錯誤: k = 5 接受碼 r = 1 0 0 1 1 1 1 編碼輸出序列: Data =1 0 1 1 以上編碼有個缺點,就是它只能對一個消息矢量( 4 位)進行編 碼,我又在這個基礎上編寫了一個可以同時對位數是 4 的倍數的消 息矢量進行編碼,多位循環碼的編碼程序如下: clear; clc; a=1 1 0 0 1 0 1 1; X,N=size(a); %將信息碼分為 M 幀,1幀 4個信息碼 M=ceil
10、(N/4); d=zeros(1,4); b=zeros(1,7*M); Data=zeros(1,7); for k=1:M for j=1:4 d(j)=a(j+(k-1)*4);end %生成多項式 Gx=1 0 1 1; 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 Data(1)=d(4); Data(2)=d(3); Data(3)=d(2); Data(4)=d(1); %Data 除以 Gx 得到余數 Rx Qx,Rx=deconv(Data,Gx); e=Rx+Data; b(7*k-6:7*k)=e(1:7); c=b(1+(k-1)*7); b(1+(k-1)*7)=b
11、(7+(k-1)*7); b(7+(k-1)*7)=c; c=b(2+(k-1)*7); b(2+(k-1)*7)=b(6+(k-1)*7); b(6+(k-1)*7)=c; c=b(3+(k-1)*7); b(3+(k-1)*7)=b(5+(k-1)*7); b(5+(k-1)*7)=c; end for i=1:M*7 if rem(abs(b(i),2)=0 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 b(i)=0;end end for i=1:M*7 if rem(abs(b(i),2)=1 b(i)=1;end end disp(輸入序列: ); a disp(編碼輸出序列:
12、); b 程序運行結果如下:輸入序列: 1 1 0 0 1 0 1 編碼輸出序列: b = Columns 1 through 13 1 0 0 1 0 1 1 0 1 1 1 0 0 Column 14 1 相應的多位譯碼糾錯程序如下: clc; clear; 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 r=1 0 0 1 1 0 0 1 0 0 1 0 0 1 ; X,N=size(r); %將接收到的碼分為 M 幀,1幀 7個信息位 M=ceil(N/7); h=1,0,0;1,1,0;1,1,1;0,1,1;1,0,1;0,1,0;0,0,1; b=flipud(h); d=zer
13、os(1,7); U=zeros(1,4*M); Data=zeros(1,7*M); for i=1:M for j=1:7 d(j)=r(j+(i-1)*7);end s=d*b; for k=1:3 if rem(abs(s(k),2)=0 s(k)=0;end end for k=1:3 if rem(abs(s(k),2)=1 s(k)=1;end 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 end if s=0 0 0 e=0 0 0 0 0 0 0 elseif s=1 0 0 e=0 0 0 0 0 0 1 elseif s=1 1 0 e=0 0 0 0 0 1 0 el
14、seif s=1 1 1 e=0 0 0 0 1 0 0 elseif s=0 1 1 e=0 0 0 1 0 0 0 elseif s=1 0 1 e=0 0 1 0 0 0 0 elseif s=0 1 0 e=0 1 0 0 0 0 0 else s=0 0 1 e=1 0 0 0 0 0 0 end u=d+e; for k=1:7 if rem(abs(u(k),2)=0 u(k)=0;end 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 end for k=1:7 if rem(abs(u(k),2)=1 u(k)=1;end end Data(1+7*(i-1)=e(1); D
15、ata(2+7*(i-1)=e(2); Data(3+7*(i-1)=e(3); Data(4+7*(i-1)=e(4); Data(5+7*(i-1)=e(5); Data(6+7*(i-1)=e(6); Data(7+7*(i-1)=e(7); U(1+(i-1)*4)=u(4); U(2+(i-1)*4)=u(5); U(3+(i-1)*4)=u(6); U(4+(i-1)*4)=u(7); end if Data=zeros(1,7*M); 收集于網絡,如有侵權請聯系管理員刪除 精品文檔 m=0,else j,m=find(Data);end disp(第幾位錯誤: ); m disp(接收到的碼字: ); r disp(編碼輸出序列: ); U 運行結果如下:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省聯考聯盟2025屆化學高一下期末監測模擬試題含解析
- 供水公司窨井管理辦法
- 檔案項目流程管理辦法
- 農機人力資源管理辦法
- 村鎮門面出路管理辦法
- 制定項目招待管理辦法
- 小學生現代詩歌創作興趣培養研究
- 施工現場吊裝操作規范
- 校外機構應急管理辦法
- 工程技術:我國測量技術發展現狀與趨勢分析
- 2025區域型變電站智能巡視系統技術規范
- 財務報表編制與審核合同模板
- 上海閔行區教育系統招聘實驗員考試真題2024
- 建設部建設工程重大質量安全事故應急預案
- 2025年中航油招聘筆試參考題庫附帶答案詳解
- 2024年中國中高端電子鋁箔行業市場調查報告
- DB54∕T 0275-2023 民用建筑節能技術標準
- 2025年人教版小學五年級英語(下冊)期末試卷及答案
- 交通貨運企業-隱患排查治理和防控制度
- 中煙公司財務管理制度
- 《學習雷鋒精神爭主題班會》課件
評論
0/150
提交評論