基于MATLAB的(7,4)漢明碼的編譯仿真設(shè)計(jì)_第1頁
基于MATLAB的(7,4)漢明碼的編譯仿真設(shè)計(jì)_第2頁
基于MATLAB的(7,4)漢明碼的編譯仿真設(shè)計(jì)_第3頁
基于MATLAB的(7,4)漢明碼的編譯仿真設(shè)計(jì)_第4頁
基于MATLAB的(7,4)漢明碼的編譯仿真設(shè)計(jì)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

/摘要在通信系統(tǒng)中,要提高信息傳輸?shù)挠行?我們將信源的輸出經(jīng)過信源編碼用較少的符號(hào)來表達(dá)信源消息,這些符號(hào)的冗余度很小,效率很高,但對(duì)噪聲干擾的抵抗能力很弱。漢明碼〔HammingCode是一種能夠自動(dòng)檢測(cè)并糾正一位錯(cuò)碼的線性糾錯(cuò)碼,即SEC〔SingleErrorCorrecting碼,用于信道編碼與譯碼中,提高通信系統(tǒng)抗干擾的能力。為了提高信息傳輸?shù)臏?zhǔn)確性,我們引進(jìn)了差錯(cuò)控制技術(shù)。而該技術(shù)采用可靠的,有效的信道編碼方法來實(shí)現(xiàn)的。糾錯(cuò)碼是一種差錯(cuò)控制技術(shù),目前已廣泛應(yīng)用于各種通信系統(tǒng)和計(jì)算機(jī)系統(tǒng)中,糾錯(cuò)編碼主要用于數(shù)字系統(tǒng)的差錯(cuò)控制,對(duì)于保證通信、存儲(chǔ)、媒體播放和信息轉(zhuǎn)移等數(shù)字傳遞過程的質(zhì)量有著重要意義,是通信、信息類科知識(shí)結(jié)構(gòu)中不可缺少的一部分。關(guān)鍵字:通信系統(tǒng)、MATLAB線性分組碼、Hamming碼TOC\o"1-3"\h\u18265一、引言11435二、設(shè)計(jì)原理282072.1漢明碼的構(gòu)造原理2266162.2監(jiān)督矩陣H3178222.3生成矩陣G4232882.4校正子〔伴隨式S525778三、〔7,4漢明碼編碼的設(shè)計(jì)7112943.1〔7,4漢明碼編碼方法787693.2編碼流程圖7112853.3〔7,4漢明碼編碼程序設(shè)計(jì)75516四、〔7,4漢明碼的譯碼器的設(shè)計(jì)885114.1〔7,4漢明碼譯碼方法8202374.2譯碼流程圖1059854.3〔7,4漢明碼譯碼程序的設(shè)計(jì)1015326五、〔7,4漢明碼編譯碼程序的編譯及仿真波形1115852六、總結(jié)1329028七、參考文獻(xiàn)1420867附錄15一、引言當(dāng)計(jì)算機(jī)存儲(chǔ)或移動(dòng)數(shù)據(jù)時(shí),可能會(huì)產(chǎn)生數(shù)據(jù)位錯(cuò)誤,這時(shí)可以利用漢明碼來檢測(cè)并糾錯(cuò),簡單的說,漢明碼是一個(gè)錯(cuò)誤校驗(yàn)碼碼集,由Bell實(shí)驗(yàn)室的R.W.Hamming發(fā)明,因此定名為漢明碼。與其他的錯(cuò)誤校驗(yàn)碼類似,漢明碼也利用了奇偶校驗(yàn)位的概念,通過在數(shù)據(jù)位后面增加一些比特,可以驗(yàn)證數(shù)據(jù)的有效性。利用一個(gè)以上的校驗(yàn)位,漢明碼不僅可以驗(yàn)證數(shù)據(jù)是否有效,還能在數(shù)據(jù)出錯(cuò)的情況下指明錯(cuò)誤位置。在接受端通過糾錯(cuò)譯碼自動(dòng)糾正傳輸中的差錯(cuò)來實(shí)現(xiàn)碼糾錯(cuò)功能,稱為前向糾錯(cuò)FEC。在數(shù)據(jù)鏈路中存在大量噪音時(shí),FEC可以增加數(shù)據(jù)吞吐量。通過在傳輸碼列中加入冗余位<也稱糾錯(cuò)位>可以實(shí)現(xiàn)前向糾錯(cuò)。但這種方法比簡單重傳協(xié)議的成本要高。漢明碼利用奇偶?jí)K機(jī)制降低了前向糾錯(cuò)的成本。二、設(shè)計(jì)原理2.1漢明碼的構(gòu)造原理線性分組碼是一類重要的糾錯(cuò)碼,應(yīng)用很廣泛。在〔n,k分組碼中,若監(jiān)督碼元是按線性關(guān)系模2相加而得到的,則稱其為線性分組碼。一般來說,若漢明碼長為n,信息位數(shù)為k,則監(jiān)督位數(shù)r=n-k.若希望用r個(gè)監(jiān)督位構(gòu)造出r個(gè)監(jiān)督關(guān)系式來指示一位錯(cuò)碼的n種可能位置,則要求或346035614562aaaaaaaaaaaa顯然,這3個(gè)方程是線性無關(guān)的。代入上述公式可得<7,4>碼的全部碼組,如表1所示。表1〔7,4漢明碼的全部碼組信息位a6a5a4a3監(jiān)督位a2a1a0信息位a6a5a4a3監(jiān)督位a2a1a00000000100011100010111001100001010110100100011110101100101001101100001010110111010100110011111010001110001111111由上表可知:〔7,4漢明碼的最小碼距=3,它能糾1位錯(cuò)或檢2位錯(cuò)。由此可見,漢明碼是能夠糾正單個(gè)錯(cuò)誤的線性分組碼,其特點(diǎn)是:最小碼距=3,碼長n與監(jiān)督位r滿足關(guān)系式:,說明上述所說的〔7,4線性分組碼就是漢明碼。同時(shí),由于碼率,故當(dāng)很大和很小時(shí),碼率接近1,可見,漢明碼是一種高效碼。2.2監(jiān)督矩陣H式〔3.1所示的〔7,4漢明碼的監(jiān)督方程可以改寫為:〔式2.2.1用矩陣的形式可以將上式表示為:〔摸2〔式2.2.2上式可以簡記為:或式中A=[a6a5a4a3a2a1a0]0=[000]右上標(biāo)"T"表示將矩陣轉(zhuǎn)置。例如,HT是H的轉(zhuǎn)置,即HT的第一行為H的第一列,HT的第二行為H的第二列等等。其中,H成為監(jiān)督矩陣,只要監(jiān)督矩陣H給定,編碼時(shí)信息位和監(jiān)督位的關(guān)系也就隨即確定下來了。2.3生成矩陣G上面漢明碼例子中的監(jiān)督位公式為〔式2.3.1也可改寫成矩陣形式:〔式2.3.2或者寫成〔式2.3.3式中,Q為一個(gè)k*r階矩陣,它為P的轉(zhuǎn)置,即Q=PT上式表示,在信息位給定后,用信息位的行矩陣車乘矩陣Q就產(chǎn)生出監(jiān)督位。若將〔2.2.1式的監(jiān)督方程補(bǔ)充完整并寫成矩陣的形式:〔式2.3.4即:A=G·[]=G·M即漢明碼的編碼原理上式中G=〔式2.3.5G為生成矩陣,根據(jù)式2.3.4知:由G和信息碼就能產(chǎn)生所有碼字。生成矩陣也可分為兩部分,即G=〔式2.3.6上式中Q=〔式2.3.7Q為階矩陣,為階單位陣。因此,如果找到了碼的生成矩陣G,則編碼的方法就完全確定了。具有[KQ]形式的生成矩陣稱為典型生成矩陣。由典型生成矩陣得出的碼組A中,信息位的位置不變,監(jiān)督位附加于其后,這種形式的碼稱為系統(tǒng)碼。2.4校正子〔伴隨式S設(shè)一發(fā)送碼組A=[],在傳輸?shù)倪^程中可能發(fā)生誤碼。接受碼組B=[],收發(fā)碼組之差定義為錯(cuò)誤圖樣E。E=B-A<式2.4.1>其中,E=[],令S=。<式2.4.2>式中S稱為校正子,他用來表示錯(cuò)碼位置??梢姡盒U覵與錯(cuò)誤圖樣E之間由確定的線性變換關(guān)系。若S和E之間一一對(duì)應(yīng),則S將能代表錯(cuò)碼位置?!?,4漢明碼的校正子和錯(cuò)誤圖樣之間的對(duì)應(yīng)關(guān)系如表2所示。表2<7,4>漢明碼S與E對(duì)應(yīng)關(guān)系錯(cuò)誤碼位錯(cuò)誤圖樣E校正子S錯(cuò)誤位置C00000010011000001001020000100100300010000114001000010150100000110610000001117無錯(cuò)0000000000無錯(cuò)由上表可知:當(dāng)S=001時(shí),則出錯(cuò)在1位,即b0出錯(cuò);當(dāng)S=010時(shí),則出錯(cuò)在2位,即b1出錯(cuò);當(dāng)S=100時(shí),則出錯(cuò)在3位,即b2出錯(cuò);當(dāng)S=011時(shí),則出錯(cuò)在4位,即b3出錯(cuò);當(dāng)S=101時(shí),則出錯(cuò)在5位,即b4出錯(cuò);當(dāng)S=110時(shí),則出錯(cuò)在6位,即b5出錯(cuò);當(dāng)S=111時(shí),則出錯(cuò)在7位,即b6出錯(cuò);當(dāng)S=000時(shí),則無錯(cuò)。三、〔7,4漢明碼編碼的設(shè)計(jì)3.1〔7,4漢明碼編碼方法<7,4>漢明碼的編碼就是將輸入的4位信息碼M=[]加上3位監(jiān)督碼從而編成7位漢明碼[],編碼輸出B=[].由式A=M·G=[]·G可知,信息碼M與生成矩陣G的乘積就是編好以后的<7,4>漢明碼。3.2編碼流程圖編碼程序的設(shè)計(jì)流程圖開始開始輸入信息碼a6a5a4a3編出監(jiān)督位b2b1b0輸出〔7,4漢明碼a6a5a4a3a2a1a0結(jié)束3.3〔7,4漢明碼編碼程序設(shè)計(jì)根據(jù)<7,4>漢明碼的編碼原理,將上式計(jì)算所得的監(jiān)督位和輸入的信息位一起輸出,則此次編碼就算完成了?!?,4漢明碼的編碼源程序見下文附錄。四、〔7,4漢明碼的譯碼器的設(shè)計(jì)4.1〔7,4漢明碼譯碼方法<7,4>漢明碼的譯碼器的功能就是把輸入的7位漢明碼B=[]譯為4位信息碼,并且根據(jù)伴隨矩陣S從而糾正編碼中可能出現(xiàn)的1位錯(cuò)碼。根據(jù)監(jiān)督矩陣H和生成矩陣G的關(guān)系,即:H=[],其中是的單位陣,G=[],其中是的單位陣,〔式4.1.1生成矩陣G==由式〔4.1.1,得P=監(jiān)督矩陣〔式4.1.2由式〔2.2.2知,其中E=[]從而即可得到校正子S與〔7,4漢明碼各位之間的關(guān)系:〔式4.1.3算出校正子S〔后,對(duì)照表2,即可判斷出哪位出錯(cuò),并糾正出錯(cuò)的那位,從而輸出正確的碼字。表3〔7,4漢明碼譯碼輸入、輸出對(duì)應(yīng)關(guān)系序號(hào)譯碼輸入譯碼輸出校正子S錯(cuò)誤碼位錯(cuò)碼位置C00000010000001021000111100011003200101010010000無錯(cuò)0300111100011000無錯(cuò)0401011100100011450100101010101146001001101101006701110000111000無錯(cuò)0810001111000000無錯(cuò)091001101100100111010100001010010211101110110111003121101001110001141311110001101101514101010011101106150111111111111174.2譯碼流程圖譯碼程序設(shè)計(jì)的流程圖:開始開始譯碼輸入七位碼b6b5b4b3b2b1b0b2b1b0根據(jù)輸入求出校正子校正子S=0?輸出四位信息碼a3a2a1a0結(jié)束根據(jù)S與E的關(guān)系糾正錯(cuò)碼NY4.3〔7,4漢明碼譯碼程序的設(shè)計(jì)根據(jù)前面分析的譯碼原理,在程序中,C表示錯(cuò)誤在哪一位。若第1位〔a0出錯(cuò),則C輸出0;若第2位出錯(cuò),則C輸出1;??;若無錯(cuò),則C輸出0。這樣譯碼程序就可以編出來了。譯碼源程序見附錄五、〔7,4漢明碼編譯碼程序的編譯及仿真波形輸入信息元序列[1000]輸出序列為:[1000111][0000111]錯(cuò)誤在第一位〔藍(lán)線表示正確的譯碼[0001011],紅線表示錯(cuò)誤的接收序列[1001011]輸入信息元序列[1001]輸出序列為:[1001100][1101100]錯(cuò)誤在第二位輸入信息元序列[1010]輸出序列為:[1010010][1000010]錯(cuò)誤在第三位輸入信息元序列[1011]輸出序列為:[1011001][1010001]錯(cuò)誤在第四位六、總結(jié)對(duì)于本次課程設(shè)計(jì)的結(jié)束,我真切感覺到自己知識(shí)能力的匱乏,很多東西都只是知道一些淺顯的知識(shí),真正搞懂會(huì)應(yīng)用的東西很少。或許一個(gè)人的進(jìn)步需要一個(gè)緩慢的過程。在過程中需要不斷地借鑒,學(xué)習(xí),汲取別人的東西。同別人的成果中攫取知識(shí)和營養(yǎng),然后它變成自己的東西。通過這次課程設(shè)計(jì)。我學(xué)到了很多東西,首先,通過這次課程設(shè)計(jì),我熟練地掌握了漢明碼的糾錯(cuò)碼的原理,了解的〔7,4漢明碼的相關(guān)知識(shí)。其次,我覺得學(xué)習(xí)理論和實(shí)踐是兩個(gè)層次,理論指導(dǎo)實(shí)踐,而實(shí)踐驗(yàn)證理論,理論往往是在理想的條件下得出的,而實(shí)踐是在現(xiàn)實(shí)生活中進(jìn)行的,所以,實(shí)踐得出的結(jié)論往往與理論的結(jié)論有一定的差別,這是很正常的。團(tuán)結(jié)協(xié)作,互助共贏是時(shí)代的主流。在這次課設(shè)的制作中,交流合作的精神在我們體現(xiàn)的可謂是淋漓盡致。相互探討,學(xué)習(xí)交流,優(yōu)勢(shì)互補(bǔ),這樣才最終處成了這課設(shè)。爭論與交流是解決問題很好的方法,問題也總是在思想與意見的碰撞中得到解決而這也是我們對(duì)理論理解的更為深刻。通過圖書館,搜索引擎查閱資料的能力也得到了相應(yīng)的提升??傊?在這次課程設(shè)計(jì)的制作的過程中學(xué)到了很多東西,能力也有相應(yīng)的提升。在此還要感謝指導(dǎo)老師的辛勤教導(dǎo),感謝老師在此次課程設(shè)計(jì)中給以孜孜不倦的解惑。七、參考文獻(xiàn)李建新現(xiàn)代通信系統(tǒng)分析與仿真—MATLAB通信工具箱.XX:XX電子科技大學(xué)出版社,2000樊昌信通信原理.北京:國防工業(yè)出版社,2002劉敏MATLAB通信仿真與應(yīng)用國防工業(yè)出版社曹志剛等著現(xiàn)代通信原理北京:清華大學(xué)出版社,20015吳偉陵等著移動(dòng)通信原理北京:電子工業(yè)出版社,2005韓利竹,王華MATLAB電子仿真與應(yīng)用北京:國防工業(yè)出版社,20XX.趙靜基于MATLAB的通信系統(tǒng)仿真北京:北京航空航天大學(xué)出版社,20XX.葛哲學(xué)精通MATLAB北京:電子工業(yè)出版社,20XX.附錄一、〔7,4漢明碼編碼源程序functionf=hammingencod<a>G=[1000111;0100110;0010101;0001011];a=input<'輸入信息元序列:'>;c=mod<a*G,2>;disp<'編碼后序列為:'>;disp<c>;x=.01:.01:4;[m,n]=size<[a]'*ones<1,100>>;y=reshape<<[a]'*ones<1,100>>',1,m*n>;plot<x,y>axis<[0401.5]>;set<gca,'XTick',0:1:4>;set<gca,'YTick',0:0.5:1.5>;title<'hanmingencode'>xlabel<'value'>ylabel<'value'>end二、〔7,4漢

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論