




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于matlab的信道編碼仿真 畢 業(yè) 論 文(設(shè)計)題 目:基于matlab的信道編碼仿真學(xué) 號: 姓 名: 年 級: 學(xué) 院:信息科學(xué)技術(shù)學(xué)院 系 別:電子信息工程 專 業(yè):電子信息工程 指導(dǎo)教師: 完成日期: 42摘 要 通信技術(shù)的飛速發(fā)展,信道編碼已經(jīng)成功地應(yīng)用于各種通信系統(tǒng)中。以及各種傳輸方式對可靠性要求的不斷提高,信道編碼技術(shù)作為抗干擾技術(shù)的一種重要的手段,在數(shù)字通信技術(shù)領(lǐng)域和數(shù)字傳輸系統(tǒng)中顯示出越來越重要的作用。 信道編碼的目的是為了改善通信系統(tǒng)的傳輸質(zhì)量。由于實(shí)際信道存在噪聲和干擾,使發(fā)送的碼字與信道傳輸后所接收的碼字之間存在差異,稱這種差異為差錯。一般情況下,信道噪聲、干擾越
2、大,碼字產(chǎn)生差錯的概率也就越大。 本文利用matlab對二進(jìn)制對稱信道(BSC),高斯白噪聲信道(AWGN)兩種信道的仿真,(7,4)Hamming碼對信道的仿真,通過誤碼率的曲線圖來了解信道的編碼。并利用matlab的simulink模塊仿真,運(yùn)用simulink里的卷積碼viterbi譯碼器來對二進(jìn)制對稱信道和高斯白噪聲信道的仿真,觀察誤碼率的曲線圖來了解2個信道的不同。關(guān)鍵字:matlab,信道,編碼,譯碼,Simulink。Abstract With the rapid development of communication technology, channel coding ha
3、s been successfully applied to various communications systems. And a variety of transmission of the continuous improvement of reliability requirements, anti-jamming channel coding technology as an important means of technology in the field of digital communications technology and digital transmissio
4、n systems in a more and more important role. The purpose of channel coding is to improve the transmission quality of communications systems. As the actual existence of the channel noise and interference, the transmitted codewords and channel transmission received after the difference between code wo
5、rds, said this difference is wrong. Under normal circumstances, channel noise, the greater the interference, the code word generated the greater the probability of error. In this paper, matlab binary symmetric channel (BSC), Gaussian white noise channel (AWGN) two channel simulation, (7,4) Hamming c
6、ode simulation of the channel, through the bit error rate curve to understand the channel coding. Using matlab to simulink block simulation, using simulink in the viterbi decoder to convolutional codes on the binary symmetric channel and Gaussian white noise channel simulation, observation error rat
7、e graphs to understand the two different channelsKeywords: matlab, channel, coding, decoding, Simulink.目錄1引言11.1選題的目的和意義11.2本選題的理論依據(jù)、研究內(nèi)容12.信道編碼以及其運(yùn)行環(huán)境MATLAB的介紹22.1 信道編碼的概念及分類22.2 信道編碼定理及信道編碼中所包含的各種碼類的簡介22.2.1卷積碼22.2.2線性分組碼32.2.3循環(huán)碼32.3 MATLAB語言的簡介42.4 Simulink53.信道53.1二進(jìn)制對稱信道(BSC)53.2二進(jìn)制刪除信道(BEC)63
8、.3高斯白噪聲信道(AWGN)64. Hamming碼74.1漢明碼74.2校驗方法74.3漢明碼編碼94.3.1漢明碼對高斯白噪聲信道94.3.2漢明碼對二進(jìn)制對稱信道的仿真115.卷積碼155.1卷積碼定義與原理155.2維特比譯碼原理155.3卷積碼譯碼器對高斯白噪聲信道的設(shè)計與仿真185.3.1卷積碼譯碼器的設(shè)計與仿真195.3.2簡化維特比譯碼器的仿真225.3.3卷積碼譯碼器的誤碼率分析245.4卷積編碼器在二進(jìn)制對稱信道(BSC)中的性能256.卷積碼譯碼器對二進(jìn)制對稱信道和高斯白噪聲信道仿真比較307.總結(jié)31致謝32參考文獻(xiàn)33附錄1:34附錄2:37附錄3:40附錄4:41
9、1引言1.1選題的目的和意義數(shù)字信號在傳輸中往往由于各種原因,使得在傳送的數(shù)據(jù)流中產(chǎn)生誤碼,從而使接收端產(chǎn)生圖象跳躍、不連續(xù)、出現(xiàn)馬賽克等現(xiàn)象。所以通過信道編碼這一環(huán)節(jié),對數(shù)碼流進(jìn)行相應(yīng)的處理,使系統(tǒng)具有一定的糾錯能力和抗干擾能力,可極大地避免碼流傳送中誤碼的發(fā)生。誤碼的處理技術(shù)有糾錯、交織、線性內(nèi)插等。提高數(shù)據(jù)傳輸效率,降低誤碼率是信道編碼的任務(wù)。信道編碼的本質(zhì)是增加通信的可靠性。但信道編碼會使有用的信息數(shù)據(jù)傳輸減少,信道編碼的過程是在源數(shù)據(jù)碼流中加插一些碼元,從而達(dá)到在接收端進(jìn)行判錯和糾錯的目的。1.2本選題的理論依據(jù)、研究內(nèi)容在數(shù)字通信系統(tǒng)中由于信道內(nèi)存在加性噪聲及信道傳輸特性不理想等容
10、易造成碼間串?dāng)_同時多用戶干擾、多徑傳播和功率限制等也導(dǎo)致錯誤譯碼。為了確保系統(tǒng)的誤比特率指標(biāo)通常采用信道編碼。信道編碼是為了保證信息傳輸?shù)目煽啃?、提高傳輸質(zhì)量而設(shè)計的一種編碼。它是在信息碼中增加一定數(shù)量的多余碼元,使碼字具有一定的抗干擾能力。提高信息傳輸?shù)挠行院涂煽啃允冀K是通信技術(shù)所追求的目標(biāo),而信道編碼能夠顯著的提升信息傳輸?shù)目煽啃浴:喪鲂诺谰幋a理論,詳細(xì)說明分組碼的編譯原理、實(shí)現(xiàn)方法及檢錯糾錯能力,用MATLAB仿真信道編碼條不同信道下的影響。學(xué)習(xí)卷積碼的基本原理和編碼方法。學(xué)習(xí)基本分組碼的原理和編碼方法。理解二進(jìn)制對稱信道(BSC),二進(jìn)制擦除信道(BEC),高斯白噪聲信道(AWGN)
11、。理解碼率(code rate)和誤碼率(bit error rate)的意義。利用(7,4)Hamming碼對不同信道進(jìn)行仿真。自己設(shè)計一個卷積碼,并利用Viterbi譯碼二進(jìn)制對稱信道(BSC),高斯白噪聲信道(AWGN)2個信道進(jìn)行仿真,比較結(jié)果。2.信道編碼以及其運(yùn)行環(huán)境MATLAB的介紹2.1 信道編碼的概念及分類進(jìn)行信道編碼是為了提高信號傳輸?shù)目煽啃?,改善通信系統(tǒng)的傳輸質(zhì)量,研究信道編碼的目標(biāo)是尋找具體構(gòu)造編碼的理論與方法。從原理上,構(gòu)造信道碼的基本思路是根據(jù)一定的規(guī)律在待發(fā)送的信息碼元中人為的加入一定的多余碼元,以引入最小的多余度為代價來換取最好的抗干擾性能。信道編碼是通過信道編
12、碼器和譯碼器實(shí)現(xiàn)的用于提高信道可靠性的理論和方法,是信息論的內(nèi)容之一。信道編碼大致分為兩類:信道編碼定理,從理論上解決理想編碼器、譯碼器的存在性問題,也就是解決信道能傳送的最大信息率的可能性和超過這個最大值時的傳輸問題。構(gòu)造性的編碼方法以及這些方法能達(dá)到的性能界限。編碼定理的證明,從離散信道發(fā)展到連續(xù)信道,從無記憶信道到有記憶信道,從單用戶信道到多用戶信道,從證明差錯概率可接近于零到以指數(shù)規(guī)律逼近于零,正在不斷完善。編碼方法,在離散信道中一般用代數(shù)碼形式,其類型有較大發(fā)展,各種界限也不斷有人提出,但尚未達(dá)到編碼定理所啟示的限度。在連續(xù)信道中常采用正交函數(shù)系來代表消息,這在極限情況下可達(dá)到編碼定
13、理的限度,不是所有信道的編碼定理都已被證明。2.2 信道編碼定理及信道編碼中所包含的各種碼類的簡介1948年,信息論的奠基人CEShannon在他的開創(chuàng)性論文“通信的數(shù)學(xué)理論”中,提出了著名的有噪信道編碼定理。他指出:對任何信道,只要信息傳輸速率R不大于信道容量C, 就一定存在這樣的編碼方法:在采用最大似然譯碼時,其誤碼率可以任意小。該定理在理論上給出了對給定信道通過編碼所能達(dá)到的編碼增益的上限,并指出了為達(dá)到理論極限應(yīng)采用的譯碼方法。在信道編碼定理中,香農(nóng)提出了實(shí)現(xiàn)最佳編碼的三個基本條件 :(1)采用隨機(jī)編譯碼方式 ;(2)編碼長度 ,即分組的碼組長度無限;(3)譯碼采用最佳的最大似然譯碼算
14、法。2.2.1卷積碼卷積碼(convolution code)屬于非分組碼,它是一種小分組(n ,k)多碼段相關(guān)、糾錯能力較強(qiáng)的FEC碼。卷積碼不同于(n, k)分組碼,它將(n, k)變成很短的分組(n, k),如(2 ,1)、(3, 1)(3, 2)卷積碼等。每一個監(jiān)督元不僅是由本碼段(n, k)的k位信碼所決定,而且與其前N-1個碼段的信碼有關(guān),因此稱為卷積碼。它適于串行傳送,延時較小。本碼段(n,k)以及其前(N-1)段構(gòu)成的N個分組碼段稱為約束長度:其碼元數(shù)為Nn比特,而N稱為約束度。因此,各碼段(n, k)不像(n, k)分組碼是一個獨(dú)立糾錯碼單元,其差錯控制能力由N個碼段來決定。
15、所以通常將卷積碼寫為(n, k,N),其中N=m+1,m是編碼電路的移位寄存器數(shù)目。卷積碼分為兩種:(1)基本卷積碼:基本卷積碼編碼效率為,1/2, 編碼效率較低,優(yōu)點(diǎn)是糾錯能力強(qiáng)。(2)收縮卷積碼:如果傳輸信道質(zhì)量較好,為提高編碼效率,可以采樣收縮截短卷積碼。有編碼效率為:1/2、2/3、3/4、5/6、7/8這幾種編碼效率的收縮卷積碼編碼效率高,一定帶寬內(nèi)可傳輸?shù)挠行П忍芈试龃?,但糾錯能力越減弱。2.2.2線性分組碼簡單來說,所謂“分組碼”就是指碼字的生成只與當(dāng)前的源數(shù)據(jù)有關(guān),而與前后的數(shù)據(jù)無關(guān)(相應(yīng)地,與前后數(shù)據(jù)相關(guān)的碼稱為卷積碼)。分組碼將連續(xù)的數(shù)據(jù)比特流分割為長度固定的組;各組進(jìn)一步
16、以m比特為單位分割為符號(Symbol),通常取3比特或者8比特數(shù)據(jù)組成一個符號。k個符號一起組成源字(Source word),經(jīng)過編碼后變?yōu)殚L度為n的碼字(Code word),稱為m比特符號的(n , k)分組碼。所謂“線性”,是指編碼過程均為線性變換,即可以通過矩陣變換來表示。目前研究的糾錯碼大都屬于線性碼。在線性空間中,所有可能的m比特源字都可以進(jìn)行編碼變換,而無需關(guān)心這m比特數(shù)據(jù)所代表的含義。所謂“系統(tǒng)”,是指碼字中包含了源字和變換所得的校驗字。2.2.3循環(huán)碼循環(huán)碼的特點(diǎn)是符合(n, k)線形分組碼特點(diǎn)-在碼內(nèi)(碼子集合)的任意兩個碼字之和為該碼中的一個碼字,這一特征表明(n,
17、k)循環(huán)碼屬于(n, k)線形分組碼的一個子類。(n, k)碼中任何一個碼字連續(xù)位移i位后的碼字,仍屬于該循環(huán)碼的一個碼字。循環(huán)碼中的生成多項式的必要條件為某(n, k)碼是否位循環(huán)的必要條件是:冪為碼長n的多項式x+1,可分解出至少有1個因式的最高冪次為n-k=r,即該因式最高次項為x,最低項為常數(shù)1。其生成多項式的充分條件是由必要條件得到的g(x),其多項式的非零權(quán)系數(shù)個數(shù)還應(yīng)等于相應(yīng)(n, k)分碼組的d。之所以補(bǔ)充這一“充分”條件,是因為符合必要條件的g(x)并不一定能得到與其相應(yīng)分組碼相同(n, k)的差錯控制能力。循環(huán)編碼碼步驟:源碼為m(x)=mx+mx+m,應(yīng)首先提升n-k位,
18、變?yōu)閤m(x)。然后以生成多項式g(x)去除,得 =q(x)+ 式(2-1) 可得循環(huán)碼:C(x)=xm(x)+b(x)。2.3 MATLAB語言的簡介MATLAB是矩陣實(shí)驗室(MatrixLaboratory)之意,除具備卓越的數(shù)值計算能力外,它還提供了專業(yè)水平的符號計算,文字處理,可視化建模仿真和實(shí)時控制等功能。MATLAB 將高性能的數(shù)值計算和可視化集成在一起,并提供了大量的內(nèi)置函數(shù),從而被廣泛地應(yīng)用于科學(xué)計算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和設(shè)計工作,而且利用MATLAB產(chǎn)品的開放式結(jié)構(gòu),可以非常容易地對 MATLAB的功能進(jìn)行擴(kuò)充,從而在不斷深化對問題認(rèn)識的同時,不斷完善MAT
19、LAB 產(chǎn)品以提高產(chǎn)品自身的競爭能力。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué),工程中常用的形式十分相似,故用MATLAB來解算問題要比用C、FORTRAN等語言完相同的事情簡捷得多。 開放性使MATLAB廣受用戶歡迎。除內(nèi)部函數(shù)外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構(gòu)造新的專用工具包。Matlab軟件最好的教材是它的幫助文件。只要硬盤容量夠大,極力推薦安裝完整的幫助文檔,即使你對閱讀英文不是很有信心,但我相信其足夠的實(shí)例還是能讓你對要查詢的命令函數(shù)有一定的了解的。有兩種方法取得幫助信息:一是直接在命令窗口輸入>
20、;>help 函數(shù)名;如help imread,會得到相應(yīng)函數(shù)的有關(guān)幫助信息。二是在幫助窗口中查找相應(yīng)信息。不同版本的幫助菜單界面有所不同,這只能依賴于自己去熟悉了。但總體上都和windows的界面具有相似的處理過程。2.4 SimulinkSimulink是The MathWorks公司開發(fā)的用于動態(tài)系統(tǒng)和嵌入式系統(tǒng)的多領(lǐng)域仿真和基于模型的設(shè)計工具,常集成于MathWorks公司的另一產(chǎn)品mtlab中與之配合使用。Simulink提供了一個交互式的圖形化環(huán)境及可定制模塊庫(Library),可對各種時變系統(tǒng),例如通訊、控制、信號處理、視頻處理和圖像處理系統(tǒng)等進(jìn)行設(shè)計、仿真、執(zhí)行和測試。
21、與MATLAB類似,Simulink的功能可以通過購買或自定義的工具箱不斷擴(kuò)展。 另外,Simulink與MATLAB緊密集成,可以直接訪問MATLAB大量的工具來進(jìn)行算法研發(fā)、仿真的分析和可視化、批處理腳本的創(chuàng)建、建模環(huán)境的定制以及信號參數(shù)和測試數(shù)據(jù)的定義。它的主要特點(diǎn)有1:1. 豐富的可擴(kuò)充的預(yù)定義模塊庫 2. 交互式的圖形編輯器來組合和管理直觀的模塊圖 3. 以設(shè)計功能的層次性來分割模型,實(shí)現(xiàn)對復(fù)雜設(shè)計的管理 4. 通過Model Explorer 導(dǎo)航、創(chuàng)建、配置、搜索模型中的任意信號、參數(shù)、屬性,生成模型代碼 5. 提供API用于與其他仿真程序的連接或與手寫代碼集成 6. 使用Emb
22、edded MATLAB模塊在Simulink和嵌入式系統(tǒng)執(zhí)行中調(diào)用MATLAB算法 7. 使用定步長或變步長運(yùn)行仿真,根據(jù)仿真模式(Normal,Accelerator,Rapid Accelerator)來決定以解釋性的方式運(yùn)行或以編譯C代碼的形式來運(yùn)行模型 8. 圖形化的調(diào)試器和剖析器來檢查仿真結(jié)果,診斷設(shè)計的性能和異常行為 9. 可訪問MATLAB從而對結(jié)果進(jìn)行分析與可視化,定制建模環(huán)境,定義信號參數(shù)和測試數(shù)據(jù) 10. 模型分析和診斷工具來保證模型的一致性,確定模型中的錯誤 。3.信道3.1二進(jìn)制對稱信道(BSC)二進(jìn)制對稱信道是離散無記憶信道在J=K=2時的特例。它的輸入和輸出都只有
23、0和1兩種符號,并且發(fā)送0而接受到1,以及發(fā)送1而收到0(即誤碼)的概率相同,所以稱信道是對稱的。此時條件差錯概率由p表示。二進(jìn)制對稱信道的轉(zhuǎn)移概率如圖3.1 圖3.1 二進(jìn)制對稱信道3.2二進(jìn)制刪除信道(BEC) 圖3.2二進(jìn)制刪除信道信道的特點(diǎn)是,信源傳輸0或1時,接收端以1-a的概率正確接收,以概率a被刪除。3.3高斯白噪聲信道(AWGN)在信號傳輸?shù)倪^程中,它會不可避免地受到各種干擾,這些干擾統(tǒng)稱為“噪聲”。加性高斯白噪聲AWGN是最常見的一種噪聲。加性高斯白噪聲是最簡單的一種噪聲,它表現(xiàn)為信號圍繞平均值的一種隨機(jī)波動過程。加性高斯白噪聲的均值為o,方差表現(xiàn)為噪聲功率的大小。一放情況下
24、,噪聲功率越大,信號的波動幅度就越大,接收端接收到的信號的誤比特率就越高。在研究通信系統(tǒng)的誤碼率與信道質(zhì)量的關(guān)系時,一放先研究它在加性高斯白噪聲信道下的性能,然后再把它推廣到具有快衰落的復(fù)雜情況。4. Hamming碼4.1漢明碼當(dāng)計算機(jī)存儲或移動數(shù)據(jù)時,可能會產(chǎn)生數(shù)據(jù)位錯誤,這時可以利用漢明碼來檢測并糾錯,簡單的說,漢明碼是一個錯誤校驗碼碼集,由Bell實(shí)驗室的R.W.Hamming發(fā)明,因此定名為漢明碼。與其他的錯誤校驗碼類似,漢明碼也利用了奇偶校驗位的概念,通過在數(shù)據(jù)位后面增加一些比特,可以驗證數(shù)據(jù)的有效性。利用一個以上的校驗位,漢明碼不僅可以驗證數(shù)據(jù)是否有效,還能在數(shù)據(jù)出錯的情況下指明
25、錯誤位置。在接受端通過糾錯譯碼自動糾正傳輸中的差錯來實(shí)現(xiàn)碼糾錯功能,稱為前向糾錯FEC。在數(shù)據(jù)鏈路中存在大量噪音時,F(xiàn)EC可以增加數(shù)據(jù)吞吐量。通過在傳輸碼列中加入冗余位(也稱糾錯位)可以實(shí)現(xiàn)前向糾錯。但這種方法比簡單重傳協(xié)議的成本要高。漢明碼利用奇偶塊機(jī)制降低了前向糾錯的成本。4.2校驗方法 進(jìn)行奇偶校驗的方法是先計算數(shù)據(jù)中1的個數(shù),通過增加一個0或1(稱為校驗位),使1的個數(shù)變?yōu)槠鏀?shù)(奇校驗)或偶數(shù)(偶校驗)。例如,數(shù)據(jù)1001總共是4個比特位,包括2個1,1的數(shù)目是偶數(shù),因此,如果是偶校驗,那么增加的校驗位就是一個0,反之,增加一個1作為校驗位。通過“異或”運(yùn)算來實(shí)現(xiàn)偶校驗,“同或”運(yùn)算來
26、實(shí)現(xiàn)奇校驗。單個比特位的錯誤可以通過計算1的數(shù)目是否正確來檢測出來,如果1的數(shù)目錯誤,說明有一個比特位出錯,這表示數(shù)據(jù)在傳輸過程中受到噪音影響而出錯。利用更多的校驗位,漢明碼可以檢測兩位碼錯,每一位的檢錯都通過數(shù)據(jù)中不同的位組合來計算出來。校驗位的數(shù)目與傳輸數(shù)據(jù)的總位數(shù)有關(guān),可以通過漢明規(guī)則進(jìn)行計算: d+p+1<=2的p次方 d表示傳輸數(shù)據(jù)位數(shù)目,p表示校驗位數(shù)目。兩部分合稱漢明碼字,通過將數(shù)據(jù)位與一個生成矩陣相乘,可以生成漢明碼字。 2008-07-05 19:10 針對4位數(shù)據(jù)的漢明碼編碼示意圖 漢明碼是一個在原有數(shù)據(jù)中插入若干校驗碼來進(jìn)行錯誤檢查和糾正的編碼技術(shù)。以典型的4位數(shù)據(jù)
27、編碼為例,漢明碼將加入3個校驗碼,從而使實(shí)際傳輸?shù)臄?shù)據(jù)位達(dá)到7個(位),它們的位置如果把上圖中的位置橫過來就是: 數(shù)據(jù)位 1234567 代碼 P1 P2 D8 P3 D4D2 D1 說明 第1個漢明碼 第2個漢明碼 第1個數(shù)據(jù)碼 第3個漢明碼 第2個數(shù)據(jù)碼 第3個數(shù)據(jù)碼 第4個數(shù)據(jù)碼 注:Dx中的x是2的整數(shù)冪(下面的冪都是指整數(shù)冪)結(jié)果,多少冪取決于碼位,D1是0次冪,D8是3次冪,想想二進(jìn)制編碼就知道了。另外,漢明碼加插的位置也是有規(guī)律的。以四位數(shù)據(jù)為例,第一個漢明碼是第一位,第二個是第二位,第三個是第四位,1、2、4都是2的整數(shù)冪結(jié)果,而這個冪次數(shù)是從0開始的整數(shù)。這樣我們可以推斷出來
28、,漢明碼的插入位置為1(20 (注:20表示2的0次冪))、2(21)、4(22)、8(23)、16(24)、32(25)4.3漢明碼編碼4.3.1漢明碼對高斯白噪聲信道隨機(jī)信號源:function out,rc=inform(k) rc=rand(k,1); for n=1:k if rc(n)>=0.5 out(n)=1; else out(n)=0; end end產(chǎn)生高斯噪聲:function out=noise(snr,k,r)snr=10(snr/10);rate=k/(k+r);q=1/(sqrt(2*snr*rate);out=randn(1,k+r)*q;漢明碼編碼:f
29、unction code=hamming(ic,k,P)IG=eye(k);G=IG,P'code=rem(ic*G,2);漢明碼譯碼:function out=dehamming(in,k,r,P)m=k+r;IH=eye(r);H=P,IH;S=rem(in*H',2);n=0;while n<m n=n+1; h=H(:,n); if S=h' break; endendin(n)=1-in(n);for i=1:k out(i)=in(i);end 調(diào)制:function out=modd(in,k,r)m=k+r;for n=1:m if in(n)&l
30、t;1 out(n)=-1; else out(n)=1; endend解調(diào):function out=demod(in,k,r)m=k+r;for n=1:m if in(n)<0 out(n)=0; else out(n)=1; endend總程序k=4; %信息位r=3; %監(jiān)督位P=1 1 1 0; %校驗矩陣 0 1 1 1; 1 1 0 1;SNR=1; %信噪比N=1000; %測試的數(shù)據(jù)包數(shù)目w=0; %譯碼錯誤碼元數(shù)目統(tǒng)計的變量n=1; while n<N %測試數(shù)據(jù)包 ic,rc=inform(k); %產(chǎn)生隨機(jī)信號源 hc=hamming(ic,k,P); %
31、漢明碼編碼 mc=modd(hc,k,r); %調(diào)制 nc=mc+noise(SNR,k,r); %通過帶噪聲信道 dmc=demod(nc,k,r); %解調(diào) dhc=dehamming(dmc,k,r,P); %漢明碼譯碼 for m=1:k %統(tǒng)計譯碼錯誤碼元數(shù) if dhc(m)=ic(m) w=w+1; end end n=n+1;endBER=w/(N*k) %計算誤碼率semilogy(SNR,BER);仿真結(jié)果分析:圖4.3.1漢明碼對AWGN信道仿真的誤碼率曲線圖對圖4的觀察,我們可以看到,在高斯白噪聲信道里當(dāng)信噪比越來越大時,誤碼率越來越低,到一定程度,信道的誤碼率會為0。
32、仿真結(jié)果和理論結(jié)果基本一致。4.3.2漢明碼對二進(jìn)制對稱信道的仿真% (7,4)漢明碼仿真 %定義變量(7,4)漢明碼模擬k = 4; % n = 7; % p_vector = 0.1:0.01:1; % 向量P的值,誤碼率N = length(p_vector); % p_vector的長度RUNS = 5000; % 運(yùn)行數(shù)% 碼字表xtable = 0 0 0 0 0 0 0; . 1 1 0 1 0 0 0; . 0 1 1 0 1 0 0; . 1 0 1 1 1 0 0; . 1 1 1 0 0 1 0; . 0 0 1 1 0 1 0; . 1 0 0 0 1 1 0; . 0
33、 1 0 1 1 1 0; . 1 0 1 0 0 0 1; . 0 1 1 1 0 0 1; . 1 1 0 0 1 0 1; . 0 0 0 1 1 0 1; . 0 1 0 0 0 1 1; . 1 0 0 1 0 1 1; . 0 0 1 0 1 1 1; . 1 1 1 1 1 1 1;for (p_i=1:N) error = 0; % 錯誤的數(shù) p=p_vector(p_i); for (r=1:RUNS) %生成4位的信息塊 z = unifrnd(0, 1, 1, 4); %0和1的4位串 w = round(z); %圓的Z值%找到行的索引,二進(jìn)制轉(zhuǎn)換: m = w(1)
34、+ w(2)*2 + w(3)*4 + w(4)*8; x = xtable(m + 1, :); z = unifrnd(0, 1, 1, 7); % 0和1的7位隨機(jī)字符串 zi = find(z <= p); %錯誤的位置% 誤比特率 e = zeros(1,7); % 創(chuàng)建一個0的7位串 e(zi) = ones(size(zi); % 創(chuàng)建一個字符串的大小Zi y = xor(x,e); % 異或X和E% for(q=1:16) dH(q) = sum(xor(y, xtable(q,:); % 比較接收到的碼字矢量 if(dH(q)<=1) wh = xtable(q,
35、 4:7); end end% 計算誤碼率 dHw = sum(xor(w,wh); error = error + dHw; end BER(p_i) = error/(RUNS*4); % 誤碼率計算 P(p_i)=p; % 存到pendPs=logspace(-4,0,200);Pb_high = 1 - (1-Ps).7 + 7.*(1-Ps).6.*Ps); Pb_low = (1 - (1-Ps).7 + 7.*(1-Ps).6.*Ps)/k; figure(1)plot(P, BER, 'bx', Ps, Pb_high, 'k-', Ps, Pb
36、_low, 'k-')legend('Simulated','Analytical')xlabel('Probability of Error for BSC (p)')ylabel('BER')title('Figure 1 - Bit Error Rate for Hamming code over BSC')仿真出圖4.3.2圖4.3.2 漢明碼對BSC信道編碼后誤碼率的曲線圖 如上圖4.3.2中,可以看到藍(lán)色的曲線是模擬后的誤碼率曲線,黑色的曲線是分析的誤碼率曲線。上面黑色曲線是概率誤差p最
37、大值的誤碼率,下面黑色的曲線是概率誤差p最小值的誤碼率。從圖中可以看出概率誤差最大,BSC信道的誤碼率就越高。5.卷積碼5.1卷積碼定義與原理卷積碼是一種向前糾錯控制編碼。它將連續(xù)的信息比特序列映射為連續(xù)的編碼器輸出符號。這種映射是高度結(jié)構(gòu)化的,使得卷積碼的譯碼方法與分組碼譯碼所采用的方法完全不同??梢则炞C的是在同樣復(fù)雜度情況下,卷積碼的編碼增益要大于分組碼的編碼增益。對于某個特定的應(yīng)用,采用分組編碼還是采用卷積編碼哪一種更好則取決于這一應(yīng)用的具體情況和進(jìn)行比較時可用的技術(shù)。卷積編碼的最佳譯碼準(zhǔn)則為:在給定已知編碼結(jié)構(gòu)、信道特性和接收序列的情況下,譯碼器將把與已經(jīng)發(fā)送的序列最相似的序列作為傳送
38、的碼字序列的估值。對于二進(jìn)制對稱信道,最相似傳送序列就是在漢明距離上與接收序列最近的序列。卷積碼的譯碼方法有兩大類:一類是大數(shù)邏輯譯碼,又稱門限譯碼(硬判決,編者注);另一種是概率譯碼(軟判決,編者注),概率譯碼又分為維特比譯碼和序列譯碼兩種。門限譯碼方法是以分組碼理論為基礎(chǔ)的,其譯碼設(shè)備簡單,速度快,但其誤碼性能要比概率譯碼法差。5.2維特比譯碼原理采用概率譯碼的基本思想是:把已接收序列與所有可能的發(fā)送序列做比較,選擇其中碼距最小的一個序列作為發(fā)送序列。如果發(fā)送L組信息比特,那么對于(n,k)卷積碼來說,可能發(fā)送的序列有2kL個,計算機(jī)或譯碼器需存儲這些序列并進(jìn)行比較,以找到碼距最小的那個序
39、列。當(dāng)傳信率和信息組數(shù)L較大時,使得譯碼器難以實(shí)現(xiàn)。維特比算法則對上述概率譯碼做了簡化,以至成為了一種實(shí)用化的概率算法。它并不是在網(wǎng)格圖上一次比較所有可能的2kL條路徑(序列),而是接收一段,計算和比較一段,選擇一段最大似然可能的碼段,從而達(dá)到整個碼序列是一個最大似然值得序列。下面以圖5.1的(2,1,3)卷積碼編碼器所編出的碼為例,來說明維特比解碼的方法和運(yùn)作過程。為了能說明解碼過程,這里給出該碼的狀態(tài)圖,如圖5.2所示。mjmj-1mj-2輸出序列m1,m2,mj,y1jy2j輸入序列00adcb110011010110圖5.1 (2,1,3)卷積碼編碼器 圖5.2 (2,1,3)卷積碼狀
40、態(tài)圖維特比譯碼需要利用圖來說明移碼過程。根據(jù)卷積碼畫網(wǎng)格的方法,我們可以畫出該碼的網(wǎng)格圖,如圖5.3所示。該圖設(shè)輸入信息數(shù)目L=5,所以畫L+N=8個時間單位,圖中分別標(biāo)以0至7。這里設(shè)編碼器從a狀態(tài)開始運(yùn)作。該網(wǎng)格圖的每一條路徑都對應(yīng)著不同的輸入信息序列。由于所有可能輸入信息序列共有2kL個,因而網(wǎng)格圖中所有可能的路徑也為2kL條。這里節(jié)點(diǎn)a=00,b=01,c=10,d=11。abcd節(jié)點(diǎn)號0123456700000000000000111111111111111100000101010101010101010101111110101010圖5.3 (2,1,3)卷積碼網(wǎng)格圖設(shè)輸入編碼器的
41、信息序列為(11011000),則由編碼器對應(yīng)輸出的序列為Y=(1101010001011100),編碼器的狀態(tài)轉(zhuǎn)移路線為abdcbdca。若收到的序列R=(0101011001011100),對照網(wǎng)格圖來說明維特比譯碼的方法。由于該卷積碼的約束長度為6位,因此先選擇接收序列的前6位序列R1=(010101)同到達(dá)第3時刻的可能的8個碼序列(即8條路徑)進(jìn)行比較,并計算出碼距。該例中到達(dá)第3時刻a點(diǎn)的路徑序列是(000000)和(111011),他們與R1的距離分別為3和4;到達(dá)第3時刻b點(diǎn)的路徑序列是(000011)和(111000),他們與R1的距離分別為3和4;到達(dá)第3時刻c點(diǎn)的路徑序列
42、是(001110)和(110101),他們與R1的距離分別為4和1;到達(dá)第3時刻d點(diǎn)的路徑序列是(001101)和(110110),他們與R1的距離分別為2和3。上述每個節(jié)點(diǎn)都保留碼距較小的路徑作為幸存路徑,所以幸存路徑碼序列是(000000)、(000011)、(1101001)和(001101),如圖5.4所示。用于上面類似的方法可以得到第4、5、6、7時刻的幸存路徑。abcd節(jié)點(diǎn)號0123000000111111010101圖5.4 維特比譯碼第3時刻幸存路徑需要指出的是,對于某個節(jié)點(diǎn),如果比較兩條路徑與接收序列的累計碼距值相等時,則可以任意選者一條路徑作為幸存路徑,吃時不會影響最終的譯
43、碼結(jié)果。在碼的終了時刻a狀態(tài),得到一條幸存路徑。如果2.5所示。由此可看到譯碼器abcd節(jié)點(diǎn)號0123110101456780001011100圖5.5 第8時刻幸存路徑輸出是R=(1101010001011100),即可變換成序列(11011000),恢復(fù)了發(fā)端原始信息。比較R和R序列,可以看到在譯碼過程中已糾正了在碼序列第1和第7位上的差錯。當(dāng)然如果差錯出現(xiàn)太頻繁,以致超出卷積碼的糾錯能力,還是會發(fā)生糾誤的。5.3卷積碼譯碼器對高斯白噪聲信道的設(shè)計與仿真整個設(shè)計的結(jié)構(gòu)框圖如下圖5.3信源模塊信道信宿模塊信號編譯碼器約定參數(shù)信號信號 5.3結(jié)構(gòu)框圖本設(shè)計由3個子系統(tǒng)組成:信源模塊對隨機(jī)二進(jìn)制
44、信號進(jìn)行卷積碼和二進(jìn)制相位調(diào)制,輸出基帶調(diào)制信號;信道模塊是一個高斯白噪聲信道;信宿模塊對調(diào)制信號進(jìn)行軟判決譯碼,得到原始信息序列,并且計算調(diào)制信號的誤碼率。5.3.1卷積碼譯碼器的設(shè)計與仿真信源模塊由貝努利二進(jìn)制序列產(chǎn)生器、卷積碼編碼器以及二進(jìn)制相位調(diào)制3個模塊組成,如下圖5.3.1所示5.3.1信源模塊系統(tǒng)框圖各個模塊的參數(shù)設(shè)置分別如表5.1表5.3所示。 表5.1 Bernoulli Binary Generator(貝努利二進(jìn)制序列產(chǎn)生器)的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型Bernoulli Binary GeneratorProbability of zero0.5Initial se
45、ed25741Sample time0.0001Frame-based outputCheckedSamples per frame10000表5.2 Convolutional Encoder(卷積碼編碼器)的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型Convolutional EncoderTrellisPoly2trellis(7,171 133)ResetOn each frame表5.3 BPSK Modulator Baseband的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型BPSK Modulator BasebandPhase offset(rad)0Samples per symbol1本設(shè)計使用相
46、對較簡單的一個加性高斯白噪聲信道作為噪聲信道,它在二進(jìn)制相位調(diào)制信號中疊加高斯白噪聲。加性高斯白噪聲模塊的參數(shù)設(shè)置如表5.4。 表5.4 AWGN Channel(加性高斯白噪聲模塊)的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型AWGN ChannelInitial seed1237ModeSignal to noise ratio(SNR)SNR(dB)SNRInput signal power(watts)1信道模塊如下圖5.3.2所示。 圖5.3.2 信道模塊示意圖信宿模塊在接收到二進(jìn)制相位調(diào)制信號后,首先由BPSK Demodulator Baseband (二進(jìn)制相位解調(diào)模塊)對信號進(jìn)行量化,得
47、到硬判決量化信號,然后通過Viterbi Decoder(維特比譯碼器)對軟判決信號實(shí)施譯碼。譯碼輸出信號和信源模塊產(chǎn)生的原始信號輸入到Error Rate Calculator(誤比特率統(tǒng)計模塊)中,統(tǒng)計得到的數(shù)據(jù)一方面通過Display(顯示模塊)顯示出來,另一方面通過一個Selector(選擇器)把其中的第一個元素(即編碼信號的誤比特率)保存到工作區(qū)變量BitErrorRate中。信宿模塊如下圖5.3.3所示。圖5.3.3 信宿模塊Sink各關(guān)鍵模塊參數(shù)設(shè)置如表5.5、表5.6所示。表5.5 BPSK Demodulator Baseband(二進(jìn)制相位解調(diào)模塊)的參數(shù)設(shè)置參數(shù)名稱參數(shù)值
48、模塊類型BPSK Demodulator BasebandPhase offset(rad)0Decision typeHard decisionOutput data typeInherit via internal rule表5.6 Viterbi Decoder(維特比譯碼器)的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型Viterbi DecoderTrellis structurepoly2trellis(7, 171 133)Decision typeHard decisionTreceback depth1000Operation modeTruncated將此完整設(shè)計保存,命名為convh.
49、mdl,如下圖5.3.4圖5.3.4 完整設(shè)計5.3.2簡化維特比譯碼器的仿真為了驗證譯碼模塊的正確性,便讓其進(jìn)行最簡模式運(yùn)行,為此,臨時設(shè)計一個簡化信號系統(tǒng),關(guān)閉信道噪聲,不進(jìn)行二進(jìn)制相位的調(diào)制與解調(diào),去掉誤比特率統(tǒng)計模塊。為了能看到輸入二進(jìn)制碼和譯碼輸出二進(jìn)制碼,增加了兩個To Workspace(結(jié)果輸入到工作區(qū)模塊),整個系統(tǒng)模塊框圖如圖5.3.5所示。圖5.3.5 簡化譯碼模塊框圖同時,為了便于觀察,將Bernoulli Binary Generator(貝努利二進(jìn)制序列產(chǎn)生器)的參數(shù)設(shè)置為如表5.7所示,以產(chǎn)生簡單的15位二進(jìn)制隨機(jī)碼,也將Viterbi Decoder的Trceb
50、ack depth值改為5。將To Workspace1模塊和To Workspace模塊的變量名分別設(shè)置為pdata和data。表5.7 簡化譯碼模塊的Bernoulli Binary Generator的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型Bernoulli Binary GeneratorProbability of zero0.5Initial seed5Sample time10Frame-based outputCheckedSamples per frame5運(yùn)行仿真(),在matlab的命令窗口中輸入pdata和data分別得到相應(yīng)的二進(jìn)制序列。對所得序列分別截圖,可得如下所示結(jié)果。
51、可見,譯碼器能夠正確進(jìn)行譯碼,所設(shè)計簡化譯碼器正確,因而,從理論上可推導(dǎo),原設(shè)計正確。>> datadata = 1 1 0 1 1>> pdatapdata = 1 1 0 1 15.3.3卷積碼譯碼器的誤碼率分析編制M文件convolutionh.m,使convh.mdl在不同的信噪比條件下重復(fù)執(zhí)行前面建立的項目convh.mdl。然后繪制信道的信噪比與編碼信號誤比特率之間的關(guān)系曲線圖。M文件代碼如下:%x表示信噪比x=-10:5;%y表示信號的誤比特率y=x;%準(zhǔn)備一個空白圖形hold off;%重復(fù)運(yùn)行convh.mdl,檢驗不同條件下硬判決譯碼的性能 for
52、i=1:length(x) %信道的信噪比依次取x中的元素 SNR=x(i); %運(yùn)行仿真程序,得到的誤比特率保存在工作區(qū)變量BitErrorRate中 sim('convh'); %計算BitErrorRate的均值作為本次仿真的誤比特率 y(i)=mean(BitErrorRate); end%繪制x和y的關(guān)系曲線圖,縱坐標(biāo)采用對數(shù)坐標(biāo)semilogy(x,y);%保持已經(jīng)繪制的圖形hold on執(zhí)行此M文件,得到如下圖5.3.4所示的關(guān)系曲線圖,由此圖可見,隨著信道信噪比的提升,維特比譯碼所得結(jié)果的誤比特率越低,信道的可信度越高,信噪比在大于-2時信道的誤碼率開始明顯降低。 圖5.3.3viterbi
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 呂梁職業(yè)技術(shù)學(xué)院《運(yùn)籌學(xué)D》2023-2024學(xué)年第二學(xué)期期末試卷
- 武昌理工學(xué)院《景觀建筑虛擬設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 泰山科技學(xué)院《數(shù)字影像創(chuàng)意與設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南信息職業(yè)技術(shù)學(xué)院《財務(wù)共享中心實(shí)施與服務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 催收公司年會活動方案
- 兒歌聯(lián)誼活動方案
- 兒童下雪活動方案
- 兒童軍訓(xùn)家長活動方案
- 兒童半天營活動方案
- 兒童國學(xué)典禮活動方案
- 影視動畫創(chuàng)作研究
- “雙減”與“五項管理”(課件)主題班會
- 招標(biāo)代理機(jī)構(gòu)入圍服務(wù) 投標(biāo)方案(技術(shù)標(biāo))
- 區(qū)塊鏈金融 課件全套 第1-11章 區(qū)塊鏈導(dǎo)論- 區(qū)塊鏈金融的監(jiān)管
- (完整版)一年級數(shù)獨(dú)100題
- 臟腑辨證表格完美打印版
- 部編版初中語文七年級下冊期末閱讀理解之說明文閱讀訓(xùn)練(含答案)
- 2023年護(hù)理考試-內(nèi)科護(hù)理(副高)考試歷年真題集錦附帶答案
- 2023屆江蘇省南通市如皋市數(shù)學(xué)四下期末質(zhì)量檢測模擬試題含解析
- 阿托品-教學(xué)講解課件
- 異位妊娠的診治進(jìn)展
評論
0/150
提交評論