基于matlab的信道編碼仿真(可編輯)_第1頁
基于matlab的信道編碼仿真(可編輯)_第2頁
基于matlab的信道編碼仿真(可編輯)_第3頁
基于matlab的信道編碼仿真(可編輯)_第4頁
基于matlab的信道編碼仿真(可編輯)_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于matlab的信道編碼仿真(可編輯)基于matlab的信道編碼仿真海南大學畢業(yè)論文(設(shè)計)題目:基于matlab的信道編碼仿真學號:姓名:年級:學院:信息科學技術(shù)學院系別:電子信息工程專業(yè):電子信息工程指導教師:完成日期:摘要通信技術(shù)的飛速發(fā)展,信道編碼已經(jīng)成功地應用于各種通信系統(tǒng)中。以及各種傳輸方式對可靠性要求的不斷提高,信道編碼技術(shù)作為抗干擾技術(shù)的一種重要的手段,在數(shù)字通信技術(shù)領(lǐng)域和數(shù)字傳輸系統(tǒng)中顯示出越來越重要的作用。信道編碼的目的是為了改善通信系統(tǒng)的傳輸質(zhì)量。由于實際信道存在噪聲和干擾,使發(fā)送的碼字與信道傳輸后所接收的碼字之間存在差異,稱這種差異為差錯。一般情況下,信道噪聲、干擾越大,碼字產(chǎn)生差錯的概率也就越大。本文利用matlab對二進制對稱信道BSC,高斯白噪聲信道AWGN兩種信道的仿真,(7,4)Hamming碼對信道的仿真,通過誤碼率的曲線圖來了解信道的編碼。并利用matlab的simulink模塊仿真,運用simulink里的卷積碼viterbi譯碼器來對二進制對稱信道和高斯白噪聲信道的仿真,觀察誤碼率的曲線圖來了解2個信道的不同。關(guān)鍵字:matlab,信道,編碼,譯碼,Simulink。AbstractWiththerapiddevelopmentofcommunicationtechnology,channelcodinghasbeensuccessfullyappliedtovariouscommunicationssystems.Andavarietyoftransmissionofthecontinuousimprovementofreliabilityrequirements,anti-jammingchannelcodingtechnologyasanimportantmeansoftechnologyinthefieldofdigitalcommunicationstechnologyanddigitaltransmissionsystemsinamoreandmoreimportantroleThepurposeofchannelcodingistoimprovethetransmissionqualityofcommunicationssystems.Astheactualexistenceofthechannelnoiseandinterference,thetransmittedcodewordsandchanneltransmissionreceivedafterthedifferencebetweencodewords,saidthisdifferenceiswrong.Undernormalcircumstances,channelnoise,thegreatertheinterference,thecodewordgeneratedthegreatertheprobabilityoferrorInthispaper,matlabbinarysymmetricchannelBSC,GaussianwhitenoisechannelAWGNtwochannelsimulation,7,4Hammingcodesimulationofthechannel,throughthebiterrorratecurvetounderstandthechannelcoding.Usingmatlabtosimulinkblocksimulation,usingsimulinkintheviterbidecodertoconvolutionalcodesonthebinarysymmetricchannelandGaussianwhitenoisechannelsimulation,observationerrorrategraphstounderstandthetwodifferentchannelsKeywords:matlab,channel,coding,decoding,Simulink.目錄1引言11.1選題的目的和意義11.2本選題的理論依據(jù)、研究內(nèi)容12.信道編碼以及其運行環(huán)境MATLAB的介紹22.1信道編碼的概念及分類22.2信道編碼定理及信道編碼中所包含的各種碼類的簡介22.2.1卷積碼22.2.2線性分組碼32.2.3循環(huán)碼32.3MATLAB語言的簡介42.4Simulink53.信道53.1二進制對稱信道(BSC)53.2二進制刪除信道(BEC)63.3高斯白噪聲信道AWGN64.Hamming碼74.1漢明碼74.2校驗方法74.3漢明碼編碼94.3.1漢明碼對高斯白噪聲信道94.3.2漢明碼對二進制對稱信道的仿真115.卷積碼155.1卷積碼定義與原理155.2維特比譯碼原理155.3卷積碼譯碼器對高斯白噪聲信道的設(shè)計與仿真185.3.1卷積碼譯碼器的設(shè)計與仿真195.3.2簡化維特比譯碼器的仿真225.3.3卷積碼譯碼器的誤碼率分析245.4卷積編碼器在二進制對稱信道(BSC)中的性能256.卷積碼譯碼器對二進制對稱信道和高斯白噪聲信道仿真比較307.總結(jié)31致謝32參考文獻33附錄1:34附錄2:37附錄3:40附錄4:411引言1.1選題的目的和意義數(shù)字信號在傳輸中往往由于各種原因,使得在傳送的數(shù)據(jù)流中產(chǎn)生誤碼,從而使接收端產(chǎn)生圖象跳躍、不連續(xù)、出現(xiàn)馬賽克等現(xiàn)象。所以通過信道編碼這一環(huán)節(jié),對數(shù)碼流進行相應的處理,使系統(tǒng)具有一定的糾錯能力和抗干擾能力,可極大地避免碼流傳送中誤碼的發(fā)生。誤碼的處理技術(shù)有糾錯、交織、線性內(nèi)插等。提高數(shù)據(jù)傳輸效率,降低誤碼率是信道編碼的任務(wù)。信道編碼的本質(zhì)是增加通信的可靠性。但信道編碼會使有用的信息數(shù)據(jù)傳輸減少,信道編碼的過程是在源數(shù)據(jù)碼流中加插一些碼元,從而達到在接收端進行判錯和糾錯的目的。1.2本選題的理論依據(jù)、研究內(nèi)容在數(shù)字通信系統(tǒng)中由于信道內(nèi)存在加性噪聲及信道傳輸特性不理想等容易造成碼間串擾同時多用戶干擾、多徑傳播和功率限制等也導致錯誤譯碼。為了確保系統(tǒng)的誤比特率指標通常采用信道編碼。信道編碼是為了保證信息傳輸?shù)目煽啃?、提高傳輸質(zhì)量而設(shè)計的一種編碼。它是在信息碼中增加一定數(shù)量的多余碼元,使碼字具有一定的抗干擾能力。提高信息傳輸?shù)挠行院涂煽啃允冀K是通信技術(shù)所追求的目標,而信道編碼能夠顯著的提升信息傳輸?shù)目煽啃?。簡述信道編碼理論,詳細說明分組碼的編譯原理、實現(xiàn)方法及檢錯糾錯能力,用MATLAB仿真信道編碼條不同信道下的影響。學習卷積碼的基本原理和編碼方法。學習基本分組碼的原理和編碼方法。理解二進制對稱信道BSC,二進制擦除信道BEC,高斯白噪聲信道AWGN。理解碼率coderate和誤碼率biterrorrate的意義。利用(7,4)Hamming碼對不同信道進行仿真。自己設(shè)計一個卷積碼,并利用Viterbi譯碼二進制對稱信道BSC,高斯白噪聲信道AWGN2個信道進行仿真,比較結(jié)果。2.信道編碼以及其運行環(huán)境MATLAB的介紹2.1信道編碼的概念及分類進行信道編碼是為了提高信號傳輸?shù)目煽啃?改善通信系統(tǒng)的傳輸質(zhì)量,研究信道編碼的目標是尋找具體構(gòu)造編碼的理論與方法。從原理上,構(gòu)造信道碼的基本思路是根據(jù)一定的規(guī)律在待發(fā)送的信息碼元中人為的加入一定的多余碼元,以引入最小的多余度為代價來換取最好的抗干擾性能。信道編碼是通過信道編碼器和譯碼器實現(xiàn)的用于提高信道可靠性的理論和方法,是信息論的內(nèi)容之一。信道編碼大致分為兩類:?信道編碼定理,從理論上解決理想編碼器、譯碼器的存在性問題,也就是解決信道能傳送的最大信息率的可能性和超過這個最大值時的傳輸問題。?構(gòu)造性的編碼方法以及這些方法能達到的性能界限。編碼定理的證明,從離散信道發(fā)展到連續(xù)信道,從無記憶信道到有記憶信道,從單用戶信道到多用戶信道,從證明差錯概率可接近于零到以指數(shù)規(guī)律逼近于零,正在不斷完善。編碼方法,在離散信道中一般用代數(shù)碼形式,其類型有較大發(fā)展,各種界限也不斷有人提出,但尚未達到編碼定理所啟示的限度。在連續(xù)信道中常采用正交函數(shù)系來代表消息,這在極限情況下可達到編碼定理的限度,不是所有信道的編碼定理都已被證明。2.2信道編碼定理及信道編碼中所包含的各種碼類的簡介1948年,信息論的奠基人C.E.Shannon在他的開創(chuàng)性論文“通信的數(shù)學理論”中,提出了著名的有噪信道編碼定理。他指出:對任何信道,只要信息傳輸速率R不大于信道容量C,就一定存在這樣的編碼方法:在采用最大似然譯碼時,其誤碼率可以任意小。該定理在理論上給出了對給定信道通過編碼所能達到的編碼增益的上限,并指出了為達到理論極限應采用的譯碼方法。在信道編碼定理中,香農(nóng)提出了實現(xiàn)最佳編碼的三個基本條件:1采用隨機編譯碼方式;2編碼長度L??,即分組的碼組長度無限;3譯碼采用最佳的最大似然譯碼算法。2.2.1卷積碼卷積碼convolutioncode屬于非分組碼,它是一種小分組n,k多碼段相關(guān)、糾錯能力較強的FEC碼。卷積碼不同于n,k分組碼,它將n,k變成很短的分組n,k,如2,1、3,13,2卷積碼等。每一個監(jiān)督元不僅是由本碼段n,k的k位信碼所決定,而且與其前N-1個碼段的信碼有關(guān),因此稱為卷積碼。它適于串行傳送,延時較小。本碼段n,k以及其前N-1段構(gòu)成的N個分組碼段稱為約束長度:其碼元數(shù)為Nn比特,而N稱為約束度。因此,各碼段n,k不像n,k分組碼是一個獨立糾錯碼單元,其差錯控制能力由N個碼段來決定。所以通常將卷積碼寫為n,k,N,其中Nm+1,m是編碼電路的移位寄存器數(shù)目。卷積碼分為兩種:1基本卷積碼:基本卷積碼編碼效率為,η=1/2,編碼效率較低,優(yōu)點是糾錯能力強。2收縮卷積碼:如果傳輸信道質(zhì)量較好,為提高編碼效率,可以采樣收縮截短卷積碼。有編碼效率為:η=1/2、2/3、3/4、5/6、7/8這幾種編碼效率的收縮卷積碼編碼效率高,一定帶寬內(nèi)可傳輸?shù)挠行П忍芈试龃?但糾錯能力越減弱。2.2.2線性分組碼簡單來說,所謂“分組碼”就是指碼字的生成只與當前的源數(shù)據(jù)有關(guān),而與前后的數(shù)據(jù)無關(guān)相應地,與前后數(shù)據(jù)相關(guān)的碼稱為卷積碼。分組碼將連續(xù)的數(shù)據(jù)比特流分割為長度固定的組;各組進一步以m比特為單位分割為符號Symbol,通常取3比特或者8比特數(shù)據(jù)組成一個符號。k個符號一起組成源字Sourceword,經(jīng)過編碼后變?yōu)殚L度為n的碼字Codeword,稱為m比特符號的n,k分組碼。所謂“線性”,是指編碼過程均為線性變換,即可以通過矩陣變換來表示。目前研究的糾錯碼大都屬于線性碼。在線性空間中,所有可能的m比特源字都可以進行編碼變換,而無需關(guān)心這m比特數(shù)據(jù)所代表的含義。所謂“系統(tǒng)”,是指碼字中包含了源字和變換所得的校驗字。2.2.3循環(huán)碼循環(huán)碼的特點是符合n,k線形分組碼特點---在碼內(nèi)碼子集合的任意兩個碼字之和為該碼中的一個碼字,這一特征表明n,k循環(huán)碼屬于n,k線形分組碼的一個子類。n,k碼中任何一個碼字連續(xù)位移i位后的碼字,仍屬于該循環(huán)碼的一個碼字。循環(huán)碼中的生成多項式的必要條件為某n,k碼是否位循環(huán)的必要條件是:冪為碼長n的多項式x+1,可分解出至少有1個因式的最高冪次為n-kr,即該因式最高次項為x,最低項為常數(shù)1。其生成多項式的充分條件是由必要條件得到的gx,其多項式的非零權(quán)系數(shù)個數(shù)還應等于相應n,k分碼組的d。之所以補充這一“充分”條件,是因為符合必要條件的gx并不一定能得到與其相應分組碼相同n,k的差錯控制能力。循環(huán)編碼碼步驟:源碼為mxmx+?+mx+m,應首先提升n-k位,變?yōu)閤mx。然后以生成多項式gx去除,得qx+式2-1可得循環(huán)碼:Cxxmx+bx。2.3MATLAB語言的簡介MATLAB是矩陣實驗室MatrixLaboratory之意,除具備卓越的數(shù)值計算能力外,它還提供了專業(yè)水平的符號計算,文字處理,可視化建模仿真和實時控制等功能。MATLAB將高性能的數(shù)值計算和可視化集成在一起,并提供了大量的內(nèi)置函數(shù),從而被廣泛地應用于科學計算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和設(shè)計工作,而且利用MATLAB產(chǎn)品的開放式結(jié)構(gòu),可以非常容易地對MATLAB的功能進行擴充,從而在不斷深化對問題認識的同時,不斷完善MATLAB產(chǎn)品以提高產(chǎn)品自身的競爭能力。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學,工程中常用的形式十分相似,故用MATLAB來解算問題要比用C、FORTRAN等語言完相同的事情簡捷得多。開放性使MATLAB廣受用戶歡迎。除內(nèi)部函數(shù)外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構(gòu)造新的專用工具包。Matlab軟件最好的教材是它的幫助文件。只要硬盤容量夠大,極力推薦安裝完整的幫助文檔,即使你對閱讀英文不是很有信心,但我相信其足夠的實例還是能讓你對要查詢的命令函數(shù)有一定的了解的。有兩種方法取得幫助信息:一是直接在命令窗口輸入help函數(shù)名;如helpimread,會得到相應函數(shù)的有關(guān)幫助信息。二是在幫助窗口中查找相應信息。不同版本的幫助菜單界面有所不同,這只能依賴于自己去熟悉了。但總體上都和windows的界面具有相似的處理過程。2.4SimulinkSimulink是TheMathWorks公司開發(fā)的用于動態(tài)系統(tǒng)和嵌入式系統(tǒng)的多領(lǐng)域仿真和基于模型的設(shè)計工具,常集成于MathWorks公司的另一產(chǎn)品mtlab中與之配合使用。Simulink提供了一個交互式的圖形化環(huán)境及可定制模塊庫(Library),可對各種時變系統(tǒng),例如通訊、控制、信號處理、視頻處理和圖像處理系統(tǒng)等進行設(shè)計、仿真、執(zhí)行和測試。與MATLAB類似,Simulink的功能可以通過購買或自定義的工具箱不斷擴展。另外,Simulink與MATLAB緊密集成,可以直接訪問MATLAB大量的工具來進行算法研發(fā)、仿真的分析和可視化、批處理腳本的創(chuàng)建、建模環(huán)境的定制以及信號參數(shù)和測試數(shù)據(jù)的定義。它的主要特點有[1]:豐富的可擴充的預定義模塊庫交互式的圖形編輯器來組合和管理直觀的模塊圖以設(shè)計功能的層次性來分割模型,實現(xiàn)對復雜設(shè)計的管理通過ModelExplorer導航、創(chuàng)建、配置、搜索模型中的任意信號、參數(shù)、屬性,生成模型代碼提供API用于與其他仿真程序的連接或與手寫代碼集成使用EmbeddedMATLAB模塊在Simulink和嵌入式系統(tǒng)執(zhí)行中調(diào)用MATLAB算法使用定步長或變步長運行仿真,根據(jù)仿真模式Normal,Accelerator,RapidAccelerator來決定以解釋性的方式運行或以編譯C代碼的形式來運行模型圖形化的調(diào)試器和剖析器來檢查仿真結(jié)果,診斷設(shè)計的性能和異常行為可訪問MATLAB從而對結(jié)果進行分析與可視化,定制建模環(huán)境,定義信號參數(shù)和測試數(shù)據(jù)模型分析和診斷工具來保證模型的一致性,確定模型中的錯誤。3.信道3.1二進制對稱信道(BSC)二進制對稱信道是離散無記憶信道在JK2時的特例。它的輸入和輸出都只有0和1兩種符號,并且發(fā)送0而接受到1,以及發(fā)送1而收到0(即誤碼)的概率相同,所以稱信道是對稱的。此時條件差錯概率由p表示。二進制對稱信道的轉(zhuǎn)移概率如圖3.1圖3.1二進制對稱信道3.2二進制刪除信道(BEC)圖3.2二進制刪除信道信道的特點是,信源傳輸0或1時,接收端以1-a的概率正確接收,以概率a被刪除。3.3高斯白噪聲信道AWGN在信號傳輸?shù)倪^程中,它會不可避免地受到各種干擾,這些干擾統(tǒng)稱為“噪聲”。加性高斯白噪聲AWGN是最常見的一種噪聲。加性高斯白噪聲是最簡單的一種噪聲,它表現(xiàn)為信號圍繞平均值的一種隨機波動過程。加性高斯白噪聲的均值為o,方差表現(xiàn)為噪聲功率的大小。一放情況下,噪聲功率越大,信號的波動幅度就越大,接收端接收到的信號的誤比特率就越高。在研究通信系統(tǒng)的誤碼率與信道質(zhì)量的關(guān)系時,一放先研究它在加性高斯白噪聲信道下的性能,然后再把它推廣到具有快衰落的復雜情況。4.Hamming碼4.1漢明碼當計算機存儲或移動數(shù)據(jù)時,可能會產(chǎn)生數(shù)據(jù)位錯誤,這時可以利用漢明碼來檢測并糾錯,簡單的說,漢明碼是一個錯誤校驗碼碼集,由Bell實驗室的//.ming發(fā)明,因此定名為漢明碼。與其他的錯誤校驗碼類似,漢明碼也利用了奇偶校驗位的概念,通過在數(shù)據(jù)位后面增加一些比特,可以驗證數(shù)據(jù)的有效性。利用一個以上的校驗位,漢明碼不僅可以驗證數(shù)據(jù)是否有效,還能在數(shù)據(jù)出錯的情況下指明錯誤位置。在接受端通過糾錯譯碼自動糾正傳輸中的差錯來實現(xiàn)碼糾錯功能,稱為前向糾錯FEC。在數(shù)據(jù)鏈路中存在大量噪音時,FEC可以增加數(shù)據(jù)吞吐量。通過在傳輸碼列中加入冗余位也稱糾錯位可以實現(xiàn)前向糾錯。但這種方法比簡單重傳協(xié)議的成本要高。漢明碼利用奇偶塊機制降低了前向糾錯的成本。4.2校驗方法進行奇偶校驗的方法是先計算數(shù)據(jù)中1的個數(shù),通過增加一個0或1稱為校驗位,使1的個數(shù)變?yōu)槠鏀?shù)奇校驗或偶數(shù)偶校驗。例如,數(shù)據(jù)1001總共是4個比特位,包括2個1,1的數(shù)目是偶數(shù),因此,如果是偶校驗,那么增加的校驗位就是一個0,反之,增加一個1作為校驗位。通過“異或”運算來實現(xiàn)偶校驗,“同或”運算來實現(xiàn)奇校驗。單個比特位的錯誤可以通過計算1的數(shù)目是否正確來檢測出來,如果1的數(shù)目錯誤,說明有一個比特位出錯,這表示數(shù)據(jù)在傳輸過程中受到噪音影響而出錯。利用更多的校驗位,漢明碼可以檢測兩位碼錯,每一位的檢錯都通過數(shù)據(jù)中不同的位組合來計算出來。校驗位的數(shù)目與傳輸數(shù)據(jù)的總位數(shù)有關(guān),可以通過漢明規(guī)則進行計算:d+p+12的p次方d表示傳輸數(shù)據(jù)位數(shù)目,p表示校驗位數(shù)目。兩部分合稱漢明碼字,通過將數(shù)據(jù)位與一個生成矩陣相乘,可以生成漢明碼字。2008-07-0519:10針對4位數(shù)據(jù)的漢明碼編碼示意圖漢明碼是一個在原有數(shù)據(jù)中插入若干校驗碼來進行錯誤檢查和糾正的編碼技術(shù)。以典型的4位數(shù)據(jù)編碼為例,漢明碼將加入3個校驗碼,從而使實際傳輸?shù)臄?shù)據(jù)位達到7個(位),它們的位置如果把上圖中的位置橫過來就是:數(shù)據(jù)位1234567代碼P1P2D8P3D4D2D1說明第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次冪,想想二進制編碼就知道了。另外,漢明碼加插的位置也是有規(guī)律的。以四位數(shù)據(jù)為例,第一個漢明碼是第一位,第二個是第二位,第三個是第四位,1、2、4都是2的整數(shù)冪結(jié)果,而這個冪次數(shù)是從0開始的整數(shù)。這樣我們可以推斷出來,漢明碼的插入位置為1(20注:20表示2的0次冪)、2(21)、4(22)、8(23)、16(24)、32(25)??4.3漢明碼編碼4.3.1漢明碼對高斯白噪聲信道隨機信號源:function[out,rc]informkrcrandk,1;forn1:kifrcn0.5outn1;elseoutn0;endend產(chǎn)生高斯噪聲:functionoutnoisesnr,k,rsnr10^snr/10;ratek/k+r;q1/sqrt2*snr*rate;outrandn1,k+r*q;漢明碼編碼:functioncodehammingic,k,PIGeyek;G[IG,P'];coderemic*G,2;漢明碼譯碼:functionoutdehammingin,k,r,Pmk+r;IHeyer;H[P,IH];Sremin*H',2;n0;whilenmnn+1;hH:,n;ifSh'break;endendinn1-inn;fori1:koutiini;end調(diào)制:functionoutmoddin,k,rmk+r;forn1:mifinn1outn-1;elseoutn1;endend解調(diào):functionoutdemodin,k,rmk+r;forn1:mifinn0outn0;elseoutn1;endend總程序k4;%信息位r3;%監(jiān)督位P[1110;%校驗矩陣0111;1101;];SNR1;%信噪比N1000;%測試的數(shù)據(jù)包數(shù)目w0;%譯碼錯誤碼元數(shù)目統(tǒng)計的變量n1;whilenN%測試數(shù)據(jù)包[ic,rc]informk;%產(chǎn)生隨機信號源hchammingic,k,P;%漢明碼編碼mcmoddhc,k,r;%調(diào)制ncmc+noiseSNR,k,r;%通過帶噪聲信道dmcdemodnc,k,r;%解調(diào)dhcdehammingdmc,k,r,P;%漢明碼譯碼form1:k%統(tǒng)計譯碼錯誤碼元數(shù)ifdhcm~icmww+1;endendnn+1;endBERw/N*k%計算誤碼率semilogySNR,BER;仿真結(jié)果分析:圖4.3.1漢明碼對AWGN信道仿真的誤碼率曲線圖對圖4的觀察,我們可以看到,在高斯白噪聲信道里當信噪比越來越大時,誤碼率越來越低,到一定程度,信道的誤碼率會為0。仿真結(jié)果和理論結(jié)果基本一致。4.3.2漢明碼對二進制對稱信道的仿真%7,4漢明碼仿真%定義變量7,4漢明碼模擬k4;%n7;%p_vector0.1:0.01:1;%向量P的值,誤碼率Nlengthp_vector;%p_vector的長度RUNS5000;%運行數(shù)%碼字表xtable[0000000;1101000;0110100;1011100;1110010;0011010;1000110;0101110;1010001;0111001;1100101;0001101;0100011;1001011;0010111;1111111;];forp_i1:Nerror0;%錯誤的數(shù)pp_vectorp_i;forr1:RUNS%生成4位的信息塊zunifrnd0,1,1,4;%0和1的4位串wroundz;%圓的Z值%找到行的索引,二進制轉(zhuǎn)換:mw1+w2*2+w3*4+w4*8;xxtablem+1,:;zunifrnd0,1,1,7;%0和1的7位隨機字符串zifindzp;%錯誤的位置%誤比特率ezeros1,7;%創(chuàng)建一個0的7位串ezionessizezi;%創(chuàng)建一個字符串的大小Ziyxorx,e;%異或X和E%forq1:16dHqsumxory,xtableq,:;%比較接收到的碼字矢量ifdHq1whxtableq,4:7;endend%計算誤碼率dHwsumxorw,wh;errorerror+dHw;endBERp_ierror/RUNS*4;%誤碼率計算Pp_ip;%存到pendPslogspace-4,0,200;Pb_high1-1-Ps.^7+7.*1-Ps.^6.*Ps;Pb_low1-1-Ps.^7+7.*1-Ps.^6.*Ps/k;figure1plotP,BER,'bx',Ps,Pb_high,'k-',Ps,Pb_low,'k-'legend'Simulated','Analytical'xlabel'ProbabilityofErrorforBSCp'ylabel'BER'title'Figure1-BitErrorRateforHammingcodeoverBSC'仿真出圖4.3.2圖4.3.2漢明碼對BSC信道編碼后誤碼率的曲線圖如上圖4.3.2中,可以看到藍色的曲線是模擬后的誤碼率曲線,黑色的曲線是分析的誤碼率曲線。上面黑色曲線是概率誤差p最大值的誤碼率,下面黑色的曲線是概率誤差p最小值的誤碼率。從圖中可以看出概率誤差最大,BSC信道的誤碼率就越高。5.卷積碼5.1卷積碼定義與原理卷積碼是一種向前糾錯控制編碼。它將連續(xù)的信息比特序列映射為連續(xù)的編碼器輸出符號。這種映射是高度結(jié)構(gòu)化的,使得卷積碼的譯碼方法與分組碼譯碼所采用的方法完全不同??梢则炞C的是在同樣復雜度情況下,卷積碼的編碼增益要大于分組碼的編碼增益。對于某個特定的應用,采用分組編碼還是采用卷積編碼哪一種更好則取決于這一應用的具體情況和進行比較時可用的技術(shù)。卷積編碼的最佳譯碼準則為:在給定已知編碼結(jié)構(gòu)、信道特性和接收序列的情況下,譯碼器將把與已經(jīng)發(fā)送的序列最相似的序列作為傳送的碼字序列的估值。對于二進制對稱信道,最相似傳送序列就是在漢明距離上與接收序列最近的序列。卷積碼的譯碼方法有兩大類:一類是大數(shù)邏輯譯碼,又稱門限譯碼硬判決,編者注;另一種是概率譯碼軟判決,編者注,概率譯碼又分為維特比譯碼和序列譯碼兩種。門限譯碼方法是以分組碼理論為基礎(chǔ)的,其譯碼設(shè)備簡單,速度快,但其誤碼性能要比概率譯碼法差。5.2維特比譯碼原理采用概率譯碼的基本思想是:把已接收序列與所有可能的發(fā)送序列做比較,選擇其中碼距最小的一個序列作為發(fā)送序列。如果發(fā)送L組信息比特,那么對于n,k卷積碼來說,可能發(fā)送的序列有2kL個,計算機或譯碼器需存儲這些序列并進行比較,以找到碼距最小的那個序列。當傳信率和信息組數(shù)L較大時,使得譯碼器難以實現(xiàn)。維特比算法則對上述概率譯碼做了簡化,以至成為了一種實用化的概率算法。它并不是在網(wǎng)格圖上一次比較所有可能的2kL條路徑序列,而是接收一段,計算和比較一段,選擇一段最大似然可能的碼段,從而達到整個碼序列是一個最大似然值得序列。下面以圖5.1的2,1,3卷積碼編碼器所編出的碼為例,來說明維特比解碼的方法和運作過程。為了能說明解碼過程,這里給出該碼的狀態(tài)圖,如圖5.2所示。圖5.12,1,3卷積碼編碼器圖5.22,1,3卷積碼狀態(tài)圖維特比譯碼需要利用圖來說明移碼過程。根據(jù)卷積碼畫網(wǎng)格的方法,我們可以畫出該碼的網(wǎng)格圖,如圖5.3所示。該圖設(shè)輸入信息數(shù)目L5,所以畫L+N8個時間單位,圖中分別標以0至7。這里設(shè)編碼器從a狀態(tài)開始運作。該網(wǎng)格圖的每一條路徑都對應著不同的輸入信息序列。由于所有可能輸入信息序列共有2kL個,因而網(wǎng)格圖中所有可能的路徑也為2kL條。這里節(jié)點a00,b01,c10,d11。圖5.32,1,3卷積碼網(wǎng)格圖設(shè)輸入編碼器的信息序列為11011000,則由編碼器對應輸出的序列為Y11100,編碼器的狀態(tài)轉(zhuǎn)移路線為abdcbdca。若收到的序列R01100,對照網(wǎng)格圖來說明維特比譯碼的方法。由于該卷積碼的約束長度為6位,因此先選擇接收序列的前6位序列R1010101同到達第3時刻的可能的8個碼序列即8條路徑進行比較,并計算出碼距。該例中到達第3時刻a點的路徑序列是000000和111011,他們與R1的距離分別為3和4;到達第3時刻b點的路徑序列是000011和111000,他們與R1的距離分別為3和4;到達第3時刻c點的路徑序列是001110和110101,他們與R1的距離分別為4和1;到達第3時刻d點的路徑序列是001101和110110,他們與R1的距離分別為2和3。上述每個節(jié)點都保留碼距較小的路徑作為幸存路徑,所以幸存路徑碼序列是000000、000011、1101001和001101,如圖5.4所示。用于上面類似的方法可以得到第4、5、6、7時刻的幸存路徑。圖5.4維特比譯碼第3時刻幸存路徑需要指出的是,對于某個節(jié)點,如果比較兩條路徑與接收序列的累計碼距值相等時,則可以任意選者一條路徑作為幸存路徑,吃時不會影響最終的譯碼結(jié)果。在碼的終了時刻a狀態(tài),得到一條幸存路徑。如果2.5所示。由此可看到譯碼器圖5.5第8時刻幸存路徑輸出是R’11100,即可變換成序列11011000,恢復了發(fā)端原始信息。比較R’和R序列,可以看到在譯碼過程中已糾正了在碼序列第1和第7位上的差錯。當然如果差錯出現(xiàn)太頻繁,以致超出卷積碼的糾錯能力,還是會發(fā)生糾誤的。5.3卷積碼譯碼器對高斯白噪聲信道的設(shè)計與仿真整個設(shè)計的結(jié)構(gòu)框圖如下圖5.35.3結(jié)構(gòu)框圖本設(shè)計由3個子系統(tǒng)組成:信源模塊對隨機二進制信號進行卷積碼和二進制相位調(diào)制,輸出基帶調(diào)制信號;信道模塊是一個高斯白噪聲信道;信宿模塊對調(diào)制信號進行軟判決譯碼,得到原始信息序列,并且計算調(diào)制信號的誤碼率。5.3.1卷積碼譯碼器的設(shè)計與仿真信源模塊由貝努利二進制序列產(chǎn)生器、卷積碼編碼器以及二進制相位調(diào)制3個模塊組成,如下圖5.3.1所示5.3.1信源模塊系統(tǒng)框圖各個模塊的參數(shù)設(shè)置分別如表5.1~表5.3所示。表5.1BernoulliBinaryGenerator貝努利二進制序列產(chǎn)生器的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型BernoulliBinaryGeneratorProbabilityofzero0.5Initialseed25741Sampletime0.0001Frame-basedoutputCheckedSamplesperframe10000表5.2ConvolutionalEncoder卷積碼編碼器的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型ConvolutionalEncoderTrellisPoly2trellis7,[171133]ResetOneachframe表5.3BPSKModulatorBaseband的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型BPSKModulatorBasebandPhaseoffsetrad0Samplespersymbol1本設(shè)計使用相對較簡單的一個加性高斯白噪聲信道作為噪聲信道,它在二進制相位調(diào)制信號中疊加高斯白噪聲。加性高斯白噪聲模塊的參數(shù)設(shè)置如表5.4。表5.4AWGNChannel加性高斯白噪聲模塊的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型AWGNChannelInitialseed1237ModeSignaltonoiseratioSNRSNRdBSNRInputsignalpowerwatts1信道模塊如下圖5.3.2所示。圖5.3.2信道模塊示意圖信宿模塊在接收到二進制相位調(diào)制信號后,首先由BPSKDemodulatorBaseband二進制相位解調(diào)模塊對信號進行量化,得到硬判決量化信號,然后通過ViterbiDecoder維特比譯碼器對軟判決信號實施譯碼。譯碼輸出信號和信源模塊產(chǎn)生的原始信號輸入到ErrorRateCalculator誤比特率統(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.5BPSKDemodulatorBaseband二進制相位解調(diào)模塊的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型BPSKDemodulatorBasebandPhaseoffsetrad0DecisiontypeHarddecisionOutputdatatypeInheritviainternalrule表5.6ViterbiDecoder維特比譯碼器的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型ViterbiDecoderTrellisstructurepoly2trellis7,[171133]DecisiontypeHarddecisionTrecebackdepth1000OperationmodeTruncated將此完整設(shè)計保存,命名為convh.mdl,如下圖5.3.4圖5.3.4完整設(shè)計5.3.2簡化維特比譯碼器的仿真為了驗證譯碼模塊的正確性,便讓其進行最簡模式運行,為此,臨時設(shè)計一個簡化信號系統(tǒng),關(guān)閉信道噪聲,不進行二進制相位的調(diào)制與解調(diào),去掉誤比特率統(tǒng)計模塊。為了能看到輸入二進制碼和譯碼輸出二進制碼,增加了兩個ToWorkspace結(jié)果輸入到工作區(qū)模塊,整個系統(tǒng)模塊框圖如圖5.3.5所示。圖5.3.5簡化譯碼模塊框圖同時,為了便于觀察,將BernoulliBinaryGenerator貝努利二進制序列產(chǎn)生器的參數(shù)設(shè)置為如表5.7所示,以產(chǎn)生簡單的15位二進制隨機碼,也將ViterbiDecoder的Trcebackdepth值改為5。將ToWorkspace1模塊和ToWorkspace模塊的變量名分別設(shè)置為pdata和data。表5.7簡化譯碼模塊的BernoulliBinaryGenerator的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型BernoulliBinaryGeneratorProbabilityofzero0.5Initialseed5Sampletime10Frame-basedoutputCheckedSamplesperframe5運行仿真,在matlab的命令窗口中輸入pdata和data分別得到相應的二進制序列。對所得序列分別截圖,可得如下所示結(jié)果。可見,譯碼器能夠正確進行譯碼,所設(shè)計簡化譯碼器正確,因而,從理論上可推導,原設(shè)計正確。datadata11011pdatapdata110115.3.3卷積碼譯碼器的誤碼率分析編制M文件convolutionh.m,使convh.mdl在不同的信噪比條件下重復執(zhí)行前面建立的項目convh.mdl。然后繪制信道的信噪比與編碼信號誤比特率之間的關(guān)系曲線圖。M文件代碼如下:%x表示信噪比x-10:5;%y表示信號的誤比特率yx;%準備一個空白圖形holdoff;%重復運行convh.mdl,檢驗不同條件下硬判決譯碼的性能fori1:lengthx%信道的信噪比依次取x中的元素SNRxi;%運行仿真程序,得到的誤比特率保存在工作區(qū)變量BitErrorRate中sim'convh';%計算BitErrorRate的均值作為本次仿真的誤比特率yimeanBitErrorRate;end%繪制x和y的關(guān)系曲線圖,縱坐標采用對數(shù)坐標semilogyx,y;%保持已經(jīng)繪制的圖形holdon執(zhí)行此M文件,得到如下圖5.3.4所示的關(guān)系曲線圖,由此圖可見,隨著信道信噪比的提升,維特比譯碼所得結(jié)果的誤比特率越低,信道的可信度越高,信噪比在大于-2時信道的誤碼率開始明顯降低。圖5.3.3viterbi譯碼器對高斯白噪聲信道的誤碼率曲線圖5.4卷積編碼器在二進制對稱信道(BSC)中的性能二進制對稱信道模塊的一個主要用途是用于檢驗編碼的糾鍺和檢錯性能,因為它能夠方便地建立信道誤比特率與編碼信號的誤比特率之間的關(guān)系。本節(jié)以卷積編碼為例介紹卷積編碼器在二進制信道中的傳輸性能。卷積編碼器以其優(yōu)良的糾鍺性能在移動通信系統(tǒng)中得到了廣泛的應用。Is-95的前向信道和反向信道都采用了卷積編碼器,這些卷積編碼器的約束長度都是9,碼率等于1/2或1/3。對于反向業(yè)務(wù)信道即從移動臺到基站方向的信道,速率集1RateSet1采用碼率為1/3的卷積編碼器3個碼生成多項式分別等于八進制數(shù)557、663和711,速率集2Rateset2則采用碼率為1/2的卷積編碼器碼生成多項式分別等于八進制數(shù)753和561。在本實例中我們將使用反向全速業(yè)務(wù)倍道數(shù)據(jù)傳輸速率等于9600bit/s速率集1的卷積編碼器。圖5.4.1所示是本實例的系統(tǒng)組成框圖。圖5.4.1仿真系統(tǒng)各個模塊的參數(shù)設(shè)置如下各表:表5.4.1BernoulliBinaryGenerator貝努利二進制序列產(chǎn)生器的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型BernoulliBinaryGeneratorProbabilityofzero0.5Initialseed61Sampletime1/9600Frame-basedoutputCheckedSamplesperframe9600表5.4.2ConvolutionalEncoder卷積碼編碼器的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型ConvolutionalEncoderTrellisPoly2trellis9,557,663,711[]ResetOneachframe表5.4.3BinarySymmetricChannel(二進制對稱信道)的參數(shù)設(shè)置參數(shù)名稱參數(shù)值模塊類型BinaryS

溫馨提示

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

最新文檔

評論

0/150

提交評論