




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、···················實踐教學(xué)···················大學(xué)計算機與通信學(xué)院2014年秋季學(xué)期計算機通信課程設(shè)計 題 目: 線性分組碼(9,4)碼的編譯碼仿真設(shè)計 專業(yè)班級: 姓 名: 學(xué) 號
2、: 指導(dǎo)教師: 成 績: 摘要該系統(tǒng)是(9,4)線性分組碼的編碼和譯碼的實現(xiàn),它可以對輸入的四位的信息碼進(jìn)行線性分組碼編碼,對于接收到的九位碼字可以進(jìn)行譯碼,從而譯出四位信息碼。當(dāng)接收到的九位碼字中有一位發(fā)生錯誤時,可以糾正這一位錯碼;當(dāng)接收到的碼字有兩位發(fā)生錯誤時,只能糾正一位錯誤,但同時能檢測出另一位錯誤不能糾正。只有特定位有兩位錯誤時,才能糾正兩位錯誤。這樣就譯出正確的信息碼組,整個過程是用MATLAB語言實現(xiàn)的。關(guān)鍵詞:編碼; 譯碼; 糾錯1目錄摘要1目錄21. 信道編碼概述21.1信道模型21.2 抗干擾信道編碼定理及逆定理31.3 檢錯與糾錯的基本原理41.4 限失真編碼定理52.
3、線性分組碼的編碼62.1 生成矩陣62.2 校驗矩陣92.3 伴隨式與譯碼103. 線性分組碼編碼的Matlab仿真123.1 程序流程圖123.2 程序執(zhí)行結(jié)果123.2 線性分組碼譯碼的Matlab仿真133.3結(jié)果分析15參考文獻(xiàn)16總結(jié)17致 謝18附錄192前言由于計算機、衛(wèi)星通信及高速數(shù)據(jù)網(wǎng)的飛速發(fā)展,數(shù)據(jù)的交換、處理和存儲技術(shù)得到了廣泛的應(yīng)用,數(shù)字信號在傳輸中往往由于各種原因,使得在傳送的數(shù)據(jù)流中產(chǎn)生誤碼,從而使接收端產(chǎn)生圖象跳躍、不連續(xù)、出現(xiàn)馬賽克等現(xiàn)象,人們對數(shù)據(jù)傳輸和存儲系統(tǒng)的可靠性提出來了越來越高的要求,經(jīng)過長時間的努力,通過編譯碼來控制差錯、提高可靠性的方式在信道傳輸中
4、得到了大量的使用和發(fā)展,并形成了一門新的技術(shù)叫做糾錯編碼技術(shù),糾錯編碼按其碼字結(jié)構(gòu)形式和對信息序列處理方式的不同分為兩大類:分組碼和卷積碼。目前,絕大多數(shù)的數(shù)字計算機和數(shù)字通信系統(tǒng)中廣泛采用二進(jìn)制形式的碼。而線性分組碼具有編譯碼簡單,封閉性好等特點,采用差錯控制編碼技術(shù)是提高數(shù)字通信可靠性的有效方法,是目前較為流行的差錯控制編碼技術(shù)。對線性分組碼的討論都在有限域GF(2)上進(jìn)行,域中元素為0,1,域中元素計算為模二加法和模二乘法。分組碼是一組固定長度的碼組,可表示為(n , k),通常它用于前向糾錯。在分組碼中,監(jiān)督位被加到信息位之后,形成新的碼。在編碼時,k個信息位被編為n位碼組長度,而n-
5、k個監(jiān)督位的作用就是實現(xiàn)檢錯與糾錯。對于長度為n的二進(jìn)制線性分組碼,它有種2n可能的碼組,從2n種碼組中,可以選擇M=2k個碼組(k<n)組成一種碼。這樣,一個k比特信息的線性分組碼可以映射到一個長度為n碼組上,該碼組是從M=2k個碼組構(gòu)成的碼集中選出來的,這樣剩下的碼組就可以對這個分組碼進(jìn)行檢錯或糾錯。251. 信道編碼概述1.1信道模型信息必須首先轉(zhuǎn)換成能在信道中傳輸或存儲的信息后才能通過信道傳送給收信者。在信息傳輸過程中,噪聲或干擾主要是從信道引入的,它使信息通過信道傳輸后產(chǎn)生錯誤和失真。因此信道的輸入和輸出之間一般不是確定的函數(shù)關(guān)系,而是統(tǒng)計依賴的關(guān)系。只要知道信道的輸入信號、輸
6、出信號以及它們之間的統(tǒng)計依賴關(guān)系,就可以確定信道的全部特性。信道的種類很多,這里只研究無反饋、固定參數(shù)的單用戶離散信道。1離散信道的數(shù)學(xué)模型離散信道的數(shù)學(xué)模型一般如圖6.1所示。圖中輸入和輸出信號用隨機矢量表示,輸入信號為X= (X1, X2, XN),輸出信號為Y= (Y1, Y2, YN);每個隨機變量Xi和Yi又分別取值于符號集A=a1, a2, , ar和B=b1, b2, , bs,其中r不一定等于s;條件概率P(y|x) 描述了輸入信號和輸出信號之間的統(tǒng)計依賴關(guān)系,反映了信道的統(tǒng)計特性。YX信道 圖1.1 離散信道模型根據(jù)信道的統(tǒng)計特性即條件概率P(y|x) 的不同,離散信道可以分
7、為三種情況:(1)無干擾信道。信道中沒有隨機干擾或干擾很小,輸出信號與輸入信號之間有確定的一一對應(yīng)的關(guān)系。(2)有干擾無記憶信道。實際信道中常有干擾,即輸出符號與輸入符號之間沒有確定的對應(yīng)關(guān)系。若信道任一時刻的輸出符號只統(tǒng)計依賴于對應(yīng)時刻的輸入符號,而與非對應(yīng)時刻的輸入符號及其他任何時刻的輸出符號無關(guān),則這種信道稱為無記憶信道。(3)有干擾有記憶信道。這是更一般的情況,既有干擾又有記憶,實際信道往往是這種類型。在這一類信道中某一瞬間的輸出符號不但與對應(yīng)時刻的輸入符號有關(guān),而且與此前其他時刻信道的輸入符號及輸出符號有關(guān),這樣的信道稱為有記憶信道。2單符號離散信道的數(shù)學(xué)模型 單符號離散信道的輸入變
8、量為,取值于a1, a2, , ar,輸出變量為,取值于b1, b2, , bs,并有條件概率P(y|x)= P(y=bj|x=ai)= P(bj |ai) (i=1,2,r;j=1,2,s)這一組條件概率稱為信道的傳遞概率或轉(zhuǎn)移概率。因為信道中有干擾(噪聲)存在,信道輸入為x=ai時,輸出是哪一個符號y,事先無法確定。但信道輸出一定是b1, b2, , bs中的一個,即有 (i=1,2,r) (1-1) 由于信道的干擾使輸入符號x在傳輸中發(fā)生錯誤,所以可以用傳遞概率P(bj|ai)來描述干擾影響的大小。因此,一般簡單的單符號離散信道的數(shù)學(xué)模型可以用概率空間加以描述。另外,也可以用圖來描述,如
9、圖1.2所示。 圖1.2 單符號離散信道定義1.1 已知發(fā)送符號為ai,通過信道傳輸接收到的符號為bj的概率P(bj|ai)稱為前向概率。已知信道輸出端接收到的符號為bj,而發(fā)送符號為ai的概率P(ai|bj),稱為后向概率。有時,也把P(ai)稱為輸入符號的先驗概率(即在接收到一個輸出符號以前輸入符號的概率),而對應(yīng)地把P(ai|bj)稱為輸入符號的后驗概率(在接收到一個輸出符號以后輸入符號的概率)。為了討論方便,下面列出本章討論中常用的一些關(guān)于聯(lián)合概率和條件概率的關(guān)系: (1) 設(shè)輸入和輸出符號的聯(lián)合概率為P(x= ai, y= bj)=P(ai bj),則有 (2) ()。 (3) 根據(jù)
10、貝葉斯定律,可得后驗概率與先驗概率之間的關(guān)系 () () 1.2 抗干擾信道編碼定理及逆定理定理1.1 有噪信道編碼定理設(shè)離散無記憶信道X,P(y|x),Y, P(y|x)為信道傳遞概率,其信道容量為C。當(dāng)信息傳輸率R<C時,只要碼長n足夠長,總可以在輸入的符號集中找到2nR個碼字組成的一組碼和相應(yīng)的譯碼規(guī)則,使譯碼的錯誤概率任意小(PE)。在定理6.1中,信道容量C是平均互信息量的最大值其單位是“bit/符號”。定理1.2 有噪信道編碼逆定理(定理6.1的逆定理) 設(shè)離散無記憶信道X,P(y|x),Y,其信道容量為C。當(dāng)信息傳輸率R>C時,則無論碼長n多長,均找不到一種編碼2nR
11、,使譯碼錯誤概率任意小。定理1.1和定理1.2統(tǒng)稱為申農(nóng)第二定理,它是一個關(guān)于有效編碼的存在性定理,它具有根本性的重要意義,它說明錯誤概率趨于零的好碼是存在的。它有助于指導(dǎo)各種通信系統(tǒng)的設(shè)計,有助于評價各種通信系統(tǒng)及編碼的效率。申農(nóng)1948年發(fā)表申農(nóng)第二定理后,科學(xué)家就致力于研究信道中的各種易于實現(xiàn)的實際編碼方法,賦予碼以各種形式的代數(shù)結(jié)構(gòu),出現(xiàn)了各種形式的代數(shù)編碼、卷積碼、循環(huán)碼等。1.3 檢錯與糾錯的基本原理在申農(nóng)第二定理發(fā)表后,很長一段時間內(nèi)人們都在探尋能夠簡單、有效地編碼和譯碼的好碼。由此形成了一整套糾錯碼理論。在此只簡單地介紹檢錯和糾錯的一些基本概念及基本原理。在信息處理過程中,為了
12、保持?jǐn)?shù)據(jù)的正確性應(yīng)對信息進(jìn)行編碼使其具有檢錯糾錯能力,這種編碼稱為語法信息編碼。它的基本思想是引入剩余度,在傳輸?shù)男畔⒋a元后增加一些多余的碼元,以使信息損失或錯誤后仍能在接收端恢復(fù)。通常將要處理的信息稱為原信息,將原信息轉(zhuǎn)化為數(shù)字信息后再進(jìn)行存儲、傳輸?shù)忍幚磉^程稱為傳送。工程上最容易實現(xiàn)的是二元數(shù)字信息(或二元碼信息)的傳送。所謂二元數(shù)字信息就是由二元數(shù)域F2=0,1中的數(shù)字0與1組成的數(shù)組或向量。定義1.3 設(shè)X=(x1, x2, xn),Y=(y1, y2, yn),xiÎF2,yiÎF2,i=1, n,稱X和Y對應(yīng)分量不相等的分量個數(shù)為X和Y的漢明(Hamming)距
13、離,記為d(X, Y)。記則d(X, Y)= d(x1, y1)+ d(x2, y2)+ d(xn, yn)容易證明以下定理。定理1.4 設(shè)X和Y是長為n的二元碼字,則(1)(非負(fù)且有界性)(2)d(X, Y)=0當(dāng)且僅當(dāng)X=Y(自反性)(3)d(X, Y)= d(Y, X)(對稱性)(4)(三角不等式)1.4 限失真編碼定理申農(nóng)第一定理和申農(nóng)第二定理指明:無論是無噪聲信道還是有噪聲信道,只要信道的信息傳輸率小于信道容量,總能找到一種編碼,在信道上以任意小的錯誤概率和任意接近信道容量的信息傳輸率傳輸信息。反之,若信道信息傳輸率大于信道容量,一定不能使傳輸錯誤概率任意小,傳輸必然失真。實際上,人
14、們并不需要完全無失真地恢復(fù)信息,只是要求在一定保真度下,近似恢復(fù)信源輸出的信息。比如,人類主要是通過視覺和聽覺獲取信息,人的視覺大多數(shù)情況下對于25幀以上的圖像就認(rèn)為是連續(xù)的,通常人們只需傳送每秒25幀的圖像就能滿足通過視覺感知信息的要求,而不必占用更大的信息傳輸率。而大多數(shù)人只能聽到幾千赫茲到十幾千赫茲,即便是訓(xùn)練有素的音樂家,一般也不過能聽到20千赫茲的聲音。所以,在實際生活中,通常只是要求在保證一定質(zhì)量的前提下在信宿近似地再現(xiàn)信源輸出的信息,或者說在保真度準(zhǔn)則下,允許信源輸出的信息到達(dá)信宿時有一定的失真。對于給定的信源,在允許的失真條件下,信源熵所能壓縮的極限理論值是多少?申農(nóng)(Shan
15、non)的重要論文“保真度準(zhǔn)則下的離散信源編碼定理”論述了在限定范圍內(nèi)的信源編碼定理。限失真信源編碼的信息率失真理論是信號量化、模數(shù)轉(zhuǎn)換、頻帶壓縮和數(shù)據(jù)壓縮的理論基礎(chǔ),在圖像處理、數(shù)字通信等領(lǐng)域得到廣泛的應(yīng)用。所謂信道產(chǎn)生的失真d(xn, ym)是指:當(dāng)信道輸入為xn時,輸出得到的是ym,其差異或損失,稱為譯碼失真,可描述為而平均譯碼失真則是如果要求平均譯碼失真小于某個給定值,即也就是對P(Y|X)施加一定的限制。把滿足上式的那些P(Y|X)記為PD,在集合PD中尋找一個P(Y|X)使I(Y|X)極小,把這個極小值稱為在的條件下所必須傳送的信息速率,并記為R(D),即 R(D)=min(X;Y
16、)RD稱R(D)為信息率失真函數(shù)。它表示信息率與失真量之間的關(guān)系。上式表明,在集合PD中,任意一個I(Y|X)值所對應(yīng)的平均失真都小于或等于。也就是說,在集合PD內(nèi),只要I(Y|X)³ R(D),就可以達(dá)到;但是如果I(Y|X)< R(D),就意味著P(Y|X)不在集合PD內(nèi),因而不能滿足。定理1.5(離散無記憶信源的限失真編碼定理)設(shè)R(D)是某離散無記憶信源的信息率失真函數(shù),只要滿足信息率R> R(D),對于任意小的,允許失真值,以及任意足夠長的碼字長度,則一定存在一種編碼方法,使其平均譯碼失真;反之,若R< R(D),則無論采用什么樣的編碼方法,都不可能使譯碼
17、的失真小于或等于。離散無記憶信源的限失真編碼定理也稱為申農(nóng)第三編碼定理,它表明:在允許失真值給定后,總存在一種編碼方法,使編碼后的信源輸出信息率大于R(D),但可任意地接近于R(D),而平均失真小于或無限接近于允許失真值;反之,若R> R(D),則編碼后的平均失真將大于。如果用二進(jìn)制碼符號來進(jìn)行編碼的話,那么在允許失真為的情況下,平均每個信源符號所需二進(jìn)制碼符號數(shù)的下限值在數(shù)量上等于R(D)。在不允許失真的情況下,平均每個信源符號所需二進(jìn)制碼符號數(shù)的下限值在數(shù)量上等于H(S)。一般情況下,有R(D)<H(S),因此,在滿足保真度準(zhǔn)則的條件下,信源所需輸出數(shù)據(jù)就可以達(dá)到壓縮。信息傳輸
18、的目標(biāo)是高效率、高質(zhì)量地傳輸信息,而高效率和高質(zhì)量又常常相矛盾。本章分析的幾個編碼定理表明:通過適當(dāng)?shù)木幋a可以把高效率(傳輸信息的速率無限接近于信道容量)和高質(zhì)量(傳輸信息的差錯無限接近于零或者失真低于規(guī)定的允許值)完美地結(jié)合起來。2.線性分組碼的編碼2.1 生成矩陣線性分組碼(n,k)中許用碼字(組)為2k個。定義線性分組碼的加法為模二加法,乘法為二進(jìn)制乘法。即1+1=0、1+0=1、0+1=1、0+0=0;1×1=1、1×0=0、0×0=0、0×1=0。且碼字與碼字的運算在各個相應(yīng)比特位上符合上述二進(jìn)制加法運算規(guī)則。線性分組碼具有如下性質(zhì)(n,k)的
19、性質(zhì):1、封閉性。任意兩個碼組的和還是許用的碼組。2、碼的最小距離等于非零碼的最小碼重。對于碼組長度為n、信息碼元為k位、監(jiān)督碼元為rnk位的分組碼,常記作(n,k)碼,如果滿足2r1n,則有可能構(gòu)造出糾正一位或一位以上錯誤的線性碼。下面我們通過(9,4)分組碼的例子來說明如何具體構(gòu)造這種線性碼。設(shè)分組碼(n,k)中,k = 4,為能糾正一位誤碼,要求r5?,F(xiàn)取r5,則nkr9。該例子中,信息組為(c5c6c7c8),碼字為(c8c7c6c5c4c3c2c1c0).當(dāng)已知信息組時,按以下規(guī)則得到四個校驗元,即 C4=c5+c6C3=c7+c8C2=c4+c6+c8 (式2.1)C1=c5+c7
20、C0=c5+c6+c7+c8這組方程稱為校驗方程。 (9,4)線性分組碼有24(16)個許用碼字或合法碼字,另有29-24個禁用碼字。發(fā)送方發(fā)送的是許用碼字,若接收方收到的是禁用碼字,則說明傳輸中發(fā)生了錯誤。 為了深化對線性分組碼的理論分析,可將其與線性空間聯(lián)系起來。由于每個碼字都是一個二進(jìn)制的n重,及二進(jìn)制n維線性空間Vn中的一個矢量,因此碼字又稱為碼矢。線性分組碼的一個重要參數(shù)是碼率r=k/n,它說明在一個碼字中信息位所占的比重,r越大,說明信息位所占比重越大,碼的傳輸信息的有效性越高。由于(n,k)線性分組,線性分組碼的2k個碼字組成了n維線性空間Vn的一個K維子空間。因此這2k個碼字完
21、全可由k個線性無關(guān)的矢量所組成。 設(shè)此k個矢量為c1,c2,ck,有生成矩陣形式為c1c2···ck G=(3-2)(n,k)碼字中的任一碼字ci,均可由這組基底的線性組合生成,即 ci=mi ·G=mn-1 mn-2 mn-k·G 式中,mi =mn-1 mn-2 mn-k 是k個信息元組成的信息組。表3-1 (9,4)線性分組碼信息組碼字000000000000000010001000110010001010101001100111110001000100010100101010111010110011010001011
22、10111000011000100010010100110010110111010101001011110111011111001100110001010110111010001111101110111101111111111111對于表3-1給出的(9,4)線性分組碼,可將寫成矩陣形式 c8c7c6c5c4c3c2c1=c8c7c6c5·故(9,4)碼的生成矩陣為 G= 可以看到,從(9,4)碼的碼字中,挑選出k=4個線性無關(guān)的碼字作為碼的一組基底,用c=m·G計算得碼字。一個系統(tǒng)碼的生成矩陣G,其左邊k行k列應(yīng)是一個k階單位方陣Ik,因此生成矩陣G表示為 G=Ik P
23、(3-3) 式中,P是一個k×(n-k)階矩陣。2.2 校驗矩陣表3-1所示的(9,4)線性分組碼的四個校驗元由式(3-1)所示的線性方程組決定的。把(3-1)移相,有C4+c5+c6=0C3+c7+c8=0C2+c4+c6+c8=0C1+c5+c7=0C0+c5+c6+c7+c8=0C8C7C6C5C4C3C2C1C000000 001110000110001000010100010111100001 = 上式的矩陣形式為 這里的四行七列矩陣稱為(9,4)碼的一致校驗矩陣,用H表示,即 H= (3-5)由H矩陣得到(n,k)線性分組碼的每一碼字,(i=1,2,2k),都必須滿足由H
24、矩陣各行所確定的線性方程組,即 。(9,34)碼的生成矩陣G中每一行及其線性組合都是(n,k)碼的碼字,所以有G·HT =0。由G和H構(gòu)成的行生成的空間互為零空間,即G和H彼此正交。H=PT Ir其右邊r行r列組成一個單位方陣。2.3 伴隨式與譯碼2.3.1 碼的距離及糾檢錯能力 1碼的距離兩個碼字之間,對應(yīng)位取之不同的個數(shù),稱為漢明距離,用d表示。一個嗎的最小距離dmin定義為dmin=mind(ci,cj),ij,ci,cj(n,k),兩個碼字之間的距離表示了它們之間差別的大小。距離越大,兩個碼字的差別越大,則傳送時從一個碼字錯成另一碼字的可能性越小。碼的最小距離愈大,其抗干擾能
25、力愈強。2. 線性碼的糾檢錯能力 對于任一個(n,k)線性分組碼,(1)若要在碼字內(nèi)檢測出e個錯誤,則要求碼的最小距離de+1;(2) 糾正t個錯誤,則要求碼的最小距離d2t+1;(3)糾正t個錯誤同時檢測e(t)個錯誤,則要求 dt+e+1;2.3.2 伴隨式與譯碼假設(shè)接收端收到的碼字為B,那么它和原來發(fā)送端發(fā)送的碼字A之間就有可能存在著誤差。即在碼組A=a6 a5 a4 a3 a2 a1 a0 中的任意一位就有可能出錯。這樣我們在接收端接收到一個碼組是就有可能判斷錯發(fā)送端原來應(yīng)該要表達(dá)的意思。為了描述數(shù)據(jù)在傳輸信道中出現(xiàn)錯誤的情況,引入了錯誤圖樣E,在錯誤圖樣中,0代表對應(yīng)位沒有傳錯,1代
26、表傳輸錯誤。實際上錯誤圖樣E就是收序列與發(fā)送序列的差。所以在譯碼中用接收到的碼字B模爾加錯誤圖樣E就可以得到發(fā)送端的正確碼字A。因此譯碼的過程就是要找到錯誤圖樣E。 定義:校正子SS = B * H= ( A + E ) * H = A * H+ E * H = E * H因為A是編得的正確碼字。根據(jù)前面所敘述,它和監(jiān)督矩陣的轉(zhuǎn)置相乘為0。顯然,S僅與錯誤圖樣有關(guān),它們之間是一一對應(yīng)的關(guān)系。找到了校正子S,也就可以找到E。而與發(fā)送的碼字無關(guān)。若E=0,則S=0;因此根據(jù)S是否為0可進(jìn)行碼字的檢錯。如果接收碼字B中只有一位碼元發(fā)生錯誤,又設(shè)錯誤在第i位。即Ei-1=1,其他的Ei均為0。在后面的
27、譯碼程序中,建立了一個校正子S與錯誤圖樣E對應(yīng)的表。也就是收到一個B序列,就可以通過計算得到一個校正子,而每一個校正子都對應(yīng)著一個錯誤圖樣E,再通過B模爾加上E,就可以得到正確的碼字A。因為在不同的錯誤序列B中,同一位碼元錯誤時對應(yīng)的E是一樣的,所以可以利用0000000這個正確的碼字讓它每位依次錯誤,來求得它的八個校正子。而這時的矩陣B就是錯誤圖樣E。這樣就算得了8個校正子S。而這時的錯誤序列B,就是錯誤圖樣E,所以有: E與S都已經(jīng)得到,這時就可以建立一個表來將它們一一對應(yīng)起來。 3. 線性分組碼編碼的Matlab仿真3.1 程序流程圖線性分組碼編碼的Matlab仿真程序流程圖如下:開始初
28、始化k,r,k=4,r=5得到生成矩陣Q,為4行5列根據(jù)生成矩陣Q得到校驗矩陣H計算所有的可用碼組結(jié)束 圖5-1-1線性分組碼編碼的Matlab仿真程序流程圖3.2 程序執(zhí)行結(jié)果形成Q矩陣的程序執(zhí)行結(jié)果如下:圖5-1-2形成Q矩陣的程序執(zhí)行結(jié)果生成可用碼組的程序執(zhí)行結(jié)果如下:圖3-1-3生成可用碼組的程序執(zhí)行結(jié)果3.2 線性分組碼譯碼的Matlab仿真3.2.1 程序流程圖線性分組碼譯碼的Matlab仿真程序流程圖如下:圖3-2-1線性分組碼譯碼的Matlab仿真程序流程圖3.2.2 程序執(zhí)行結(jié)果 輸出無錯時顯示圖如下:圖3-2-2輸出無錯時顯示圖有一位錯誤輸入時的顯示圖如下:圖3-2-3有一
29、位錯誤輸入時的顯示圖有兩位錯誤輸入時的顯示圖如下:圖3-2-4有兩位錯誤輸入時的顯示圖3.3結(jié)果分析3.3.1輸入無錯時的結(jié)果分析由圖5-1 輸出編碼結(jié)果和正確輸入時顯示圖所示的結(jié)果可以看出編碼的結(jié)果的八種情況和在推導(dǎo)過程中運算的結(jié)果是一致的,可以見得程序的編碼過程是正確的。對于譯碼過程而言,當(dāng)界面顯示“請輸入要校驗的碼字(9位):” ,然后從提示符后輸入:000000000,由于輸入的接收碼組與編碼后的碼字一致,它提取了每個碼組的前四位,即信息位,由結(jié)果看出譯碼過程是正確的,并沒有出現(xiàn)錯譯的情況,可見程序的譯碼片段是正確的。3.3.2輸入一位錯誤時的結(jié)果分析對于糾錯過程而言,當(dāng)界面顯示“請輸
30、入要校驗的碼字(9位):” 。然后從提示符后輸入:000000001,由圖5-2 有一位錯誤輸入時的顯示圖所知,接收碼組的第五位發(fā)生了錯誤,經(jīng)程序糾檢錯誤后改正了接收序列的錯誤,并且正確譯出了信息位。可見程序的糾錯功能也是可以實現(xiàn)的,以上結(jié)果進(jìn)一步證實了,系統(tǒng)譯碼程序的正確性。5.3.3輸入錯誤時的結(jié)果分析當(dāng)輸入B=001000010時,校正子是01110,檢測不出錯誤。參考文獻(xiàn)1 孫麗華編. 信息論與糾錯編碼. 電子工業(yè)出版社. 2005,32 郭文彬 桑林編. 通信原理-基于MATLAB的計算機仿真. 北京郵電大學(xué)出版社. 2006.23 蘇金明 阮沈勇編. MATLAB實用教程(第二版)
31、. 電子工業(yè)出版社. 2008.24 徐東艷 孟曉剛編. MATLAB函數(shù)庫查詢詞典. 中國鐵道出版社. 2006.45 潘新民編. 計算機通信技術(shù). 電子工業(yè)出版社. 2003.76 吳玲達(dá) 李國輝 楊冰等編. 計算機通信原理與技術(shù). 國防科技大學(xué)出版社. 2003.3 總結(jié)通過對線性分組碼中的線性分組碼的編譯碼編程實現(xiàn),了解到線性分組碼的構(gòu)成方式是把信息序列分成每k個碼元一段,并由這k個碼元按一定規(guī)則產(chǎn)生r 個校驗位,組成長度為n=k+r的碼字,用(n,k)表示。信息碼元與校驗位之間為線性關(guān)系。并且知道了線性分組碼的編碼過程信息碼元與校驗位之間的線性關(guān)系實現(xiàn)起來是十分簡單的.對于碼組長度為
32、n、信息碼元為k位、監(jiān)督碼元為rnk位的分組碼,如果滿足2r1n,則有可能構(gòu)造出糾正一位或一位以上錯誤的線性碼。就像本設(shè)計的(9,4)分組碼的(n,k)中,n=9,k = 4,r4能糾正一位誤碼,檢測到兩位誤碼。運用MATLAB語言進(jìn)行編程,可以較明顯的知道編碼的過程和譯碼時出現(xiàn)的錯誤,碼字的最小距離是3時,可以糾正一位錯誤,當(dāng)輸入特定的兩位錯誤時,該碼字還可以糾正這兩位錯誤,這種情況在編程結(jié)果的命令窗口中可以明顯看到。線性分組碼具有編譯碼簡單,封閉性好等特點,采用差錯控制編碼技術(shù)是提高數(shù)字通信可靠性的有效方法,是目前較為流行的差錯控制編碼技術(shù)之一。致 謝這里,我要鄭重地感謝我們的課程設(shè)計指導(dǎo)
33、老師。正是他 的耐心指導(dǎo)才讓我們能夠順利的完成此次課程設(shè)計,在此說聲謝謝!在此,我也要感謝我們的小組成員,以及所有幫助我完成嵌入式程序設(shè)計論文的同學(xué)們。 在這次的線性分組碼課程設(shè)計中,老師和同學(xué)們在設(shè)計思路和設(shè)計步驟上給了我很大的幫助,幫我解答疑難問題,給我提供資料,給我提供查閱資料的信息,引導(dǎo)我該如何去思考問題,教會我解決問題的方法。同時又鼓勵我自己學(xué)習(xí),老師給我的不僅是知識,是幫助,更是學(xué)習(xí)的信心和智慧,在這里衷心感謝老師的耐心細(xì)心和一絲不茍的幫助。同時也感謝和我一起課設(shè)的同學(xué),這是我們共同努力的結(jié)果,衷心的感謝大家對我的幫助和支持。希望在以后的學(xué)習(xí)中我們共同學(xué)習(xí)與成長。附錄代碼% - 初
34、始化k,r,滿足分配條件 -flag_in=1;%輸入條件標(biāo)記,若滿足條件則跳出循環(huán),否則就一直輸入(默認(rèn)不滿足)while(flag_in) k=4; r=5; if(2r-1>=k+r) flag_in=0; endend% -% - 生成校正子,可選擇自動生成或手動輸入 -Q_yesOrNo=input('是否自動生成校正子?Y/N:','s');if(Q_yesOrNo='Y') %從數(shù)值不會重合的集合中選出校驗子的十進(jìn)制數(shù) Q_randFull=randperm(2r-1); Q_randCheck=zeros(1,k); %初始
35、化k行r列的矩陣Q Q=zeros(k,r); i=1;j=1; %選出可用的校驗子(十進(jìn)制) while(i<=k) flag_cir=1;%循環(huán)標(biāo)記,表示隨機矩陣中是否有不符合規(guī)則的數(shù),1,2,4,8,. for n=0:1:k-1%判斷是否有特殊數(shù)字 if(Q_randFull(j)=2n) flag_cir=0;%有特殊數(shù)字則將標(biāo)記置為0 end end if(flag_cir=1)%一般情況下(默認(rèn)flag_cir=1),會將正常的數(shù)組賦予Q_randCheck Q_randCheck(i)=Q_randFull(j); j=j+1; i=i+1; else%否則,就使被挑選的
36、數(shù)下標(biāo)加1,即此數(shù)不符合要求,試添加下一個數(shù) j=j+1; end end Q_charA=dec2bin(Q_randCheck);%將十進(jìn)數(shù)格式轉(zhuǎn)換為二進(jìn)制表示方式 for i=1:1:k for j=1:1:r %將字符轉(zhuǎn)換為數(shù)值后寫入矩陣 Q(i,j)=str2double(Q_charA(i,j); end endelse %初始化k行r列的矩陣 Q=zeros(k,r); %根據(jù)校正子生成Q,為k行r列 for i=1:1:k %要求為輸入字符,否則默認(rèn)輸入的為數(shù)值 Q_charA(i,:)=input(sprintf('輸入一個校正子,以檢測C%d位的錯碼(%d位)
37、9;,k+r-i,r),'s'); for j=1:1:r %將字符轉(zhuǎn)換為數(shù)值后寫入矩陣 Q(i,j)=str2double(Q_charA(i,j); end endend% -% - 生成完全的校正子與錯碼位置之間的對應(yīng)關(guān)系 -%生成單位矩陣(字符型),以補齊校正子for i=r-1:-1:0 Qr(r-i)=2i;endQ_charB=dec2bin(Qr);%將十進(jìn)數(shù)格式轉(zhuǎn)換為二進(jìn)制表示方式%生成校正子與錯碼位置的對應(yīng)關(guān)系Q_charC(1:k,:)=Q_charA;Q_charC(k+1:k+r,:)=Q_charB;Q_charD=reshape(sprintf(&
38、#39;->C%02d',k+r-1:-1:0),8,k+r)'disp('校正子與錯碼位置的對應(yīng)關(guān)系');Q_char=Q_charC Q_charD% -% - 線性分組碼內(nèi)部的函數(shù)關(guān)系及計算 -Ik=eye(k);%生成k*k的單位矩陣,與Q合成為生成矩陣GG=Ik Q;%生成矩陣P=Q'Ir=eye(r);%生成r*r的單位矩陣,與P合成為監(jiān)督矩陣HH=P Ir;%監(jiān)督矩陣% -% - 計算所有的可用碼組 -valid_yesOrNo=input('是否要顯示所有可用碼組?Y/N:','s');if(vali
39、d_yesOrNo='Y') %初始化2k行k+r列,與1行k列的矩陣 valid_codes=zeros(2k,k+r); valid_buffer=zeros(1,k); %初始化每行碼重數(shù)組 weight_array=zeros(1,2k); %遍歷可用信息碼并輸出所有可用碼組 for i=1:1:2k %將第i行的十進(jìn)制數(shù)轉(zhuǎn)制為4位二進(jìn)制數(shù)(字符矩陣) valid_binary=dec2bin(i-1,k); for j=1:1:k %將字符轉(zhuǎn)換為數(shù)值放入矩陣(行向量)中 valid_buffer(j)=str2double(valid_binary(j); end %將得出的第i行的行向量valid_codes,并得出當(dāng)前信息碼對應(yīng)全長碼字 valid_codes(i,:)=mod(valid_buffer*G,2); %求每行可用碼字的碼重 weight_array(i)=length(nonzeros(valid_codes(i,:); end disp(
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度工傷人員傷殘評定及賠償協(xié)議
- 2025年度集體合同協(xié)商中的勞動爭議處理
- 2025年度幼兒園保安聘用合同標(biāo)準(zhǔn)范本
- 二零二五年度專業(yè)護(hù)工針對心血管疾病病人護(hù)理合同
- 2025年度中小企業(yè)發(fā)展基金借款連帶擔(dān)保人合同
- 2025年度單位食堂承包及員工滿意度提升協(xié)議
- 2025年度知識產(chǎn)權(quán)股份代持許可使用協(xié)議
- 2025年度國際文化交流項目合作誠意金協(xié)議
- 2025年度工程監(jiān)理個人勞動合同(工程質(zhì)量安全管理)
- 2025年度航空航天器復(fù)合材料維修合同
- 2025云南昆明空港投資開發(fā)集團招聘7人高頻重點提升(共500題)附帶答案詳解
- 簡單的路線圖(說課稿)2024-2025學(xué)年三年級上冊數(shù)學(xué)西師大版
- 成都市2024-2025學(xué)年度上期期末高一期末語文試卷(含答案)
- 2025年教育局財務(wù)工作計劃
- Unit 5 Now and Then-Lesson 3 First-Time Experiences 說課稿 2024-2025學(xué)年北師大版(2024)七年級英語下冊
- 《中國心力衰竭診斷和治療指南2024》解讀
- 中小學(xué)智慧校園建設(shè)方案
- 中國食物成分表2020年權(quán)威完整改進(jìn)版
- 【MOOC】影視鑒賞-揚州大學(xué) 中國大學(xué)慕課MOOC答案
- 危險性較大的分部分項工程清單安全管理措施
- 高壓輸電線路質(zhì)量、檢查、驗收培訓(xùn)課件
評論
0/150
提交評論