糾錯(cuò)編碼基本實(shí)驗(yàn)matlab實(shí)現(xiàn)包含源代碼_第1頁
糾錯(cuò)編碼基本實(shí)驗(yàn)matlab實(shí)現(xiàn)包含源代碼_第2頁
糾錯(cuò)編碼基本實(shí)驗(yàn)matlab實(shí)現(xiàn)包含源代碼_第3頁
糾錯(cuò)編碼基本實(shí)驗(yàn)matlab實(shí)現(xiàn)包含源代碼_第4頁
糾錯(cuò)編碼基本實(shí)驗(yàn)matlab實(shí)現(xiàn)包含源代碼_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)驗(yàn)四糾錯(cuò)編碼基本實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康?、 通過實(shí)驗(yàn)理解線性分組碼的基本原理;2、 練習(xí)根據(jù)理論分析自行設(shè)計(jì)實(shí)驗(yàn)方法的能力。二、 實(shí)驗(yàn)內(nèi)容1、已知一(10,4)線性分組碼的生成矩陣為10011101111110001110G=01101101011101111001試用Matlab求出該碼的全部碼字和最小漢明距離。2、用Matlab求x1+1的所有因子,構(gòu)造(15,4)循環(huán)碼的所有可能的生成多項(xiàng)式;選擇其中一個(gè)作為(15,4)循環(huán)碼的生成多項(xiàng)式,求出所有的許用碼字,并計(jì)算最小漢明距離。三、實(shí)驗(yàn)原理1、線性生成碼的原理線性分組碼的構(gòu)成方式是把信息序列分成每k個(gè)碼元一段,并由這k個(gè)碼元按一定規(guī)則產(chǎn)生r個(gè)校驗(yàn)位,組成長度為n=k+r的碼字,用(n,k)表示信息碼元與校驗(yàn)位之間為線性關(guān)系。一個(gè)[n,k]線性分組碼,是把從信源輸出的以k個(gè)碼元為一組的信息組m,通過信道編碼器后,變成長度為nNk的碼組(碼字)c作為[n,k]線性分組碼的一個(gè)碼字。設(shè)GF(q)是一個(gè)含有q個(gè)元素的有限數(shù)域,若每位碼元的取值有q種(取自GF(q)),則信息組m共有qk種不同的狀態(tài),因此,需要qk個(gè)碼字c。而長為n的數(shù)組共有qn個(gè),二進(jìn)制時(shí)(q=2)共有2n個(gè)。顯然,qn個(gè)n維向量組成有限域GF(q)上的一個(gè)n維線性空間V,編碼就是要在這個(gè)n維線性空間中選出qk個(gè)向量作為合法碼字,其余的qn-qk個(gè)向量為禁用碼字。如果選出的qk個(gè)作為合法碼字的向量的集合構(gòu)成了V的一個(gè)k維線性子空間,則稱它是一個(gè)q進(jìn)制[n,k]線性分組碼。如果值取自GF(q)上的[n,k]分組碼的qk個(gè)碼字的集合C,便構(gòu)成了有限域GF(q)上的n維線性空間V的一個(gè)k維線性子空間,則稱C是一個(gè)q進(jìn)制[n,k]線性分組碼。2、循環(huán)碼的編碼原理在編碼時(shí),首先需要根據(jù)給定循環(huán)碼的參數(shù)確定生成多項(xiàng)式g(x),也就是從^+1的因子中選一個(gè) (n-k)次多項(xiàng)式作為g(x);然后,利用循環(huán)碼的編碼特點(diǎn),即所有循環(huán)碼多項(xiàng)式A(x)都可以被g(x)整除,來定義生成多項(xiàng)式g(x)。根據(jù)上述原理可以得到一個(gè)較簡單的系統(tǒng)循環(huán)碼編碼方法:設(shè)要產(chǎn)生(n,k)循H_R環(huán)碼,m(x)表示信息多 項(xiàng)式,則其次數(shù)必小于k,而" ?m(x)的次數(shù)必小于n,用X ?m(x)除以g(x),可得余數(shù)r(x),r(x)的次 數(shù)必小于(n-k),將r(x)加到信息位后作監(jiān)督位,就得到了系統(tǒng)循環(huán)碼。下面就將以上各步處理加以解釋:H_k用X-乘m(x)。這一運(yùn)算實(shí)際上是把信息碼后附加上(n-k)個(gè)“0”。例

, ,、心一、. 、_,一 ,、/ , , ,E 淫>如,信息碼為110,它相當(dāng)于m(x)=x+x。當(dāng)n-k=7-3=4時(shí),工?m(x)=x+工,-Mlj-r(x)。它相當(dāng)于1100000。而希望的到得系統(tǒng)循環(huán)碼多項(xiàng)式應(yīng)當(dāng)是A(x)二廠?m(r(x)。求r(x)。由于循環(huán)碼多項(xiàng)式A(x)都可以被g(x)整除,也就是:=工"=疽止.*)+『_(■因此,用" ?m(x)除以g(x),就得到商Q(x)和余式r(x),即這樣就得到7r(x)。編碼輸出系統(tǒng)循環(huán)碼多項(xiàng)式A(x)為:龍.二工"一氐?叭兀)+心)例如,對于(7,3)循環(huán)碼,若選用+疽+,+1,信息碼110時(shí),則/十f t2r\工'+1/+疽+"廣"h—+E11000001d10101 =111+ 10111 10111這時(shí)的編碼輸出為:1100101。四、具體實(shí)驗(yàn)方法1、對于問題一,已知線性分組碼的生成矩陣G,因?yàn)橐a(chǎn)生系統(tǒng)碼,而給定的生成矩陣不是典型生成矩陣,因此首先要將G通過一系列初等行變換,變?yōu)榈湫蜕删仃?。然后利用碼組矩陣A等于信息矩陣C與典型生成矩陣G的乘積,將所得的矩陣A按照異或運(yùn)算的規(guī)則進(jìn)行相應(yīng)的處理,即可求得所有的生成碼字矩陣A(A中每一行為一個(gè)生成碼字),將生成碼字矩陣A的每一行與其他行進(jìn)行比較,如果對應(yīng)值相同則為0,不同則為1,將比較所得的結(jié)果保留在一個(gè)與A矩陣列數(shù)相同的矩陣M中,再對M中的所有行求和,則得到任意兩個(gè)碼字的漢明距離S,對所得結(jié)果S求最小值,即得到最小漢明距離。2、對于問題二,首先利用函數(shù)cyclpoly函數(shù)來產(chǎn)生(15,4)循環(huán)碼的所有可能的生成多項(xiàng)式,然后在所有可能的生成多項(xiàng)式中任選一個(gè)作為(15,4)循環(huán)碼的生成多項(xiàng)式g,任選一個(gè)信息碼元m1求其對應(yīng)的循環(huán)碼字,具體過程如下:

將信息碼元m1*x”11,即將信息碼元左移11位,并將其由多項(xiàng)式形式轉(zhuǎn)化為矩陣形式m2用g除m2得到余數(shù)R,由于在求解余數(shù)時(shí)是按照一般的算術(shù)運(yùn)算計(jì)算的,而實(shí)際要求的為模2運(yùn)算,所以要經(jīng)過適當(dāng)?shù)霓D(zhuǎn)化,轉(zhuǎn)化為模2運(yùn)算,得到符合要求的R將m2與R相加,即得到對應(yīng)于信息碼為m1的碼字T將得到的碼字T進(jìn)行循環(huán)移位運(yùn)算,即得到所有碼字利用與問題一同樣的方法即可得到最小漢明距離五、實(shí)驗(yàn)源代碼、仿真結(jié)果及分析1、已知一(10,4)線性分組碼的生成矩陣為101001111100011011101110111011101010111001試用Matlab求出該碼的全部碼字和最小漢明距離。(1)源代碼G=[1001110111;1110001110;0110110101;1101111001]%生成矩陣%將生成矩陣標(biāo)準(zhǔn)化,化為典型生成矩陣B1=G(2,:),G(2,:)=G(3,:),G(3,:)=B1; %交換第2、3行的位置G(3,:)=(~G(3,:)&G(2,:))|(G(3,:)&(~G(2,:))); 9將第2行的數(shù)據(jù)與第3行的數(shù)據(jù)進(jìn)行異或運(yùn)算作新的第3行的值G(4,:)=(~G(4,:)&G(2,:))|(G(4,:)&(~G(2,:))); %務(wù)第2行的數(shù)據(jù)與第4行的數(shù)據(jù)進(jìn)行異或運(yùn)算作為新的第4行的值G(1,:)=(~G(1,:)&G(3,:))|(G(1,:)&(~G(3,:))); %將第3行的數(shù)據(jù)與第1行的數(shù)據(jù)進(jìn)行異或運(yùn)算作為新的第1行的值G(4,:)=(~G(4,:)&G(3,:))|(G(4,:)&(~G(3,:))); %將第3行的數(shù)據(jù)與第4行的數(shù)據(jù)進(jìn)行異或運(yùn)算作為新的第4行的值B2=G(1,:),G(1,:)=G(3,:),G(3,:)=B2; %交換第1、3行的位置G(2,:)=(~G(2,:)&G(4,:))|(G(2,:)&(~G(4,:))); 9將第4行的數(shù)據(jù)與第2行的數(shù)據(jù)進(jìn)行異或運(yùn)算作為新的第2行的值G(2,:)=(~G(2,:)&G(3,:))|(G(2,:)&(~G(3,:))); 9將第3行的數(shù)據(jù)與第2行的數(shù)據(jù)進(jìn)行異或運(yùn)算作為新的第2行的值G(4,:)=(~G(4,:)&G(3,:))|(G(4,:)&(~G(3,:))); %將第3行的數(shù)據(jù)與第4行的數(shù)據(jù)進(jìn)行異或運(yùn)算作為新的第4行的值B3=G(3,:),G(3,:)=G(4,:),G(4,:)=B3; %交換第3、4行的位置%信息位碼元矩陣為CC=[0000;0001;0010;0011;0100;0101;0110;0111;1000;1001;1010;1011;1100;1101;1110;1111]%生成的含有全部碼字的矩陣AA=C*Gfori=1:16forj=1:10if(A(i,j)==2)|(A(i,j)==4)A(i,j)=0;endifA(i,j)==3A(i,j)=1;endendend %由于進(jìn)行乘法運(yùn)算中各數(shù)是進(jìn)行加和,必須改為異或運(yùn)算,即使生成矩陣中只含有0和1,以上即是運(yùn)用異或運(yùn)算的規(guī)則進(jìn)行轉(zhuǎn)化%求最小漢明距離t=1;fori=1:15forj=i+1:16M(t,:)=(A(i,:)~=A(j,:));t=t+1;endend %分別比較兩行中不同的元素S=(sum(M,2))'%將M矩陣的每一行求和,得出任意兩個(gè)碼字之間的距離d=min(S)%最小漢明距離(2)仿真結(jié)果以及仿真分析將生成矩陣進(jìn)行標(biāo)準(zhǔn)化,化為典型生成矩陣如下:1□0□11101101000011100□1□11101100010011□0分析及說明:通過一系列的初等行變換將最開始的一般生成矩陣轉(zhuǎn)換為典型生成矩陣,由以上矩陣G可知,為一個(gè)標(biāo)準(zhǔn)矩陣。全部碼字如下:000000000000010011000010111011001111011101000011100101000a100110110101011111100110001110111001110111101a000a001011001i001100110i01110111100111100011101111000010說明以及分析:矩陣A的每一行表示(10,4)線性分組碼的一個(gè)碼字,每一個(gè)碼字由10位構(gòu)成,包括四位信息位和六位監(jiān)督位??芍?,(10,4)線性分組碼總共有16個(gè)許用碼字。任意兩個(gè)碼字之間的漢明距離如下:ColuniusLLhroiigh£1CqIutihi££through42CqIutiile43thrflngjiB3跖Luir*64thmigh.B4Cc-Iuiteilg85thiraugh.105「,*LuiT皿£LOBtlfl-CTLglt120最小漢明距離為d=22、用Matlab求x1+1的所有因子,構(gòu)造(15,4)循環(huán)碼的所有可能的生成多項(xiàng)式;選擇其中一個(gè)作為(15,4)循環(huán)碼的生成多項(xiàng)式,求出所有的許用碼字,并計(jì)算最小漢明距離。symsxG=cyclpoly(15,4,'all')symsxG=cyclpoly(15,4,'all')g=G(2,:)%求出所有的生成多項(xiàng)式%選擇任意一個(gè)作為(15,4)循環(huán)碼的生成多項(xiàng)式

%監(jiān)督位數(shù)%信息碼元%監(jiān)督位數(shù)%信息碼元%用x"r乘以ml,相當(dāng)于對ml進(jìn)行左移r位的操作%將多項(xiàng)式轉(zhuǎn)化為矩陣表示形式%求m2除以g所得的余數(shù)m1=x"3+x"2+1m11=expand(x"r*m1)m2=sym2poly(m11)[Q,R]=DECONV(m2,g)R=abs(R)fori=1:length(R)ifR(i)==2R(i)=0end%由于在求解余數(shù)時(shí)是按照一般的算術(shù)運(yùn)算計(jì)算的而實(shí)際要求的為模2運(yùn)算,轉(zhuǎn)化為模2運(yùn)算%丁為生成的一個(gè)循環(huán)碼字%由于在求解余數(shù)時(shí)是按照一般的算術(shù)運(yùn)算計(jì)算的而實(shí)際要求的為模2運(yùn)算,轉(zhuǎn)化為模2運(yùn)算%丁為生成的一個(gè)循環(huán)碼字T=R+m2T2(1,:)=Tfori=1:14T2(i+1,:)=circshift(T2(i,:),[0,1])end %T2為將得到的第一個(gè)循環(huán)碼字進(jìn)行循環(huán),得到其他的碼字Y=[zeros(1,15);T2] %丫矩陣為生成的全部碼字%求最小漢明距離t=1;fori=1:15forj=i+1:16M(t,:)=(Y(i,:)~=Y(j,:));t=t+1;endend %分別比較兩行中不同的元素S=(sum(M,2))' 別將M矩陣的每一行求和,得出任意兩個(gè)碼字之間的距離d=min(S) %最小漢明距離(2)仿真結(jié)果構(gòu)造出(15,4)循環(huán)碼的所有可能的生成多項(xiàng)式如下:G=1100011000111001101011111111□1□11□□1配=x"11+k"8-hc"7+x"5+k烏版"+k+1N二—11和"葉—9七(“8枝"6+3'司+><:3十11說明以及分析:矩陣G的每一行為一個(gè)生成多項(xiàng)式的矩陣表示形式,g1、g2、g3為(15,4)循環(huán)碼的所有生成多項(xiàng)式,可知總共有三個(gè)生成多項(xiàng)式的。2)選擇g=[1 0 0 1 1 0 1 0 1 1 11]作為生成多項(xiàng)式,得到的所有許用碼字如下:00000000000D0C1101011110010C01101011110D1C1U11U1U1111JJ01J00110101111D0C010011010111L0C001001101011L1C000100110101111]0001001101111110001001101D11111000100113101111100010011D1CL1111UUU1UU1L01J01111000103L1C010111100013D11101011110001D01說明以及分析:矩陣Y的每一行表示(15,4)循環(huán)碼的一個(gè)許用碼字,每一個(gè)許用碼字有15位構(gòu)成,包括四位信息位和十一位監(jiān)督位。可知,(15,4)循環(huán)碼總共有16個(gè)許用碼字。3)最小漢明距離先求任意兩個(gè)碼字之間的漢明距離為

Colijjms]through2TSJS8 E-5JS593 S35Coltnins2Bthrough5。8ba3S ii :!:E85a:!:5a8E85Coli-ums55through3J3a88 ?i: 3E8ia35a3E?5Colunns82throughtoaSBs8S £S 8二SBs8Bs8二8BColujuia109thtrough120通過對矩陣求最小值,可得最小漢明距離d=84)選擇g=[1 1 1 1 0 1 0 1 1 0 01]作為生成多項(xiàng)式,得到的所有許用碼字如下:0000000000JD00011u1u11uu1JD0J111101011001D0011111010110JL

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論