【正文】
(312) 由此可知,若找到了生成矩陣G ,那么編碼方法就完全確定了。當(dāng)接收碼組有錯(cuò)時(shí),B與監(jiān)督矩陣的轉(zhuǎn)置相乘的積記為S,即: (316)上式中的S稱為校正子。它是在嚴(yán)密的代數(shù)學(xué)理論基礎(chǔ)上建立起來的。即如果是一個(gè)循環(huán)碼組,則、…也是該編碼中的碼組。在整數(shù)運(yùn)算中,有模n運(yùn)算。不過注意,在模2運(yùn)算中,用加法代替了減法。如前所述,這k個(gè)已知碼組必須是線性不相關(guān)的,否則,給定的信息位與編出的碼組就不是一一對(duì)應(yīng)的。在循環(huán)碼中除全0碼組外,再?zèng)]有連續(xù)k位均為0的碼組,即連0的長(zhǎng)度最多只能有位。所有碼多項(xiàng)式都可被整除,而且任一次數(shù)不大于的多項(xiàng)式乘都是碼多項(xiàng)式。用乘,這一運(yùn)算實(shí)際上是把信息碼后附加上個(gè)0。用這種方法編出的碼組,前面是原來的k個(gè)信息位,后面是個(gè)監(jiān)督位。因此,我們就以余項(xiàng)是否為零來判別碼組中有無錯(cuò)碼。不可檢錯(cuò)誤中的錯(cuò)碼數(shù)必定超過了這種編碼的檢錯(cuò)能力??s短循環(huán)碼與產(chǎn)生該碼的原循環(huán)碼至少具有相同的糾錯(cuò)能力,縮短循環(huán)碼的編碼和譯碼可用原循環(huán)碼使用的電路完成。它的編碼規(guī)則是:首先將原信息碼(kbit)左移r位運(yùn)用一個(gè)生成多項(xiàng)式(也可看成二進(jìn)制數(shù))用模2除上面的式子,得到的余數(shù)就是校驗(yàn)碼。例如:,(7,3)碼,信息碼110產(chǎn)生的CRC碼就是:對(duì)于的解釋:(都是從右往左數(shù))就是第五位是1,因?yàn)闆]有所以第2位就是0。BCH碼是以發(fā)明這種碼的三個(gè)人的名BoseChaudhuriHocguenghem來命名的。BCH碼的碼長(zhǎng)為奇數(shù)。 RS碼里德(Reed)和所羅門(Solomon)為非二進(jìn)制信道提出的一類分組碼(RS碼),RS碼具有很強(qiáng)的糾錯(cuò)能力,既可以糾正隨機(jī)錯(cuò),又可以糾正突發(fā)錯(cuò),在通信系統(tǒng)中應(yīng)用廣泛。若適當(dāng)?shù)剡x擇,就可得到a的各次冪,一直到次冪,都不相同,并且。q進(jìn)制BCH碼的特殊子類是RS碼,它有如下參數(shù):碼長(zhǎng)為,監(jiān)督元數(shù)目,能糾正t個(gè)錯(cuò)誤。對(duì)碼來說,源數(shù)據(jù)被分割為188符號(hào)一組,經(jīng)過編碼變換后,成為204符號(hào)長(zhǎng)度的碼字。如果在接收方檢測(cè)到余式不為0,則可判斷接收到的碼字有錯(cuò)誤。 第四章 漢明碼的MATLAB仿真及分析 MATLAB仿真軟件MATLAB(Matrix Laboratory)是由美國Math Works公司推出的一個(gè)為工程計(jì)算和數(shù)據(jù)分析而專門設(shè)計(jì)的高級(jí)交互式軟件包,它將科學(xué)計(jì)算,編程和結(jié)果的可視化都集中在一個(gè)非常方便的環(huán)境中。MATLAB語言可以被認(rèn)為是一種解釋性語言【12】,用戶可以在MATLAB的工作空間中鍵入一個(gè)命令,也可以應(yīng)用MATLAB語言編寫應(yīng)用程序,MATLAB軟件對(duì)此命令或程序中的各條語句進(jìn)行翻譯,然后在MATLAB環(huán)境中對(duì)它進(jìn)行處理,最后返回運(yùn)算結(jié)果。在大學(xué)環(huán)境中,它是很多數(shù)學(xué)類、工程和科學(xué)類的初等和高等課程的標(biāo)準(zhǔn)指導(dǎo)工具。對(duì)多數(shù)用戶十分重要的是,工具箱使你能學(xué)習(xí)和應(yīng)用專門的技術(shù)。依次進(jìn)行編碼,加入噪聲,糾錯(cuò)譯碼,計(jì)算誤碼率,最后得出當(dāng)分別加入0,1,2,…,20比特噪聲時(shí)的(7,4)漢明碼的誤碼率與信道中加入噪聲的概率對(duì)比圖。 0 1 0 0 1 1 0。 %T為編碼后的矩陣D=mod(D,ones(5,7)*2)。T2=T239。 1 0 1 1 0 0 1]。*X39。 if S==[0 0 1] R=xor(R,[0 0 0 0 0 0 1])。 elseif S==[1 0 1] R=xor(R,[0 0 1 0 0 0 0])。 end h=[h,R]。 %加噪聲t=jiucuo(T1)。 %解碼T=T39。 %f為誤碼率則漢明碼的誤碼率計(jì)算流程圖如下:圖44 漢明碼的誤碼率計(jì)算流程圖 漢明碼的MATLAB仿真本文以其中一種(7,4)漢明碼為例進(jìn)行MATLAB仿真,具體過程是將隨機(jī)產(chǎn)生的1行20列信碼分成每4位信碼一組,共5組,先對(duì)其進(jìn)行編碼得到5組(7,4)碼,之后依次加入(0~20)比特的噪聲并分別進(jìn)行糾錯(cuò)和誤碼率計(jì)算,最后得到的仿真圖是當(dāng)依次加入(0~20)比特噪聲時(shí)的信道誤碼率與(7,4)漢明碼的誤碼率比較圖。 %行列變換得輸入命令T=T(:,1:4) %解碼得 輸入命令:T=T39。 plot(x,j,39。信道中加入噪聲的概率(+)和漢明碼誤碼率(*)對(duì)比’)。 %加X軸說明 ylabel(39。 %加Y軸說明 x=x+1。b+39。當(dāng)只加入0,1bit噪聲時(shí),漢明碼的誤碼率為零,但隨著噪聲比特?cái)?shù)的增加,漢明碼的誤碼率和信道中錯(cuò)誤碼的概率都呈增加趨勢(shì),(7,4),這說明本文討論的(7,4)漢明碼只能糾錯(cuò)1位,其糾錯(cuò)能力不強(qiáng)。漢明碼的抗干擾能力較強(qiáng), 給它監(jiān)督位就能構(gòu)建出漢明碼。數(shù)字信號(hào)在傳輸過程中受到干擾的影響,為了提高信號(hào)的傳輸質(zhì)量,需要在信道中引入糾錯(cuò)編碼技術(shù),采用差錯(cuò)控制編碼,即使僅能糾正(或檢測(cè))這種碼組中1至2個(gè)錯(cuò)誤,即使是較簡(jiǎn)單的差錯(cuò)控制編碼也具有較大實(shí)際應(yīng)用價(jià)值。本論文主要研究數(shù)字通信系統(tǒng)中的線性分組碼。最后根據(jù)仿真得出的結(jié)果和現(xiàn)代數(shù)字通信系統(tǒng)對(duì)信道編碼的要求,討論了漢明碼的優(yōu)缺點(diǎn)。然后介紹了循環(huán)碼與BCH碼的相關(guān)概念以及理論。. Wireless Communication Circuits and Systems . Institution of Electrical Engineers 2004 .【23】 Miller, K . Communication theories. New York : McGrawHill, 2002.。最后討論了漢明碼的優(yōu)缺點(diǎn),并概括了全文。第2章簡(jiǎn)單介紹數(shù)字通信系統(tǒng)中采用差錯(cuò)控制編碼的必要性和目的,以及根據(jù)信道的分類而可以采用的各類糾錯(cuò)技術(shù),還有差錯(cuò)控制編碼的基本原理。介紹了它們的基本原理及特性,編解碼結(jié)構(gòu)并對(duì)其進(jìn)行性能分析。隨著差錯(cuò)控制編碼理論和數(shù)字技術(shù)的發(fā)展,差錯(cuò)控制編碼在各種通信系統(tǒng)中得到了廣泛的應(yīng)用。在實(shí)際應(yīng)用中常常存在各種突發(fā)干擾, 使連續(xù)多位數(shù)據(jù)發(fā)生差錯(cuò)。本文所討論的(7,4)漢明碼具有以下的特點(diǎn):信息位長(zhǎng):k=4監(jiān)督位長(zhǎng):r =3碼長(zhǎng)最小漢明距離:=3糾錯(cuò)能力:t=1 (由可得)漢明碼的編碼率R=k/n=(nr)/n=1r/n,實(shí)際上如果n很長(zhǎng),則R接近于1,所以漢明碼是一種高效碼,但它的糾錯(cuò)能力不強(qiáng)。 y=y+1。 for e=0:20 z=e/20。信道中加入噪聲的概率藍(lán)色(+)和漢明碼誤碼率紅色(*)39。添加噪聲的數(shù)目39。)。syms a T A G t T1 m r1 t1 H n X R S a1 x y z e f g c B p D T2 h j V U d k x=0。 1 1 0 1 0 1 0。 %行列變換,得到a1為糾錯(cuò)解碼后的輸出碼n=xor(a1,a)*ones(20,1)。T=T39。 %a為1行20列的矩陣t=bianma(a)。 elseif S==[1 1 1] R=xor(R,[1 0 0 0 0 0 0])。 elseif S==[1 0 0] R=xor(R,[0 0 0 0 1 0 0])。 S=R*H39。for p=1:5 X=[zeros(1,(p1)),1,zeros(1,(5p))]。 %把T2化成二進(jìn)制矩陣 則漢明碼的添加噪聲流程圖如下:圖42 漢明碼的添加噪聲流程圖3.糾錯(cuò)函數(shù)程序:function[h]=jiucuo(g)%函數(shù)用于糾錯(cuò)H=[1 1 1 0 1 0 0。 %r1為模擬信道矩陣t1=r1+c。 0 0 0 1 0 1 1]。 %T為輸出一個(gè)5行7列的(7,4)漢明碼編碼后的矩陣 %a為輸入一個(gè)1行20列的隨機(jī)矩陣A=A39。具有可用工具箱的領(lǐng)域有:信號(hào)處理,控制系統(tǒng)神經(jīng)網(wǎng)絡(luò),模糊邏輯,小波分析,模擬等等。因此,MATLAB被譽(yù)為“驗(yàn)算紙式的科學(xué)計(jì)算語言”。且提供了一種交互式的高級(jí)編程語言——M語言,利用M語言可以通過編寫腳本或者函數(shù)文件實(shí)現(xiàn)用戶自己的算法。因此可以采用循環(huán)碼的編碼方法,根據(jù)生成多項(xiàng)式組成BCH碼編碼器。如果用表示源字多項(xiàng)式,則可以按如下方式構(gòu)造碼字多項(xiàng)式:首先計(jì)算商式和余式:,取余式作為校驗(yàn)字;然后令,即將源字放置于碼字的前半部分,校驗(yàn)字放置于碼字的后半部分。RS碼可以部分地由m、n和k三個(gè)參數(shù)表示,例如8比特符號(hào)的碼。域中每個(gè)元素還可以用元素1, ,…,的和來表示。對(duì)于有限個(gè)符號(hào),若符號(hào)的數(shù)目是一素?cái)?shù)的冪,可以定義有加法和乘法,則稱這有限符號(hào)域?yàn)橛邢抻颍蝗羲莻€(gè)符號(hào)域,則稱之為伽羅華域。如果循環(huán)碼的生成多項(xiàng)式具有下面的形式: (320) 這里,t 是糾錯(cuò)個(gè)數(shù),是最小多項(xiàng)式,LCM表示取最小公倍式,則由這生成的循環(huán)碼為BCH碼,其最小碼距,能糾t個(gè)錯(cuò)誤。BCH碼就是為了解決這個(gè)問題而發(fā)展起來的一類糾正多個(gè)隨機(jī)錯(cuò)誤的循環(huán)碼,而且該碼的譯碼也比較容易實(shí)現(xiàn)。由于余數(shù)是1001,所以CRC碼是110,1001。由此得到定理: 也就是‘模2減’和‘模2加’直值表完全相同。循環(huán)冗余校驗(yàn)碼又叫CRC碼,是常用的檢測(cè)錯(cuò)誤碼。糾錯(cuò)可按下述步驟進(jìn)行:,得出余式;;,便得到已糾正錯(cuò)誤的原發(fā)送碼組。需要指出,有錯(cuò)碼的接收碼組也有可能被整除,這時(shí)的錯(cuò)碼就不能檢出了。達(dá)到檢錯(cuò)目的的解碼原理十分簡(jiǎn)單。 (319)上述三步運(yùn)算,在用硬件實(shí)現(xiàn)時(shí),可以由除法電路來實(shí)現(xiàn)。選用的生成多項(xiàng)式不同,產(chǎn)生出的循環(huán)碼碼組也不同。我們稱這唯一的次多項(xiàng)式為碼的