版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、沈陽理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)報(bào)告摘 要 漢明碼(Hamming Code)是一種能夠自動(dòng)檢測并糾正一位錯(cuò)碼的線性糾錯(cuò)碼,即SEC(Single Error Correcting)碼,用于信道編碼與譯碼中,提高通信系統(tǒng)抗干擾的能力。本文主要利用MATLAB中SIMULINK通信系統(tǒng)仿真模型庫進(jìn)行漢明碼建模仿真,并調(diào)用通信系統(tǒng)功能函數(shù)進(jìn)行編程,對(duì)漢明碼的性能進(jìn)行分析。漢明碼(Hamming Code)是一種能夠自動(dòng)檢測并糾正一位錯(cuò)碼的線性糾錯(cuò)碼,即SEC(Single Error Correcting)碼,用于信道編碼與譯碼中,提高通信系統(tǒng)抗干擾的能力。關(guān)鍵詞:MATLAB ;漢明碼;SIMULI
2、NK ;性能目 錄1 課程設(shè)計(jì)目的12 課程設(shè)計(jì)要求13 相關(guān)知識(shí)14 課程設(shè)計(jì)分析85 仿真. 116結(jié)果分析.137 參考文獻(xiàn).14 II 沈陽理工大學(xué)通信系統(tǒng)課程設(shè)計(jì)報(bào)告漢明碼仿真程序設(shè)計(jì)1.課程設(shè)計(jì)目的(1)加深漢明碼(Hamming Code)基本理論知識(shí)的理解。(2)培養(yǎng)獨(dú)立開展科研的能力和編程能力。(3)掌握MATLAB軟件的使用。2.課程設(shè)計(jì)要求(1)掌握漢明碼(Hamming Code)的相關(guān)知識(shí)、概念清晰。(2)掌握MATLAB使用方法,利用軟件繪制圖像。(3)程序設(shè)計(jì)合理、能夠正確運(yùn)行。3.相關(guān)知識(shí)3.1引言MATLAB(Matrix Laboratory,矩陣實(shí)驗(yàn)室)是
3、Mathwork公司推出的一套高效率的數(shù)值計(jì)算和可視化軟件。其中,MATLAB通信工具箱是一套用于在通信領(lǐng)域進(jìn)行理論研究、系統(tǒng)開發(fā)、分析設(shè)計(jì)和仿真的專業(yè)化工具軟件包。MATIAB通信工具箱由兩大部分組成:通信系統(tǒng)功能函數(shù)庫和SIMULINK通信系統(tǒng)仿真模型庫。MATLAB通信系統(tǒng)功能函數(shù)庫由七十多個(gè)函數(shù)組成,每個(gè)函數(shù)有多種選擇參數(shù)、函數(shù)功能覆蓋了現(xiàn)代通信系統(tǒng)的各個(gè)方面。這些函數(shù)包括:信號(hào)源產(chǎn)生函數(shù)、信源編碼解碼函數(shù)、糾錯(cuò)控制編碼解碼函數(shù)、調(diào)制解調(diào)函數(shù)(基帶和通帶)、濾波器函數(shù)、傳輸信道模型函數(shù)(基帶和通帶)、TDMA、FDMA、CDMA函數(shù)、同步函數(shù)、工具函數(shù)等。以糾錯(cuò)控制編解碼函數(shù)為例:函數(shù)
4、庫提供了線性分組碼、漢明碼、循環(huán)碼、BCH碼、里德一索洛蒙碼(REEDSOLOMON)、卷積碼等6種糾錯(cuò)控制編碼,每種編碼又有編碼、解碼、矢量輸入輸出、序列輸入輸出等四種形式的函數(shù)表達(dá)。 在SIMULINK通信系統(tǒng)仿真模型庫中,整個(gè)通信系統(tǒng)的流程圖被概括為:信號(hào)的產(chǎn)生與輸出、編碼與解碼、調(diào)制與解調(diào)。在SIMULINK中,通信系統(tǒng)仿真的一般模型如圖3-1所示。 Modulation調(diào)制Error Control Coding糾錯(cuò)控制編碼Source Coding信源編碼Source信源Multiple Access多址復(fù)用Receiver/Filter接收機(jī)/濾波器Channel 信道Trans
5、mitter/Filter發(fā)射機(jī)/濾波器Error Control Decoding糾錯(cuò)控制解碼Demodulation解調(diào)Multiple Access多址復(fù)用Sink輸出Source Decoding信源解碼圖3.1通信系統(tǒng)仿真模型3.2設(shè)計(jì)原理3.2.1漢明碼編碼原理一般來說,若漢明碼長為n,信息位數(shù)為k,則監(jiān)督位數(shù)r=n-k。若希望用r個(gè)監(jiān)督位構(gòu)造出r個(gè)監(jiān)督關(guān)系式來指示一位錯(cuò)碼的n種可能位置,則要求 或 (3.2.1.1)下面以(7,4)漢明碼為例說明原理: 設(shè)漢明碼(n,k)中k=4,為了糾正一位錯(cuò)碼,由式(1)可知,要求監(jiān)督位數(shù)r3。若取r=3,則n=k+r=7。我們用來表示這7個(gè)
6、碼元,用的值表示3個(gè)監(jiān)督關(guān)系式中的校正子,則的值與錯(cuò)誤碼元位置的對(duì)應(yīng)關(guān)系可以規(guī)定如表1所列。表1 校正子和錯(cuò)碼位置的關(guān)系錯(cuò)碼位置錯(cuò)碼位置 001101 010 110 100 111 011000無錯(cuò)碼則由表1可得監(jiān)督關(guān)系式: (3.2.1.2) (3.2.1.3) (3.2.1.4)在發(fā)送端編碼時(shí),信息位的值決定于輸入信號(hào),因此它們是隨機(jī)的。監(jiān)督位、應(yīng)根據(jù)信息位的取值按監(jiān)督關(guān)系來確定,即監(jiān)督位應(yīng)使式(2)式(4)中、的值為0(表示編成的碼組中應(yīng)無錯(cuò)碼) (3.2.1.5)式(5)經(jīng)過移項(xiàng)運(yùn)算,接觸監(jiān)督位 (3.2.1.6) 式(5)其等價(jià)形式為: (3.2.1.7) 式(6)還可以簡記為 或
7、 (3.2.1.8)其中 所以有 (3.2.1.9)式(6)等價(jià)于 (3.2.1.10)其中Q為P的轉(zhuǎn)置,即 (3.2.1.11)式(10)表示,信息位給定后,用信息位的行矩陣乘矩陣Q就產(chǎn)生出監(jiān)督位。我們將Q的左邊加上一個(gè)k×k階單位方陣,就構(gòu)成一個(gè)矩陣G (3.2.1.12)G稱為生成矩陣,因?yàn)橛伤梢援a(chǎn)生整個(gè)碼組,即有 (3.2.1.13)或者 (3.2.1.14)式(13)即漢明碼的編碼原理3.2.2漢明碼糾錯(cuò)原理當(dāng)數(shù)字信號(hào)編碼成漢明碼形式(本文中即A)后在信道中傳輸,由于信道中噪聲的干擾,可能由于干擾引入差錯(cuò),使得接收端收到錯(cuò)碼,因此在接收端進(jìn)行漢明碼糾錯(cuò),以提高通信系統(tǒng)的抗
8、干擾能力及可靠性。 一般來說接收碼組與A不一定相同。若設(shè)接收碼組為一n列的行矩陣B,即 (3.2.2.1)則發(fā)送碼組和接收碼組之差為 (3.2.2.2)E就是傳輸中產(chǎn)生的錯(cuò)碼行矩陣 (3.2.2.3)若ei=0,表示接收碼元無錯(cuò)誤,若ei=1,則表示該接收碼元有錯(cuò)。式(16)可改寫成 (3.2.2.4)若E=0,即接收碼組無錯(cuò),則,將它代人式(8),該是仍成立,即有 (3.2.2.5)當(dāng)接收碼組有錯(cuò)時(shí),E0,將B帶入式(8)后,該式不一定成立。在未超過檢錯(cuò)能力時(shí),式(19)不成立。假設(shè)此時(shí)式(19)的右端為S,即 (3.2.2.6)將 代入式(20),可得由式(8)可知,所以 (3.2.2.7
9、)此處S與前面的有著一一對(duì)應(yīng)關(guān)系,則S能代表錯(cuò)碼位置。因此,糾錯(cuò)原理即,接收端收到碼組后按式(20)計(jì)算出S,再根據(jù)表1判斷錯(cuò)碼情況,進(jìn)行差錯(cuò)糾正。3.3 MATLAB 簡介3.3.1 基本功能MATLAB是很實(shí)用的數(shù)學(xué)軟件它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值運(yùn)算方面首屈一指。MATLAB可以進(jìn)行運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接接其他編程語言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、金融建模設(shè)計(jì)與分析等領(lǐng)域。 MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成相同的事情簡捷得多
10、,并且mathwork也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件??梢灾苯诱{(diào)用,用戶也可以將自己編寫的實(shí)用程序?qū)氲組ATLAB函數(shù)庫中方便自己以后調(diào)用,此外許多的MATLAB愛好者都編寫了一些經(jīng)典的程序,用戶可以直接進(jìn)行下載就可以用。3.3.2 MATLAB 產(chǎn)品應(yīng)用MATLAB 產(chǎn)品族可以用來進(jìn)行以下各種工作: 數(shù)值分析 數(shù)值和符號(hào)計(jì)算 工程與科學(xué)繪圖 控制系統(tǒng)的設(shè)計(jì)與仿真 數(shù)字信號(hào)處理技術(shù) 通訊系統(tǒng)設(shè)計(jì)與仿真 3.3.3 MATLAB 特點(diǎn)此高級(jí)語言可用于技術(shù)計(jì)算 此開發(fā)環(huán)境可對(duì)代碼、文件和數(shù)據(jù)進(jìn)行管理 交互式工具可以按迭代的方式探查、設(shè)計(jì)及求解問題 二維和三
11、維圖形函數(shù)可用于可視化數(shù)據(jù) 各種工具可用于構(gòu)建自定義的圖形用戶界面 3.3.4 MATLAB系列工具優(yōu)勢(1)友好的工作平臺(tái)和編程環(huán)境MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數(shù)和文件,其中許多工具采用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調(diào)試器、路徑搜索和用于用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業(yè)化以及軟件本身的不斷升級(jí),MATLAB的用戶界面也越來越精致,更加接近Windows的標(biāo)準(zhǔn)界面,人機(jī)交互性更強(qiáng),操作更簡單。而且新版本的MATLAB提供了完整的聯(lián)機(jī)查詢、幫助系統(tǒng),極大的方便了用戶的使用。簡單的編程環(huán)境提
12、供了比較完備的調(diào)試系統(tǒng),程序不必經(jīng)過編譯就可以直接運(yùn)行,而且能夠及時(shí)地報(bào)告出現(xiàn)的錯(cuò)誤及進(jìn)行出錯(cuò)原因分析。 (2)簡單易用的程序語言MATLAB一個(gè)高級(jí)的矩陣/陣列語言,它包含控制語句、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、輸入和輸出和面向?qū)ο缶幊烫攸c(diǎn)。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個(gè)較大的復(fù)雜的應(yīng)用程序(M文件)后再一起運(yùn)行。新版本的MATLAB語言是基于最為流行的C語言基礎(chǔ)上的,因此語法特征與C語言極為相似,而且更加簡單,更加符合科技人員對(duì)數(shù)學(xué)表達(dá)式的書寫格式。使之更利于非計(jì)算機(jī)專業(yè)的科技人員使用。而且這種語言可移植性好、可拓展性極強(qiáng),這也是MATLAB能夠深入到科學(xué)研究及工程計(jì)算
13、各個(gè)領(lǐng)域的重要原因。 (3)強(qiáng)大的科學(xué)計(jì)算機(jī)數(shù)據(jù)處理能力MATLAB是一個(gè)包含大量計(jì)算算法的集合。其擁有600多個(gè)工程中要用到的數(shù)學(xué)運(yùn)算函數(shù),可以方便的實(shí)現(xiàn)用戶所需的各種計(jì)算功能。函數(shù)中所使用的算法都是科研和工程計(jì)算中的最新研究成果,而前經(jīng)過了各種優(yōu)化和容錯(cuò)處理。在通常情況下,可以用它來代替底層編程語言,如C復(fù)數(shù)的各種運(yùn)算、三角函數(shù)和其他初等數(shù)學(xué)運(yùn)算、多維數(shù)組操作以及建模動(dòng)態(tài)仿真等。 3.4 SIMULINK簡介SIMULINK是MATLAB軟件的擴(kuò)展,它是實(shí)現(xiàn)動(dòng)態(tài)系統(tǒng)建模和仿真的一個(gè)軟件包,它與MATLAB語言的主要區(qū)別在于,其與用戶交互接口是基于Windows的模型化圖形輸入,其結(jié)果是使得
14、用戶可以把更多的精力投入到系統(tǒng)模型的構(gòu)建,而非語言的編程上。在simulink環(huán)境中,利用鼠標(biāo)就可以在模型窗口中直觀地“畫”出系統(tǒng)模型,然后直接進(jìn)行仿真。它為用戶提供了方框圖進(jìn)行建模的圖形接口,采用這種結(jié)構(gòu)畫模型就像你用手和紙來畫一樣容易。而所謂模型化圖形輸入是指SIMULINK提供了一些按功能分類的基本的系統(tǒng)模塊,用戶只需要知道這些模塊的輸入輸出及模塊的功能,而不必考察模塊內(nèi)部是如何實(shí)現(xiàn)的,通過對(duì)這些基本模塊的調(diào)用,再將它們連接起來就可以構(gòu)成所需要的系統(tǒng)模型(以.mdl檔進(jìn)行存取),進(jìn)而進(jìn)行仿真與分析。SIMILINK 模塊庫按功能進(jìn)行分類,包括以下8類子庫: Continuous(連續(xù)模塊
15、),Discrete(離散模塊),F(xiàn)unction&Tables(函數(shù)和平臺(tái)模塊),Math(數(shù)學(xué)模塊),Nonlinear(非線性模塊),Signals&Systems(信號(hào)和系統(tǒng)模塊),Sinks(接收器模塊),Sources(輸入源模塊)。 4.課程設(shè)計(jì)分析4.1 SIMULINK電路圖在設(shè)計(jì)中,本系統(tǒng)信號(hào)產(chǎn)生模塊選用伯努利二進(jìn)制序列產(chǎn)生器(Bernoulli Binary Generator)來輸出速率為100Bd的隨機(jī)數(shù)字信號(hào),進(jìn)入Hamming encoder進(jìn)行編碼,在送入AWGN信道(加入高斯白噪聲)傳輸,接收信號(hào)送入Hamming decoder進(jìn)行差錯(cuò)糾正,
16、其后加一誤碼率計(jì)算模塊(Error Rate Calculation)計(jì)算誤碼率,,電路如圖4-1所示。 圖4.1 4.2 模塊參數(shù)設(shè)置 圖4.2 漢明碼編碼器的主要參數(shù) 圖4.3 漢明碼解碼器的參數(shù) 圖4.4伯努利二進(jìn)制隨機(jī)數(shù)產(chǎn)生器的主要參數(shù)5.仿真5.1程序5.1.1程序函數(shù)介紹MATLAB中提供了漢明碼的編碼和譯碼函數(shù),本程序直接調(diào)用進(jìn)行編程。encode函數(shù)功能:編碼函數(shù)語法:code=encode(msg,N,K)說明:該函數(shù)對(duì)二進(jìn)制信息msg進(jìn)行漢明編碼,K為信息位長度,N為碼字長度。msg是一個(gè)K列矩陣。decode函數(shù)功能:譯碼函數(shù)語法:rcvcode=decode(code,
17、N,K)說明:該函數(shù)對(duì)接受碼字進(jìn)行譯碼,恢復(fù)出原始信息,譯碼參數(shù)及方式必須和編碼時(shí)采用的完全相同。hammgen函數(shù)功能:漢明碼生成矩陣和校驗(yàn)矩陣產(chǎn)生函數(shù)語法:H=hammgen(M) H,G=hammgen(M) H,G,N,K=hammgen(M)說明:該函數(shù)的功能是產(chǎn)生生成矩陣和校驗(yàn)矩陣,其中M=N-K為校驗(yàn)位的長度,H為漢明碼的校驗(yàn)矩陣,G為漢明碼的生成矩陣。5.1.2 主程序K=4;N=7;msg=randint(200,4,2) %信息產(chǎn)生code=encode(msg,N,K) %漢明編碼code_noise=rem(code+rand(200,7)>0.95,2 ) %加
18、噪聲r(shí)cv=decode(code_noise,N,K) %漢明譯碼disp('Error rate in the received code: ' num2str(symerr(code,code_noise)/length(code)disp('Error rate after decode: ' num2str(symerr(msg,rcv)/length(msg)%計(jì)算誤碼率 5.2 SIMULINK仿真本系統(tǒng)由信號(hào)產(chǎn)生模塊、信號(hào)漢明編碼模塊、AWGN信道、信號(hào)漢明譯碼模塊、誤碼率計(jì)算模塊組成。5.2.2 ratio文件程序x=0:20 %定義信噪比的范
19、圍 y=x;for i=1:length(x)xSNR=x(i); %輸入信噪比sim('fangzhen'); %運(yùn)行fangzhen SIMULINK仿真文件y(i)=xErrorRate(1); %誤碼率endsemilogy(x,y); grid on;xlabel('高斯信道中的信噪比/dB');ylabel('誤碼率');6.結(jié)果分析圖6.1誤碼顯示圖圖6.2 誤碼率與頻譜關(guān)系曲線圖(1)誤碼部分一共分為兩個(gè)部分,第一個(gè)部分是Error Rate Calculation(誤碼率計(jì)算),它可以設(shè)定輸出To workspace(到工作空間
20、)。輸出的數(shù)據(jù)是一個(gè)n行(與輸入數(shù)據(jù)數(shù)目相等)3列的矩陣。第1列是誤碼率,第2列是誤碼的數(shù)量,第3列是碼元的總數(shù)就是前面所說的n。所以Display模塊的三行分別表示誤碼率為0.02059,誤碼的數(shù)量為206,碼元的總量是1e+004。(1) 結(jié)果所示的是一個(gè)誤碼率與頻譜關(guān)系曲線圖,它的橫坐標(biāo)表示的是二進(jìn)制均衡信道的誤碼概率,范圍在0 , 0.05,步長為0.01;縱坐標(biāo)表示的是經(jīng)過差錯(cuò)控制后仿真系統(tǒng)的誤碼率,范圍在0 , 0.05,步長為0.01。6.2小結(jié) 在這次基于MATLAB的通信原理課程設(shè)計(jì)中,我最大的收獲是對(duì)MATLAB軟件的使用有了更深的了解,尤其是simulink仿真板塊的運(yùn)用,更加熟練,此外,對(duì)循環(huán)碼的理論知識(shí)有了進(jìn)一步
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 動(dòng)物檢疫就業(yè)前景
- 2026年1月飛瓜抖音電商營銷月報(bào)-
- 口罩生產(chǎn)供應(yīng)協(xié)議2025年數(shù)據(jù)隱私
- 超聲初級(jí)考試試題及答案
- 個(gè)人防護(hù)考試題及答案
- 2025-2026人教版初中九年級(jí)道德與法治上學(xué)期期末測試卷
- 2025-2026五年級(jí)音樂上學(xué)期測試
- 2025-2026九年級(jí)道德與法治上學(xué)期期末
- 腸道微生態(tài)調(diào)節(jié)與終末期腹瀉護(hù)理新策略
- 公雞和芝麻課件
- 冷庫安全生產(chǎn)責(zé)任制制度
- 陜西省西安市高新一中、交大附中、師大附中2026屆高二生物第一學(xué)期期末調(diào)研模擬試題含解析
- 2025兒童心肺復(fù)蘇與急救指南詳解課件
- 湖北中煙2024年招聘考試真題(含答案解析)
- 運(yùn)維檔案管理制度
- 2025年航空發(fā)動(dòng)機(jī)涂層材料技術(shù)突破行業(yè)報(bào)告
- 2026年汽車美容店員工績效工資考核辦法細(xì)則
- 公路施工安全管理課件 模塊五 路基路面施工安全
- 2025智能化產(chǎn)業(yè)市場深度觀察及未來方向與投資潛力研究調(diào)研報(bào)告
- 藥企產(chǎn)品經(jīng)理工作全解析
- 護(hù)士夜班應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論