版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于matlab的信道編碼仿真海 南 大 學畢 業(yè) 論 文(設計)題 目:基于matlab的信道編碼仿真學 號: 姓 名: 年 級: 學 院:信息科學技術學院 系 別:電子信息工程 專 業(yè):電子信息工程 指導教師: 完成日期: 42摘 要 通信技術的飛速發(fā)展,信道編碼已經成功地應用于各種通信系統(tǒng)中。以及各種傳輸方式對可靠性要求的不斷提高,信道編碼技術作為抗干擾技術的一種重要的手段,在數字通信技術領域和數字傳輸系統(tǒng)中顯示出越來越重要的作用。 信道編碼的目的是為了改善通信系統(tǒng)的傳輸質量。由于實際信道存在噪聲和干擾,使發(fā)送的碼字與信道傳輸后所接收的碼字之間存在差異,稱這種差異為差錯。一般情況下,信道
2、噪聲、干擾越大,碼字產生差錯的概率也就越大。 本文利用matlab對二進制對稱信道(BSC),高斯白噪聲信道(AWGN)兩種信道的仿真,(7,4)Hamming碼對信道的仿真,通過誤碼率的曲線圖來了解信道的編碼。并利用matlab的simulink模塊仿真,運用simulink里的卷積碼viterbi譯碼器來對二進制對稱信道和高斯白噪聲信道的仿真,觀察誤碼率的曲線圖來了解2個信道的不同。關鍵字:matlab,信道,編碼,譯碼,Simulink。Abstract With the rapid development of communication technology, channel cod
3、ing has 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 trans
4、mission 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 c
5、ode words, 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) Ham
6、ming code 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 err
7、or rate graphs to understand the two different channelsKeywords: matlab, channel, coding, decoding, Simulink.目錄1引言11.1選題的目的和意義11.2本選題的理論依據、研究內容12.信道編碼以及其運行環(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二進制對稱信道(BSC)53.2二進制刪除信道(
8、BEC)63.3高斯白噪聲信道(AWGN)64. Hamming碼74.1漢明碼74.2校驗方法74.3漢明碼編碼94.3.1漢明碼對高斯白噪聲信道94.3.2漢明碼對二進制對稱信道的仿真115.卷積碼155.1卷積碼定義與原理155.2維特比譯碼原理155.3卷積碼譯碼器對高斯白噪聲信道的設計與仿真185.3.1卷積碼譯碼器的設計與仿真195.3.2簡化維特比譯碼器的仿真225.3.3卷積碼譯碼器的誤碼率分析245.4卷積編碼器在二進制對稱信道(BSC)中的性能256.卷積碼譯碼器對二進制對稱信道和高斯白噪聲信道仿真比較307.總結31致謝32參考文獻33附錄1:34附錄2:37附錄3:40
9、附錄4:411引言1.1選題的目的和意義數字信號在傳輸中往往由于各種原因,使得在傳送的數據流中產生誤碼,從而使接收端產生圖象跳躍、不連續(xù)、出現馬賽克等現象。所以通過信道編碼這一環(huán)節(jié),對數碼流進行相應的處理,使系統(tǒng)具有一定的糾錯能力和抗干擾能力,可極大地避免碼流傳送中誤碼的發(fā)生。誤碼的處理技術有糾錯、交織、線性內插等。提高數據傳輸效率,降低誤碼率是信道編碼的任務。信道編碼的本質是增加通信的可靠性。但信道編碼會使有用的信息數據傳輸減少,信道編碼的過程是在源數據碼流中加插一些碼元,從而達到在接收端進行判錯和糾錯的目的。1.2本選題的理論依據、研究內容在數字通信系統(tǒng)中由于信道內存在加性噪聲及信道傳輸特
10、性不理想等容易造成碼間串擾同時多用戶干擾、多徑傳播和功率限制等也導致錯誤譯碼。為了確保系統(tǒng)的誤比特率指標通常采用信道編碼。信道編碼是為了保證信息傳輸的可靠性、提高傳輸質量而設計的一種編碼。它是在信息碼中增加一定數量的多余碼元,使碼字具有一定的抗干擾能力。提高信息傳輸的有效性和可靠性始終是通信技術所追求的目標,而信道編碼能夠顯著的提升信息傳輸的可靠性。簡述信道編碼理論,詳細說明分組碼的編譯原理、實現方法及檢錯糾錯能力,用MATLAB仿真信道編碼條不同信道下的影響。學習卷積碼的基本原理和編碼方法。學習基本分組碼的原理和編碼方法。理解二進制對稱信道(BSC),二進制擦除信道(BEC),高斯白噪聲信道
11、(AWGN)。理解碼率(code rate)和誤碼率(bit error rate)的意義。利用(7,4)Hamming碼對不同信道進行仿真。自己設計一個卷積碼,并利用Viterbi譯碼二進制對稱信道(BSC),高斯白噪聲信道(AWGN)2個信道進行仿真,比較結果。2.信道編碼以及其運行環(huán)境MATLAB的介紹2.1 信道編碼的概念及分類進行信道編碼是為了提高信號傳輸的可靠性,改善通信系統(tǒng)的傳輸質量,研究信道編碼的目標是尋找具體構造編碼的理論與方法。從原理上,構造信道碼的基本思路是根據一定的規(guī)律在待發(fā)送的信息碼元中人為的加入一定的多余碼元,以引入最小的多余度為代價來換取最好的抗干擾性能。信道編碼
12、是通過信道編碼器和譯碼器實現的用于提高信道可靠性的理論和方法,是信息論的內容之一。信道編碼大致分為兩類:信道編碼定理,從理論上解決理想編碼器、譯碼器的存在性問題,也就是解決信道能傳送的最大信息率的可能性和超過這個最大值時的傳輸問題。構造性的編碼方法以及這些方法能達到的性能界限。編碼定理的證明,從離散信道發(fā)展到連續(xù)信道,從無記憶信道到有記憶信道,從單用戶信道到多用戶信道,從證明差錯概率可接近于零到以指數規(guī)律逼近于零,正在不斷完善。編碼方法,在離散信道中一般用代數碼形式,其類型有較大發(fā)展,各種界限也不斷有人提出,但尚未達到編碼定理所啟示的限度。在連續(xù)信道中常采用正交函數系來代表消息,這在極限情況下
13、可達到編碼定理的限度,不是所有信道的編碼定理都已被證明。2.2 信道編碼定理及信道編碼中所包含的各種碼類的簡介1948年,信息論的奠基人CEShannon在他的開創(chuàng)性論文“通信的數學理論”中,提出了著名的有噪信道編碼定理。他指出:對任何信道,只要信息傳輸速率R不大于信道容量C, 就一定存在這樣的編碼方法:在采用最大似然譯碼時,其誤碼率可以任意小。該定理在理論上給出了對給定信道通過編碼所能達到的編碼增益的上限,并指出了為達到理論極限應采用的譯碼方法。在信道編碼定理中,香農提出了實現最佳編碼的三個基本條件 :(1)采用隨機編譯碼方式 ;(2)編碼長度 ,即分組的碼組長度無限;(3)譯碼采用最佳的最
14、大似然譯碼算法。2.2.1卷積碼卷積碼(convolution code)屬于非分組碼,它是一種小分組(n ,k)多碼段相關、糾錯能力較強的FEC碼。卷積碼不同于(n, k)分組碼,它將(n, k)變成很短的分組(n, k),如(2 ,1)、(3, 1)(3, 2)卷積碼等。每一個監(jiān)督元不僅是由本碼段(n, k)的k位信碼所決定,而且與其前N-1個碼段的信碼有關,因此稱為卷積碼。它適于串行傳送,延時較小。本碼段(n,k)以及其前(N-1)段構成的N個分組碼段稱為約束長度:其碼元數為Nn比特,而N稱為約束度。因此,各碼段(n, k)不像(n, k)分組碼是一個獨立糾錯碼單元,其差錯控制能力由N個
15、碼段來決定。所以通常將卷積碼寫為(n, k,N),其中N=m+1,m是編碼電路的移位寄存器數目。卷積碼分為兩種:(1)基本卷積碼:基本卷積碼編碼效率為,1/2, 編碼效率較低,優(yōu)點是糾錯能力強。(2)收縮卷積碼:如果傳輸信道質量較好,為提高編碼效率,可以采樣收縮截短卷積碼。有編碼效率為:1/2、2/3、3/4、5/6、7/8這幾種編碼效率的收縮卷積碼編碼效率高,一定帶寬內可傳輸的有效比特率增大,但糾錯能力越減弱。2.2.2線性分組碼簡單來說,所謂“分組碼”就是指碼字的生成只與當前的源數據有關,而與前后的數據無關(相應地,與前后數據相關的碼稱為卷積碼)。分組碼將連續(xù)的數據比特流分割為長度固定的組
16、;各組進一步以m比特為單位分割為符號(Symbol),通常取3比特或者8比特數據組成一個符號。k個符號一起組成源字(Source word),經過編碼后變?yōu)殚L度為n的碼字(Code word),稱為m比特符號的(n , k)分組碼。所謂“線性”,是指編碼過程均為線性變換,即可以通過矩陣變換來表示。目前研究的糾錯碼大都屬于線性碼。在線性空間中,所有可能的m比特源字都可以進行編碼變換,而無需關心這m比特數據所代表的含義。所謂“系統(tǒng)”,是指碼字中包含了源字和變換所得的校驗字。2.2.3循環(huán)碼循環(huán)碼的特點是符合(n, k)線形分組碼特點-在碼內(碼子集合)的任意兩個碼字之和為該碼中的一個碼字,這一特征
17、表明(n, 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,最低項為常數1。其生成多項式的充分條件是由必要條件得到的g(x),其多項式的非零權系數個數還應等于相應(n, k)分碼組的d。之所以補充這一“充分”條件,是因為符合必要條件的g(x)并不一定能得到與其相應分組碼相同(n, k)的差錯控制能力。循環(huán)編碼碼步驟:源碼為m(x)=mx+mx+m,應首先提
18、升n-k位,變?yōu)閤m(x)。然后以生成多項式g(x)去除,得 =q(x)+ 式(2-1) 可得循環(huán)碼:C(x)=xm(x)+b(x)。2.3 MATLAB語言的簡介MATLAB是矩陣實驗室(MatrixLaboratory)之意,除具備卓越的數值計算能力外,它還提供了專業(yè)水平的符號計算,文字處理,可視化建模仿真和實時控制等功能。MATLAB 將高性能的數值計算和可視化集成在一起,并提供了大量的內置函數,從而被廣泛地應用于科學計算、控制系統(tǒng)、信息處理等領域的分析、仿真和設計工作,而且利用MATLAB產品的開放式結構,可以非常容易地對 MATLAB的功能進行擴充,從而在不斷深化對問題認識的同時,不
19、斷完善MATLAB 產品以提高產品自身的競爭能力。MATLAB的基本數據單位是矩陣,它的指令表達式與數學,工程中常用的形式十分相似,故用MATLAB來解算問題要比用C、FORTRAN等語言完相同的事情簡捷得多。 開放性使MATLAB廣受用戶歡迎。除內部函數外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構造新的專用工具包。Matlab軟件最好的教材是它的幫助文件。只要硬盤容量夠大,極力推薦安裝完整的幫助文檔,即使你對閱讀英文不是很有信心,但我相信其足夠的實例還是能讓你對要查詢的命令函數有一定的了解的。有兩種方法取得幫助信息:一是直接在命令窗
20、口輸入>>help 函數名;如help imread,會得到相應函數的有關幫助信息。二是在幫助窗口中查找相應信息。不同版本的幫助菜單界面有所不同,這只能依賴于自己去熟悉了。但總體上都和windows的界面具有相似的處理過程。2.4 SimulinkSimulink是The MathWorks公司開發(fā)的用于動態(tài)系統(tǒng)和嵌入式系統(tǒng)的多領域仿真和基于模型的設計工具,常集成于MathWorks公司的另一產品mtlab中與之配合使用。Simulink提供了一個交互式的圖形化環(huán)境及可定制模塊庫(Library),可對各種時變系統(tǒng),例如通訊、控制、信號處理、視頻處理和圖像處理系統(tǒng)等進行設計、仿真、
21、執(zhí)行和測試。與MATLAB類似,Simulink的功能可以通過購買或自定義的工具箱不斷擴展。 另外,Simulink與MATLAB緊密集成,可以直接訪問MATLAB大量的工具來進行算法研發(fā)、仿真的分析和可視化、批處理腳本的創(chuàng)建、建模環(huán)境的定制以及信號參數和測試數據的定義。它的主要特點有1:1. 豐富的可擴充的預定義模塊庫 2. 交互式的圖形編輯器來組合和管理直觀的模塊圖 3. 以設計功能的層次性來分割模型,實現對復雜設計的管理 4. 通過Model Explorer 導航、創(chuàng)建、配置、搜索模型中的任意信號、參數、屬性,生成模型代碼 5. 提供API用于與其他仿真程序的連接或與手寫代碼集成 6.
22、 使用Embedded MATLAB模塊在Simulink和嵌入式系統(tǒng)執(zhí)行中調用MATLAB算法 7. 使用定步長或變步長運行仿真,根據仿真模式(Normal,Accelerator,Rapid Accelerator)來決定以解釋性的方式運行或以編譯C代碼的形式來運行模型 8. 圖形化的調試器和剖析器來檢查仿真結果,診斷設計的性能和異常行為 9. 可訪問MATLAB從而對結果進行分析與可視化,定制建模環(huán)境,定義信號參數和測試數據 10. 模型分析和診斷工具來保證模型的一致性,確定模型中的錯誤 。3.信道3.1二進制對稱信道(BSC)二進制對稱信道是離散無記憶信道在J=K=2時的特例。它的輸入
23、和輸出都只有0和1兩種符號,并且發(fā)送0而接受到1,以及發(fā)送1而收到0(即誤碼)的概率相同,所以稱信道是對稱的。此時條件差錯概率由p表示。二進制對稱信道的轉移概率如圖3.1 圖3.1 二進制對稱信道3.2二進制刪除信道(BEC) 圖3.2二進制刪除信道信道的特點是,信源傳輸0或1時,接收端以1-a的概率正確接收,以概率a被刪除。3.3高斯白噪聲信道(AWGN)在信號傳輸的過程中,它會不可避免地受到各種干擾,這些干擾統(tǒng)稱為“噪聲”。加性高斯白噪聲AWGN是最常見的一種噪聲。加性高斯白噪聲是最簡單的一種噪聲,它表現為信號圍繞平均值的一種隨機波動過程。加性高斯白噪聲的均值為o,方差表現為噪聲功率的大小
24、。一放情況下,噪聲功率越大,信號的波動幅度就越大,接收端接收到的信號的誤比特率就越高。在研究通信系統(tǒng)的誤碼率與信道質量的關系時,一放先研究它在加性高斯白噪聲信道下的性能,然后再把它推廣到具有快衰落的復雜情況。4. Hamming碼4.1漢明碼當計算機存儲或移動數據時,可能會產生數據位錯誤,這時可以利用漢明碼來檢測并糾錯,簡單的說,漢明碼是一個錯誤校驗碼碼集,由Bell實驗室的R.W.Hamming發(fā)明,因此定名為漢明碼。與其他的錯誤校驗碼類似,漢明碼也利用了奇偶校驗位的概念,通過在數據位后面增加一些比特,可以驗證數據的有效性。利用一個以上的校驗位,漢明碼不僅可以驗證數據是否有效,還能在數據出錯
25、的情況下指明錯誤位置。在接受端通過糾錯譯碼自動糾正傳輸中的差錯來實現碼糾錯功能,稱為前向糾錯FEC。在數據鏈路中存在大量噪音時,FEC可以增加數據吞吐量。通過在傳輸碼列中加入冗余位(也稱糾錯位)可以實現前向糾錯。但這種方法比簡單重傳協(xié)議的成本要高。漢明碼利用奇偶塊機制降低了前向糾錯的成本。4.2校驗方法 進行奇偶校驗的方法是先計算數據中1的個數,通過增加一個0或1(稱為校驗位),使1的個數變?yōu)槠鏀?奇校驗)或偶數(偶校驗)。例如,數據1001總共是4個比特位,包括2個1,1的數目是偶數,因此,如果是偶校驗,那么增加的校驗位就是一個0,反之,增加一個1作為校驗位。通過“異或”運算來實現偶校驗,“
26、同或”運算來實現奇校驗。單個比特位的錯誤可以通過計算1的數目是否正確來檢測出來,如果1的數目錯誤,說明有一個比特位出錯,這表示數據在傳輸過程中受到噪音影響而出錯。利用更多的校驗位,漢明碼可以檢測兩位碼錯,每一位的檢錯都通過數據中不同的位組合來計算出來。校驗位的數目與傳輸數據的總位數有關,可以通過漢明規(guī)則進行計算: d+p+1<=2的p次方 d表示傳輸數據位數目,p表示校驗位數目。兩部分合稱漢明碼字,通過將數據位與一個生成矩陣相乘,可以生成漢明碼字。 2008-07-05 19:10 針對4位數據的漢明碼編碼示意圖 漢明碼是一個在原有數據中插入若干校驗碼來進行錯誤檢查和糾正的編碼技術。以典
27、型的4位數據編碼為例,漢明碼將加入3個校驗碼,從而使實際傳輸的數據位達到7個(位),它們的位置如果把上圖中的位置橫過來就是: 數據位 1234567 代碼 P1 P2 D8 P3 D4D2 D1 說明 第1個漢明碼 第2個漢明碼 第1個數據碼 第3個漢明碼 第2個數據碼 第3個數據碼 第4個數據碼 注:Dx中的x是2的整數冪(下面的冪都是指整數冪)結果,多少冪取決于碼位,D1是0次冪,D8是3次冪,想想二進制編碼就知道了。另外,漢明碼加插的位置也是有規(guī)律的。以四位數據為例,第一個漢明碼是第一位,第二個是第二位,第三個是第四位,1、2、4都是2的整數冪結果,而這個冪次數是從0開始的整數。這樣我們
28、可以推斷出來,漢明碼的插入位置為1(20 (注:20表示2的0次冪))、2(21)、4(22)、8(23)、16(24)、32(25)4.3漢明碼編碼4.3.1漢明碼對高斯白噪聲信道隨機信號源: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產生高斯噪聲: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;漢
29、明碼編碼:function 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 調制:function out=modd(in,k,r)m=k+r;for n=1:m if i
30、n(n)<1 out(n)=-1; else out(n)=1; endend解調: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; %測試的數據包數目w=0; %譯碼錯誤碼元數目統(tǒng)計的變量n=1; while n<N %測試數據包 ic,rc=inform(k); %產生隨機信號源 hc=hamming(ic,k
31、,P); %漢明碼編碼 mc=modd(hc,k,r); %調制 nc=mc+noise(SNR,k,r); %通過帶噪聲信道 dmc=demod(nc,k,r); %解調 dhc=dehamming(dmc,k,r,P); %漢明碼譯碼 for m=1:k %統(tǒng)計譯碼錯誤碼元數 if dhc(m)=ic(m) w=w+1; end end n=n+1;endBER=w/(N*k) %計算誤碼率semilogy(SNR,BER);仿真結果分析:圖4.3.1漢明碼對AWGN信道仿真的誤碼率曲線圖對圖4的觀察,我們可以看到,在高斯白噪聲信道里當信噪比越來越大時,誤碼率越來越低,到一定程度,信道的誤
32、碼率會為0。仿真結果和理論結果基本一致。4.3.2漢明碼對二進制對稱信道的仿真% (7,4)漢明碼仿真 %定義變量(7,4)漢明碼模擬k = 4; % n = 7; % p_vector = 0.1:0.01:1; % 向量P的值,誤碼率N = length(p_vector); % p_vector的長度RUNS = 5000; % 運行數% 碼字表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
33、0; . 0 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; % 錯誤的數 p=p_vector(p_i); for (r=1:RUNS) %生成4位的信息塊 z = unifrnd(0, 1, 1, 4); %0和1的4位串 w = round(z); %圓的Z值%找到行的索引,二進制轉換: m =
34、 w(1) + w(2)*2 + w(3)*4 + w(4)*8; x = xtable(m + 1, :); z = unifrnd(0, 1, 1, 7); % 0和1的7位隨機字符串 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 = xta
35、ble(q, 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-',
36、Ps, Pb_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中,可以看到藍色的曲線是模擬后的誤碼率曲線,黑色的曲線是分析的誤碼率曲線。上面黑色曲線是
37、概率誤差p最大值的誤碼率,下面黑色的曲線是概率誤差p最小值的誤碼率。從圖中可以看出概率誤差最大,BSC信道的誤碼率就越高。5.卷積碼5.1卷積碼定義與原理卷積碼是一種向前糾錯控制編碼。它將連續(xù)的信息比特序列映射為連續(xù)的編碼器輸出符號。這種映射是高度結構化的,使得卷積碼的譯碼方法與分組碼譯碼所采用的方法完全不同??梢则炞C的是在同樣復雜度情況下,卷積碼的編碼增益要大于分組碼的編碼增益。對于某個特定的應用,采用分組編碼還是采用卷積編碼哪一種更好則取決于這一應用的具體情況和進行比較時可用的技術。卷積編碼的最佳譯碼準則為:在給定已知編碼結構、信道特性和接收序列的情況下,譯碼器將把與已經發(fā)送的序列最相似的
38、序列作為傳送的碼字序列的估值。對于二進制對稱信道,最相似傳送序列就是在漢明距離上與接收序列最近的序列。卷積碼的譯碼方法有兩大類:一類是大數邏輯譯碼,又稱門限譯碼(硬判決,編者注);另一種是概率譯碼(軟判決,編者注),概率譯碼又分為維特比譯碼和序列譯碼兩種。門限譯碼方法是以分組碼理論為基礎的,其譯碼設備簡單,速度快,但其誤碼性能要比概率譯碼法差。5.2維特比譯碼原理采用概率譯碼的基本思想是:把已接收序列與所有可能的發(fā)送序列做比較,選擇其中碼距最小的一個序列作為發(fā)送序列。如果發(fā)送L組信息比特,那么對于(n,k)卷積碼來說,可能發(fā)送的序列有2kL個,計算機或譯碼器需存儲這些序列并進行比較,以找到碼距
39、最小的那個序列。當傳信率和信息組數L較大時,使得譯碼器難以實現。維特比算法則對上述概率譯碼做了簡化,以至成為了一種實用化的概率算法。它并不是在網格圖上一次比較所有可能的2kL條路徑(序列),而是接收一段,計算和比較一段,選擇一段最大似然可能的碼段,從而達到整個碼序列是一個最大似然值得序列。下面以圖5.1的(2,1,3)卷積碼編碼器所編出的碼為例,來說明維特比解碼的方法和運作過程。為了能說明解碼過程,這里給出該碼的狀態(tài)圖,如圖5.2所示。mjmj-1mj-2輸出序列m1,m2,mj,y1jy2j輸入序列00adcb110011010110圖5.1 (2,1,3)卷積碼編碼器 圖5.2 (2,1,
40、3)卷積碼狀態(tài)圖維特比譯碼需要利用圖來說明移碼過程。根據卷積碼畫網格的方法,我們可以畫出該碼的網格圖,如圖5.3所示。該圖設輸入信息數目L=5,所以畫L+N=8個時間單位,圖中分別標以0至7。這里設編碼器從a狀態(tài)開始運作。該網格圖的每一條路徑都對應著不同的輸入信息序列。由于所有可能輸入信息序列共有2kL個,因而網格圖中所有可能的路徑也為2kL條。這里節(jié)點a=00,b=01,c=10,d=11。abcd節(jié)點號0123456700000000000000111111111111111100000101010101010101010101111110101010圖5.3 (2,1,3)卷積碼網格圖設
41、輸入編碼器的信息序列為(11011000),則由編碼器對應輸出的序列為Y=(1101010001011100),編碼器的狀態(tài)轉移路線為abdcbdca。若收到的序列R=(0101011001011100),對照網格圖來說明維特比譯碼的方法。由于該卷積碼的約束長度為6位,因此先選擇接收序列的前6位序列R1=(010101)同到達第3時刻的可能的8個碼序列(即8條路徑)進行比較,并計算出碼距。該例中到達第3時刻a點的路徑序列是(000000)和(111011),他們與R1的距離分別為3和4;到達第3時刻b點的路徑序列是(000011)和(111000),他們與R1的距離分別為3和4;到達第3時刻c
42、點的路徑序列是(001110)和(110101),他們與R1的距離分別為4和1;到達第3時刻d點的路徑序列是(001101)和(110110),他們與R1的距離分別為2和3。上述每個節(jié)點都保留碼距較小的路徑作為幸存路徑,所以幸存路徑碼序列是(000000)、(000011)、(1101001)和(001101),如圖5.4所示。用于上面類似的方法可以得到第4、5、6、7時刻的幸存路徑。abcd節(jié)點號0123000000111111010101圖5.4 維特比譯碼第3時刻幸存路徑需要指出的是,對于某個節(jié)點,如果比較兩條路徑與接收序列的累計碼距值相等時,則可以任意選者一條路徑作為幸存路徑,吃時不會
43、影響最終的譯碼結果。在碼的終了時刻a狀態(tài),得到一條幸存路徑。如果2.5所示。由此可看到譯碼器abcd節(jié)點號0123110101456780001011100圖5.5 第8時刻幸存路徑輸出是R=(1101010001011100),即可變換成序列(11011000),恢復了發(fā)端原始信息。比較R和R序列,可以看到在譯碼過程中已糾正了在碼序列第1和第7位上的差錯。當然如果差錯出現太頻繁,以致超出卷積碼的糾錯能力,還是會發(fā)生糾誤的。5.3卷積碼譯碼器對高斯白噪聲信道的設計與仿真整個設計的結構框圖如下圖5.3信源模塊信道信宿模塊信號編譯碼器約定參數信號信號 5.3結構框圖本設計由3個子系統(tǒng)組成:信源模塊
44、對隨機二進制信號進行卷積碼和二進制相位調制,輸出基帶調制信號;信道模塊是一個高斯白噪聲信道;信宿模塊對調制信號進行軟判決譯碼,得到原始信息序列,并且計算調制信號的誤碼率。5.3.1卷積碼譯碼器的設計與仿真信源模塊由貝努利二進制序列產生器、卷積碼編碼器以及二進制相位調制3個模塊組成,如下圖5.3.1所示5.3.1信源模塊系統(tǒng)框圖各個模塊的參數設置分別如表5.1表5.3所示。 表5.1 Bernoulli Binary Generator(貝努利二進制序列產生器)的參數設置參數名稱參數值模塊類型Bernoulli Binary GeneratorProbability of zero0.5Init
45、ial seed25741Sample time0.0001Frame-based outputCheckedSamples per frame10000表5.2 Convolutional Encoder(卷積碼編碼器)的參數設置參數名稱參數值模塊類型Convolutional EncoderTrellisPoly2trellis(7,171 133)ResetOn each frame表5.3 BPSK Modulator Baseband的參數設置參數名稱參數值模塊類型BPSK Modulator BasebandPhase offset(rad)0Samples per symbol1
46、本設計使用相對較簡單的一個加性高斯白噪聲信道作為噪聲信道,它在二進制相位調制信號中疊加高斯白噪聲。加性高斯白噪聲模塊的參數設置如表5.4。 表5.4 AWGN Channel(加性高斯白噪聲模塊)的參數設置參數名稱參數值模塊類型AWGN ChannelInitial seed1237ModeSignal to noise ratio(SNR)SNR(dB)SNRInput signal power(watts)1信道模塊如下圖5.3.2所示。 圖5.3.2 信道模塊示意圖信宿模塊在接收到二進制相位調制信號后,首先由BPSK Demodulator Baseband (二進制相位解調模塊)對信號
47、進行量化,得到硬判決量化信號,然后通過Viterbi Decoder(維特比譯碼器)對軟判決信號實施譯碼。譯碼輸出信號和信源模塊產生的原始信號輸入到Error Rate Calculator(誤比特率統(tǒng)計模塊)中,統(tǒng)計得到的數據一方面通過Display(顯示模塊)顯示出來,另一方面通過一個Selector(選擇器)把其中的第一個元素(即編碼信號的誤比特率)保存到工作區(qū)變量BitErrorRate中。信宿模塊如下圖5.3.3所示。圖5.3.3 信宿模塊Sink各關鍵模塊參數設置如表5.5、表5.6所示。表5.5 BPSK Demodulator Baseband(二進制相位解調模塊)的參數設置參
48、數名稱參數值模塊類型BPSK Demodulator BasebandPhase offset(rad)0Decision typeHard decisionOutput data typeInherit via internal rule表5.6 Viterbi Decoder(維特比譯碼器)的參數設置參數名稱參數值模塊類型Viterbi DecoderTrellis structurepoly2trellis(7, 171 133)Decision typeHard decisionTreceback depth1000Operation modeTruncated將此完整設計保存,命名為
49、convh.mdl,如下圖5.3.4圖5.3.4 完整設計5.3.2簡化維特比譯碼器的仿真為了驗證譯碼模塊的正確性,便讓其進行最簡模式運行,為此,臨時設計一個簡化信號系統(tǒng),關閉信道噪聲,不進行二進制相位的調制與解調,去掉誤比特率統(tǒng)計模塊。為了能看到輸入二進制碼和譯碼輸出二進制碼,增加了兩個To Workspace(結果輸入到工作區(qū)模塊),整個系統(tǒng)模塊框圖如圖5.3.5所示。圖5.3.5 簡化譯碼模塊框圖同時,為了便于觀察,將Bernoulli Binary Generator(貝努利二進制序列產生器)的參數設置為如表5.7所示,以產生簡單的15位二進制隨機碼,也將Viterbi Decoder
50、的Trceback depth值改為5。將To Workspace1模塊和To Workspace模塊的變量名分別設置為pdata和data。表5.7 簡化譯碼模塊的Bernoulli Binary Generator的參數設置參數名稱參數值模塊類型Bernoulli Binary GeneratorProbability of zero0.5Initial seed5Sample time10Frame-based outputCheckedSamples per frame5運行仿真(),在matlab的命令窗口中輸入pdata和data分別得到相應的二進制序列。對所得序列分別截圖,可得如
51、下所示結果??梢?,譯碼器能夠正確進行譯碼,所設計簡化譯碼器正確,因而,從理論上可推導,原設計正確。>> datadata = 1 1 0 1 1>> pdatapdata = 1 1 0 1 15.3.3卷積碼譯碼器的誤碼率分析編制M文件convolutionh.m,使convh.mdl在不同的信噪比條件下重復執(zhí)行前面建立的項目convh.mdl。然后繪制信道的信噪比與編碼信號誤比特率之間的關系曲線圖。M文件代碼如下:%x表示信噪比x=-10:5;%y表示信號的誤比特率y=x;%準備一個空白圖形hold off;%重復運行convh.mdl,檢驗不同條件下硬判決譯碼的性
52、能 for i=1:length(x) %信道的信噪比依次取x中的元素 SNR=x(i); %運行仿真程序,得到的誤比特率保存在工作區(qū)變量BitErrorRate中 sim('convh'); %計算BitErrorRate的均值作為本次仿真的誤比特率 y(i)=mean(BitErrorRate); end%繪制x和y的關系曲線圖,縱坐標采用對數坐標semilogy(x,y);%保持已經繪制的圖形hold on執(zhí)行此M文件,得到如下圖5.3.4所示的關系曲線圖,由此圖可見,隨著信道信噪比的提升,維特比譯碼所得結果的誤比特率越低,信道的可信度越高,信噪比在大于-2時信道的誤碼率開始明
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年寧夏工商職業(yè)技術學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2024年天津電子信息職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 二零二五年新能源光伏組件加工銷售合同樣本3篇
- 4、高考文言文斷句專項訓練
- 黔南2025年貴州黔南州長順縣衛(wèi)生類事業(yè)單位招聘13人筆試歷年參考題庫附帶答案詳解
- 二零二五年度能源設備采購合同數量取消及替代方案補充協(xié)議2篇
- 二零二五年文化交流翻譯兼職合作協(xié)議3篇
- 二零二五年度進口家具代理銷售合同3篇
- 婚內孩子歸屬協(xié)議書(2篇)
- 二零二五年度工程墊資服務合同模板范本
- 統(tǒng)編版一年級語文上冊 第5單元教材解讀 PPT
- CSCEC8XN-SP-安全總監(jiān)項目實操手冊
- 加減乘除混合運算600題直接打印
- 口腔衛(wèi)生保健知識講座班會全文PPT
- 成都市產業(yè)園區(qū)物業(yè)服務等級劃分二級標準整理版
- 最新監(jiān)督學模擬試卷及答案解析
- ASCO7000系列GROUP5控制盤使用手冊
- 污水處理廠關鍵部位施工監(jiān)理控制要點
- 財政投資評審中心工作流程
- 帶狀皰疹的護理查房
- 10個地基基礎工程質量通病及防治措施
評論
0/150
提交評論