版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科生畢業(yè)論文(設(shè)計(jì))</p><p> 題 目:MATLAB實(shí)現(xiàn)卷積碼編譯碼 </p><p> 專(zhuān)業(yè)代碼: </p><p> 作者姓名: </p><p> 學(xué) 號(hào): </p&
2、gt;<p> 單 位: </p><p> 指導(dǎo)教師: </p><p><b> 年 月 日</b></p><p><b> 目 錄</b></p><p><b> 前言1
3、</b></p><p> 1. 糾錯(cuò)碼基本理論2</p><p> 1.1糾錯(cuò)碼基本理論2</p><p> 1.1.1糾錯(cuò)碼概念2</p><p> 1.1.2基本原理和性能參數(shù)2</p><p> 1.2幾種常用的糾錯(cuò)碼6</p><p> 2. 卷積碼的
4、基本理論8</p><p> 2.1卷積碼介紹8</p><p> 2.1.1 卷積碼的差錯(cuò)控制原理8</p><p> 2.2卷積碼編碼原理10</p><p> 2.2.1 卷積碼解析表示法10</p><p> 2.2.2 卷積碼圖形表示法11</p><p> 2
5、.3 卷積碼譯碼原理15</p><p> 2.3.1 卷積碼三種譯碼方式15</p><p> 2.3.2 Viterbi譯碼原理16</p><p> 3. 卷積碼編譯碼及MATLAB仿真18</p><p> 3.1 Matlab概述18</p><p> 3.1.1 Matlab的特點(diǎn)
6、19</p><p> 3.1.2 Matlab工具箱和內(nèi)容19</p><p> 3.2卷積碼編碼及仿真20</p><p> 3.2.1編碼程序20</p><p> 3.3 信道傳輸過(guò)程仿真21</p><p> 3.4維特比譯碼程序及仿真22</p><p> 3
7、.4.1 維特比譯碼算法解析23</p><p> 3.4.2 Viterbi譯碼程序25</p><p> 3.4.3 viterbi譯碼matlab仿真28</p><p> 3.4.4信噪比對(duì)卷積碼譯碼性能的影響28</p><p> 3.4.5碼率對(duì)卷積碼譯碼性能的影響30</p><p>
8、 3.4.6 約束長(zhǎng)度對(duì)卷積碼誤碼性能的影響31</p><p> 3.4.7回溯長(zhǎng)度對(duì)卷積碼誤碼性能的影響32</p><p> 3.4.8 判決方式對(duì)卷積碼誤碼性能的影響32</p><p> 4. 結(jié)論及展望34</p><p><b> 4.1 結(jié)論34</b></p><
9、;p><b> 4.2展望35</b></p><p><b> 5. 結(jié)束語(yǔ)36</b></p><p><b> 參考文獻(xiàn)37</b></p><p><b> 致謝38</b></p><p><b> 附錄39&
10、lt;/b></p><p><b> 摘要</b></p><p> 在數(shù)字通信系統(tǒng)中,通常采用差錯(cuò)控制編碼來(lái)提高系統(tǒng)的可靠性。自P.Elias首次提出卷積碼編碼以來(lái),這一編碼技術(shù)至今仍顯示出強(qiáng)大的生命力。目前,卷積碼已廣泛應(yīng)用在無(wú)線(xiàn)通信標(biāo)準(zhǔn)中,如GSM,CDMA2000和IS-95等無(wú)線(xiàn)通信標(biāo)準(zhǔn)中。</p><p> 本文簡(jiǎn)單介
11、紹了糾錯(cuò)碼的基本原理,論述了卷積碼編譯碼原理和算法,并通過(guò)matlab仿真對(duì)卷積碼性能進(jìn)行研究,重點(diǎn)比較分析了不同碼率、不同約束長(zhǎng)度、不同回溯長(zhǎng)度以及不同譯碼判決方式對(duì)Viterbi譯碼性能的影響,并得出相關(guān)結(jié)論。</p><p> 關(guān)鍵詞:卷積碼,Viterbi,Matlab,誤碼率,數(shù)字通信系統(tǒng)</p><p><b> Abstract</b></p&
12、gt;<p> In digital communication systems, error control coding is usually used to improve system reliability. Since P.Elias put forward the convolutional coding the first time, the coding is still showing strong
13、vitality.,has become widely used in satellite communications, wireless communications and many other communication systemsas a kind of channel coding method. such as GSM, CDMA2000 and has been a wireless communication st
14、andards of IS-95.</p><p> This article introduces the basic principles of error-correcting codes, mainly reasearch the principle of the convolutional code encoding and decoding and the algorithms.Through th
15、e matlab simulation, we study the performance of convolutional code, especilly the performance of the viterbi decoding with different bit rates, different Constraint length ,different traceback depthe and different deci
16、sion types,compare and make conclusions.</p><p> Keywords: convolutional codes, Viterbi, Matlab, bit error rate, the digital communication system</p><p> MATLAB實(shí)現(xiàn)卷積碼編譯碼</p><p><
17、;b> 前言</b></p><p> 信道編碼是數(shù)字通信系統(tǒng)的重要組成部分,隨著通信技術(shù)的不斷發(fā)展,信道編碼技術(shù)也在不斷地發(fā)展。在通信系統(tǒng)中,信道傳輸特性不理想以及噪聲的存在,會(huì)導(dǎo)致接收端出現(xiàn)接收信號(hào)的錯(cuò)誤,因此用于信道糾錯(cuò)的信道編碼是數(shù)字通信系統(tǒng)中極為重要的一個(gè)環(huán)節(jié)。二十世紀(jì)40年代香農(nóng)定理的出現(xiàn)為人們指出了糾錯(cuò)碼的研究方向。根據(jù)香農(nóng)的有噪信道編碼定理,可以推導(dǎo)出一個(gè)碼率為R 的編碼通信
18、系統(tǒng)達(dá)到無(wú)誤碼傳輸狀態(tài)所必須的最小信噪比的理論極限。這個(gè)理論極限通常稱(chēng)為香農(nóng)限,它說(shuō)明對(duì)一個(gè)碼率為R的編碼通信系統(tǒng),只有當(dāng)SNR超過(guò)這個(gè)極限值時(shí)才能獲得無(wú)誤碼傳輸。只要SNR高于這個(gè)極限值,香農(nóng)的編碼定理保證了能夠獲得無(wú)誤碼傳輸?shù)模赡芟喈?dāng)復(fù)雜)編碼通信系統(tǒng)的存在性。另外,香農(nóng)證明了在采用無(wú)限長(zhǎng)的隨機(jī)編碼時(shí),數(shù)據(jù)可以以接近信道容量的速率幾乎無(wú)誤碼的傳輸,從而為信道編碼的研究奠定了基礎(chǔ)。 </p><p> 本
19、文主要介紹了信道編碼的基本理論,著重研究了卷積碼的編碼方法和viterbi譯碼,介紹了MATLAB的使用方法,并編寫(xiě)卷積碼的編碼和解碼程序,通過(guò)MATLAB仿真軟件對(duì)卷積碼編解碼進(jìn)行仿真。重點(diǎn)對(duì)viterbi譯碼進(jìn)行了研究,該算法就是利用卷積碼編碼器的格圖來(lái)計(jì)算路徑度量,選擇從起始時(shí)刻到終止時(shí)刻的惟一幸存路徑作為最大似然路徑,沿著最大似然路徑回溯到開(kāi)始時(shí)刻,所走過(guò)的路徑對(duì)應(yīng)的編碼輸出就是最大似然譯碼輸出序列。它是一種最大似然譯碼方法,當(dāng)
20、編碼約束長(zhǎng)度不大、或者誤碼率要求不是很高的情況下,Viterbi譯碼器設(shè)備比較簡(jiǎn)單,計(jì)算速度快,因而Viterbi譯碼器被廣泛應(yīng)用于各種領(lǐng)域。</p><p> 1. 糾錯(cuò)碼基本理論</p><p> 1.1糾錯(cuò)碼基本理論</p><p> 1.1.1糾錯(cuò)碼概念</p><p> 糾錯(cuò)碼(error correcting code),
21、在傳輸過(guò)程中發(fā)生錯(cuò)誤后能在收端自行發(fā)現(xiàn)或糾正的碼。僅用來(lái)發(fā)現(xiàn)錯(cuò)誤的碼一般常稱(chēng)為檢錯(cuò)碼。為使一種碼具有檢錯(cuò)或糾錯(cuò)能力,須對(duì)原碼字增加多余的碼元,以擴(kuò)大碼字之間的差別 ,即把原碼字按某種規(guī)則變成有一定剩余度(見(jiàn)信源編碼)的碼字,并使每個(gè)碼字的碼之間有一定的關(guān)系。關(guān)系的建立稱(chēng)為編碼。碼字到達(dá)收端后,可以根據(jù)編碼規(guī)則是否滿(mǎn)足以判定有無(wú)錯(cuò)誤。當(dāng)不能滿(mǎn)足時(shí),按一定規(guī)則確定錯(cuò)誤所在位置并予以糾正。糾錯(cuò)并恢復(fù)原碼字的過(guò)程稱(chēng)為譯碼。檢錯(cuò)碼與其他手段結(jié)合使
22、用,可以糾錯(cuò)。</p><p> 1.1.2基本原理和性能參數(shù)</p><p> 糾錯(cuò)碼編碼的基本思想是在被傳輸?shù)男畔⒋a元中附加一些監(jiān)督碼元,并且使它們之間確定某一種關(guān)系,根據(jù)傳輸過(guò)程中這種關(guān)系是否被破壞來(lái)發(fā)現(xiàn)或糾正錯(cuò)誤??梢?jiàn)這種差錯(cuò)控制能力是用增加信息量的冗余度來(lái)?yè)Q取的。</p><p> 設(shè)編碼后的碼組長(zhǎng)度、碼組中所含信息碼元以及監(jiān)督碼元的個(gè)數(shù)分別為n、k
23、和r,三者間滿(mǎn)足n= k + r,定義編碼效率為R = k/n = 1 - r/n??梢?jiàn)碼組長(zhǎng)度一定時(shí),所加入的監(jiān)督碼元個(gè)數(shù)越多,編碼效率越低。香農(nóng)的信道編碼定理指出:</p><p> 對(duì)于一個(gè)給定的有擾信道,若信道容量為C,只要發(fā)送端以低于C的速率R發(fā)送信息,其中R為編碼器的輸入二進(jìn)制碼元速率,則一定存在一種編碼方法,使編碼錯(cuò)誤概率P隨著碼長(zhǎng)n的增加,按指數(shù)下降到任意小的值??梢员硎緸?</p>
24、<p><b> (1-1)</b></p><p> 其中 E(R)稱(chēng)為誤差指數(shù),它與R和C的關(guān)系如圖1-1所示。</p><p> 圖1-1 誤差指數(shù)曲線(xiàn)</p><p><b> 由定理有如下結(jié)論:</b></p><p> (1). 在碼長(zhǎng)及發(fā)送信息速率一定的情況下
25、,為減小P可以增大信道容量。由圖2-1可知,E(R)隨信道容量的增加而增大。由式(1-1)可知,錯(cuò)誤概率隨E(R)的增大而指數(shù)下降。</p><p> (2). 在信道容量及發(fā)送信息速率一定的條件下,增加碼長(zhǎng),可以使錯(cuò)誤概率指數(shù)下降。對(duì)于實(shí)際應(yīng)用來(lái)說(shuō),此時(shí)的設(shè)備復(fù)雜性和譯碼延時(shí)也隨之增加。</p><p> 香農(nóng)的信道編碼定理為信道編碼奠定了理論基礎(chǔ),雖然定理本身并沒(méi)有給出具體的差錯(cuò)控
26、制編碼方法和糾錯(cuò)碼的結(jié)構(gòu),但它從理論上為信道編碼的發(fā)展指出了努力方向。</p><p> 我們用3位二進(jìn)制碼組來(lái)說(shuō)明檢錯(cuò)糾錯(cuò)的基本原理。3位二進(jìn)制碼元共有8種可能的組合:000、001、010、011、100、101、110、111。如果這8種碼組都可傳遞消息,若在傳輸過(guò)程中發(fā)生一個(gè)誤碼,則一種碼組會(huì)錯(cuò)誤地變成另一種碼組。由于每一種碼組都可能出現(xiàn),沒(méi)有多余的信息量,因此接收端不可能發(fā)現(xiàn)錯(cuò)誤,認(rèn)為發(fā)送的就是另一種
27、碼組。</p><p> 如果選其中000、011、101、110 來(lái)傳送消息,這相當(dāng)于只傳遞00、01、10、11四種信息,而第3位是附加的。這位附加的監(jiān)督碼元與前面兩位碼元一起,保證碼組中“1”碼的個(gè)數(shù)為偶數(shù)。這4種碼組稱(chēng)為許用碼組。另外 4種碼組不滿(mǎn)足這種校驗(yàn)關(guān)系,稱(chēng)為禁用碼組,它們?cè)诰幋a后的發(fā)送碼元中不會(huì)出現(xiàn)。接收時(shí)一旦發(fā)現(xiàn)有禁用碼組,就表明傳輸過(guò)程中發(fā)生了錯(cuò)誤。用這種簡(jiǎn)單的校驗(yàn)關(guān)系可以發(fā)現(xiàn)1個(gè)或3個(gè)錯(cuò)
28、誤,但不能糾正錯(cuò)誤。因?yàn)楫?dāng)接收到的碼組為禁用碼組時(shí),比如為010,無(wú)法判斷發(fā)送的是哪個(gè)碼組。雖然原發(fā)送碼組為101的可能性很小(因?yàn)?個(gè)誤碼的概率一般很小),但不能絕對(duì)排除,即使傳輸過(guò)程中只發(fā)生一個(gè)誤碼,也有三種可能的發(fā)送碼組即000、011和110。 </p><p> 假如我們進(jìn)一步將許用碼組限制為二種即000和111,顯然這樣可以發(fā)現(xiàn)所有2位以下的誤碼,若用來(lái)糾錯(cuò),可以用最大似然準(zhǔn)則糾正1位錯(cuò)誤。可以用一
29、個(gè)三維立方體來(lái)表示上述3位二進(jìn)制碼組的例子,如圖1-2所示。圖中立方體各頂點(diǎn)分別表示8位碼組,3位碼元依次表示x、y、z軸的坐標(biāo)。</p><p> 圖1-2 碼距的幾何解釋</p><p> 這里定義碼組中非零碼元的數(shù)目為碼組的重量,簡(jiǎn)稱(chēng)碼重。比如100碼組的碼重為1,101碼組的碼重為2。定義兩個(gè)碼組中對(duì)應(yīng)碼位上具有不同二進(jìn)制碼元的位數(shù)為兩碼組的距離,稱(chēng)為漢明(Hamming)距
30、,簡(jiǎn)稱(chēng)碼距。在前面3位二進(jìn)制碼組的例子中,當(dāng)8種碼組均為許用碼組時(shí),兩碼組間的最小距離為1,稱(chēng)這種編碼的最小碼距為1,一般記為dmin= l;當(dāng)選4種碼組為許用碼組時(shí),最小碼距dmin = 2;當(dāng)用2種碼組作為許用碼組時(shí),dmin = 3。</p><p> 從圖1-2所示的立方體可以看出,碼距就是從一個(gè)頂點(diǎn)沿立方體各邊移到另一個(gè)頂點(diǎn)所經(jīng)過(guò)的最少邊數(shù)。圖中粗線(xiàn)表示000與111之間的一條最短路徑。很容易得出前例
31、中各種情況下的碼距。</p><p> 根據(jù)以上分析可知,編碼的最小碼距直接關(guān)系到這種碼的檢錯(cuò)和糾錯(cuò)能力,所以最小碼距是差錯(cuò)控制編碼的一個(gè)重要參數(shù)。對(duì)于分組碼一般有以下結(jié)論: </p><p> (1)在一個(gè)碼組內(nèi)檢測(cè)e個(gè)誤碼,要求最小碼距</p><p><b> (1-2)</b></p><p> (2)在
32、一個(gè)碼組內(nèi)糾正t個(gè)誤碼,要求最小碼距</p><p><b> (1-3)</b></p><p> (3)在一個(gè)碼組內(nèi)糾正t個(gè)誤碼,同時(shí)檢測(cè)e(e t)個(gè)誤碼,要求最小碼距</p><p><b> (1-4)</b></p><p> 這些結(jié)論可以用圖1-3所示的幾何圖形簡(jiǎn)單的給予證明。
33、</p><p> 圖1-3 碼距與檢錯(cuò)和糾錯(cuò)能力的關(guān)系</p><p> 圖1-3(a)中C表示某碼組,當(dāng)誤碼不超過(guò)e個(gè)時(shí),該碼組的位置移動(dòng)將不超出以它為圓心以e為半徑的圓。只要其它任何許用碼組都不落入此圓內(nèi),則C發(fā)生e個(gè)誤碼時(shí)就不可能與其它許用碼組混淆。這意味著其它許用碼組必須位于以C為圓心,以e + 1為半徑的圓上或圓外。因此該碼的最小碼距dmin為e + 1。 </p&
34、gt;<p> 圖1-3(b)中C1、C2分別表示任意兩個(gè)許用碼組,當(dāng)各自誤碼不超過(guò) t個(gè)時(shí),發(fā)生誤碼后兩碼組的位置移動(dòng)將各自不超出以C1、C2為圓心,t為半徑的圓。只要這兩個(gè)圓不相交,當(dāng)誤碼小于t個(gè)時(shí),根據(jù)它們落在哪個(gè)圓內(nèi)可以正確地判斷為C1或C2,就是說(shuō)可以糾正錯(cuò)誤。以C1、C2為圓心的兩圓不相交的最近圓心距離為2t + l,即為糾正t個(gè)誤碼的最小碼距。</p><p> 式(1-1)所述情
35、形中糾正t個(gè)誤碼同時(shí)檢測(cè)e個(gè)誤碼,是指當(dāng)誤碼不超過(guò)t個(gè)時(shí),能自動(dòng)糾正誤碼,而當(dāng)誤碼超過(guò)t個(gè)時(shí),則不可能糾正錯(cuò)誤但仍可檢測(cè)e個(gè)誤碼。圖1-3(c)中C1、C2分別為兩個(gè)許用碼組,在最壞情況下C1發(fā)生e個(gè)誤碼而C2發(fā)生 t個(gè)誤碼,為了保證此時(shí)兩碼組仍不發(fā)生混淆,則要求以C1為圓心e為半徑的圓必須與以C2為圓心t為半徑的圓不發(fā)生交疊,即要求最小碼距 dmin >=t+e+1。 </p><p> 可見(jiàn)dmin體
36、現(xiàn)了碼組的糾、檢錯(cuò)能力。碼組間最小距離越大,說(shuō)明碼字間最小差別越大,抗干擾能力就越強(qiáng)。由于編碼系統(tǒng)具有糾錯(cuò)能力,因此在達(dá)到同樣誤碼率要求時(shí),編碼系統(tǒng)會(huì)使所要求的輸入信噪比低于非編碼系統(tǒng),為此引入了編碼增益的概念。其定義為,在給定誤碼率下,非編碼系統(tǒng)與編碼系統(tǒng)之間所需信噪比Eb/N0之差(用dB表示)。 采用不同的編碼會(huì)得到不同的編碼增益,但編碼增益的提高要以增加系統(tǒng)帶寬或復(fù)雜度來(lái)?yè)Q取。(2.1.3)糾錯(cuò)碼實(shí)現(xiàn)糾錯(cuò)碼實(shí)現(xiàn)中最復(fù)雜的部分是譯
37、碼。它是糾錯(cuò)碼能否應(yīng)用的關(guān)鍵。根據(jù)式(1),采用的碼長(zhǎng)n越大,則誤碼率越小。但n越大,編譯碼設(shè)備也越復(fù)雜,且延遲也越大。人們希望找到的譯碼方法是:誤碼率隨碼長(zhǎng)n的增加按指數(shù)規(guī)律下降;譯碼的復(fù)雜程度隨碼長(zhǎng)n的增加接近線(xiàn)性地增加;譯碼的計(jì)算量則與碼長(zhǎng) n基本無(wú)關(guān)??上?,已經(jīng)找到的碼能滿(mǎn)足這樣要求的很少。不過(guò)由于大規(guī)模集成電路的發(fā)展,既使應(yīng)用比較復(fù)雜的但性能良好的碼,成本也并不太高。因此,糾錯(cuò)碼的應(yīng)用越來(lái)越廣泛。 </p>&l
38、t;p> 糾錯(cuò)碼傳輸?shù)亩际菙?shù)字信號(hào)。這既可用硬件實(shí)現(xiàn),也可用軟件實(shí)現(xiàn)。前者主要用各種數(shù)字電路,主要是采用大規(guī)模集成電路。軟件實(shí)現(xiàn)特別適合計(jì)算機(jī)通信網(wǎng)等場(chǎng)合。因?yàn)檫@時(shí)可以直接利用網(wǎng)中的計(jì)算機(jī)進(jìn)行編碼和譯碼,不需要另加專(zhuān)用設(shè)備。硬件實(shí)現(xiàn)的速度較高,比軟件可快幾個(gè)數(shù)量級(jí)。 </p><p> 在傳信率一定的情況下,如果采用糾錯(cuò)碼提高可靠性,要求信道的傳輸率增加,帶寬加大。因此,糾錯(cuò)碼主要用于功率受限制而帶寬較
39、大的信道,如衛(wèi)星、散射等系統(tǒng)中。糾錯(cuò)碼還用在一些可靠性要求較高,但設(shè)備或器件的可靠性較差,而余量較大的場(chǎng)合,如磁帶、磁盤(pán)和半導(dǎo)體存儲(chǔ)器等。 </p><p> 在分組碼的研究中,譜分析的方法受到人們的重視。糾同步錯(cuò)誤碼、算術(shù)碼、不對(duì)稱(chēng)碼、不等錯(cuò)誤糾正碼等,也得到較多的研究.</p><p> 1.2幾種常用的糾錯(cuò)碼</p><p><b> (1)
40、RS編碼</b></p><p> RS碼即里德-所羅門(mén)碼,它是能夠糾正多個(gè)錯(cuò)誤的糾錯(cuò)碼,RS碼為(204,188,t=8),其中t是可抗長(zhǎng)度字節(jié)數(shù),對(duì)應(yīng)的188符號(hào),監(jiān)督段為16字節(jié)(開(kāi)銷(xiāo)字節(jié)段)。實(shí)際中實(shí)施(255,239,t=8)的RS編碼,即在204字節(jié)(包括同步字節(jié))前添加51個(gè)全“0”字節(jié),產(chǎn)生RS碼后丟棄前面51個(gè)空字節(jié),形成截短的(204,188)RS碼。RS的編碼效率是:188/2
41、04。 </p><p><b> (2)卷積碼</b></p><p> 卷積碼非常適用于糾正隨機(jī)錯(cuò)誤,但是,解碼算法本身的特性卻是:如果在解碼過(guò)程中發(fā)生錯(cuò)誤,解碼器可能會(huì)導(dǎo)致突發(fā)性錯(cuò)誤。為此在卷積碼的上部采用RS碼塊, RS碼適用于檢測(cè)和校正那些由解碼器產(chǎn)生的突發(fā)性錯(cuò)誤。所以卷積碼和RS碼結(jié)合在一起可以起到相互補(bǔ)償?shù)淖饔?。卷積碼分為兩種: </p>
42、<p><b> ?、倩揪矸e碼: </b></p><p> 基本卷積碼編碼效率為,η=1/2, 編碼效率較低,優(yōu)點(diǎn)是糾錯(cuò)能力強(qiáng)。 </p><p><b> ?、谑湛s卷積碼: </b></p><p> 如果傳輸信道質(zhì)量較好,為提高編碼效率,可以采樣收縮截短卷積碼。有編碼效率為:η=1/2、2/3、3
43、/4、5/6、7/8這幾種編碼效率的收縮卷積碼。編碼效率高,一定帶寬內(nèi)可傳輸?shù)挠行П忍芈试龃?但糾錯(cuò)能力越減弱。 </p><p><b> (3)Turbo碼</b></p><p> 1993 年誕生的Turbo 碼,單片Turbo 碼的編碼/解碼器,運(yùn)行速率達(dá)40Mb/s。該芯片集成了一個(gè)32×32 交織器,其性能和傳統(tǒng)的RS 外碼和卷積內(nèi)碼的級(jí)聯(lián)
44、一樣好。所以Turbo碼是一種先進(jìn)的信道編碼技術(shù),由于其不需要進(jìn)行兩次編碼,所以其編碼效率比傳統(tǒng)的RS+卷積碼要好。 </p><p><b> (4)交織</b></p><p> 在實(shí)際應(yīng)用中,比特差錯(cuò)經(jīng)常成串發(fā)生,這是由于持續(xù)時(shí)間較長(zhǎng)的衰落谷點(diǎn)會(huì)影響到幾個(gè)連續(xù)的比特,而信道編碼僅在檢測(cè)和校正單個(gè)差錯(cuò)和不太長(zhǎng)的差錯(cuò)串時(shí)才最有效(如RS只能糾正8個(gè)字節(jié)的錯(cuò)誤)。
45、為了糾正這些成串發(fā)生的比特差錯(cuò)及一些突發(fā)錯(cuò)誤,可以運(yùn)用交織技術(shù)來(lái)分散這些誤差,使長(zhǎng)串的比特差錯(cuò)變成短串差錯(cuò),從而可以用前向碼對(duì)其糾錯(cuò),例如:在DVB-C系統(tǒng)中,RS(204,188)的糾錯(cuò)能力是8個(gè)字節(jié),交織深度為12,那么糾可抗長(zhǎng)度為8×12=96個(gè)字節(jié)的突發(fā)錯(cuò)誤。實(shí)現(xiàn)交織和解交織一般使用卷積方式。 </p><p> 交織技術(shù)對(duì)已編碼的信號(hào)按一定規(guī)則重新排列,解交織后突發(fā)性錯(cuò)誤在時(shí)間上被分散,使其
46、類(lèi)似于獨(dú)立發(fā)生的隨機(jī)錯(cuò)誤,從而前向糾錯(cuò)編碼可以有效的進(jìn)行糾錯(cuò),前向糾錯(cuò)碼加交積的作用可以理解為擴(kuò)展了前向糾錯(cuò)的可抗長(zhǎng)度字節(jié)。糾錯(cuò)能力強(qiáng)的編碼一般要求的交織深度相對(duì)較低。糾錯(cuò)能力弱的則要求更深的交織深度。 </p><p> 一般來(lái)說(shuō),對(duì)數(shù)據(jù)進(jìn)行傳輸時(shí),在發(fā)端先對(duì)數(shù)據(jù)進(jìn)行FEC編碼,然后再進(jìn)行交積處理。在收端次序和發(fā)端相反,先做去交積處理完成誤差分散,再FEC解碼實(shí)現(xiàn)數(shù)據(jù)糾錯(cuò)。交積不會(huì)增加信道的數(shù)據(jù)碼元。 &l
47、t;/p><p> (5)偽隨機(jī)序列擾碼</p><p> 進(jìn)行基帶信號(hào)傳輸?shù)娜秉c(diǎn)是其頻譜會(huì)因數(shù)據(jù)出現(xiàn)連“1”和連“0”而包含大的低頻成分,不適應(yīng)信道的傳輸特性,也不利于從中提取出時(shí)鐘信息。解決辦法之一是采用擾碼技術(shù),使信號(hào)受到隨機(jī)化處理,變?yōu)閭坞S機(jī)序列,又稱(chēng)為“數(shù)據(jù)隨機(jī)化”和“能量擴(kuò)散”處理。擾碼不但能改善位定時(shí)的恢復(fù)質(zhì)量,還可以使信號(hào)頻譜平滑,使幀同步和自適應(yīng)同步和自適應(yīng)時(shí)域均衡等系統(tǒng)
48、的性能得到改善。 </p><p> 擾碼雖然“擾亂”了原有數(shù)據(jù)的本來(lái)規(guī)律,但因?yàn)槭侨藶榈摹皵_亂”,在接收端很容易去加擾,恢復(fù)成原數(shù)據(jù)流。 </p><p> 實(shí)現(xiàn)加擾和解碼,需要產(chǎn)生偽隨機(jī)二進(jìn)制序列(PRBS)再與輸入數(shù)據(jù)逐個(gè)比特作運(yùn)算。PRBS也稱(chēng)為m序列,這種m序列與TS的數(shù)據(jù)碼流進(jìn)行模2加運(yùn)算后,數(shù)據(jù)流中的“1”和“0”的連續(xù)游程都很短,且出現(xiàn)的概率基本相同。 </p&g
49、t;<p> 利用偽隨機(jī)序列進(jìn)行擾碼也是實(shí)現(xiàn)數(shù)字信號(hào)高保密性傳輸?shù)闹匾侄沃?。一般將信源產(chǎn)生的二進(jìn)制數(shù)字信息和一個(gè)周期很長(zhǎng)的偽隨即序列模2相加,就可將原信息變成不可理解的另一序列。這種信號(hào)在信道中傳輸自然具有高度保密性。在接收端將接收信號(hào)再加上(模2和)同樣的偽隨機(jī)序列,就恢復(fù)為原來(lái)發(fā)送的信息。</p><p> 2. 卷積碼的基本理論</p><p><b>
50、; 2.1卷積碼介紹</b></p><p> 卷積碼最早于1955年由Elias提出,稍后,1957年Wozencraft提出了一種有效地譯碼方法即序列譯碼。1963年Massey提出了一種性能稍差但是比較實(shí)用的門(mén)限譯碼方法,使得卷積碼開(kāi)始走向?qū)嵱没?。而?967年Viterbi提出了最大似然譯碼算法,它對(duì)存儲(chǔ)級(jí)數(shù)較小的卷積碼很容易實(shí)現(xiàn),被稱(chēng)作Viterbi譯碼算法,廣泛的應(yīng)用于現(xiàn)代通信中。&l
51、t;/p><p> 2.1.1 卷積碼的差錯(cuò)控制原理</p><p> 卷積碼是一種性能優(yōu)越的信道編碼,它的編碼器和解碼器都比較易于實(shí)現(xiàn),同時(shí)還具有較強(qiáng)的糾錯(cuò)能力,這使得它的使用越來(lái)越廣泛。我們?cè)谝恍┵Y料上可以找到關(guān)于分組碼的一些介紹,分組碼的實(shí)現(xiàn)是將編碼信息分組單獨(dú)進(jìn)行編碼,因此無(wú)論是在編碼還是譯碼的過(guò)程中不同碼組之間的碼元無(wú)關(guān)。卷積碼和分組碼的根本區(qū)別在于,它不是把信息序列分組后再進(jìn)行
52、單獨(dú)編碼,而是由連續(xù)輸入的信息序列得到連續(xù)輸出的已編碼序列。即進(jìn)行分組編碼時(shí),其本組中的n-k個(gè)校驗(yàn)元僅與本組的k個(gè)信息元有關(guān),而與其它各組信息無(wú)關(guān);但在卷積碼中,其編碼器將k個(gè)信息碼元編為n個(gè)碼元時(shí),這n個(gè)碼元不僅與當(dāng)前段的k個(gè)信息有關(guān),而且與前面的(N-1)段信息有關(guān)(N為編碼的約束長(zhǎng)度)。 </p><p> 同樣,在卷積碼譯碼過(guò)程中,不僅從此時(shí)刻收到的碼組中提取譯碼信息,而且還要利用
53、以前或以后各時(shí)刻收到的碼組中提取有關(guān)信息。而且卷積碼的糾錯(cuò)能力隨約束長(zhǎng)度的增加而增強(qiáng),差錯(cuò)率則隨著約束長(zhǎng)度增加而呈指數(shù)下降 。卷積碼(n,k,N) 主要用來(lái)糾隨機(jī)錯(cuò)誤,它的碼元與前后碼元有一定的約束關(guān)系,編碼復(fù)雜度可用編碼約束長(zhǎng)度N*n來(lái)表示。一般地,最小距離d表明了卷積碼在連續(xù)N段以?xún)?nèi)的距離特性,該碼可以在N個(gè)連續(xù)碼流內(nèi)糾正(d-1)/2個(gè)錯(cuò)誤。卷積碼的糾錯(cuò)能力不僅與約束長(zhǎng)度有關(guān),還與采用的譯碼方式有關(guān)??傊?,由于n,k較小,且利用了
54、各組之間的相關(guān)性,在同樣的碼率和設(shè)備的復(fù)雜性條件下,無(wú)論理論上還是實(shí)踐上都證明:卷積碼的性能至少不比分組碼差。</p><p> 以二元碼為例,輸入信息序列為u=(u0,u1,…),其多項(xiàng)式表示為u(x)=u0+u1x+…+ulxl+…。編碼器的連接可用多項(xiàng)式表示為g(1,1)(x)=1+x+x2和g(1,2)(x)=1+x2,稱(chēng)為碼的子生成多項(xiàng)式。它們的系數(shù)矢量g(1,1)=(111)和g(1,2)=(101
55、)稱(chēng)作碼的子生成元。以子生成多項(xiàng)式為陣元構(gòu)成的多項(xiàng)式矩陣G(x)=[g(1,1)(x),g(1,2)(x)],稱(chēng)為碼的生成多項(xiàng)式矩陣。由生成元構(gòu)成的半無(wú)限矩陣 稱(chēng)為碼的生成矩陣。其中(11,10,11)是由g(1,1)和g(1,2)交叉連接構(gòu)成。編碼器輸出序列為c=u·G,稱(chēng)為碼序列,其多項(xiàng)式表示為c(x),它可看作是兩個(gè)子碼序列c(1)(x)和c(2)(x)經(jīng)過(guò)合路開(kāi)關(guān)S合成的,其中c(1)(x)=u(x)g(1,1)(x)
56、和c(2)(x)=u(x)g(1,2)(x),它們分別是信息序列和相應(yīng)子生成元的卷積,卷積碼由此得名。 </p><p> 在一般情況下,輸入信息序列經(jīng)過(guò)一個(gè)時(shí)分開(kāi)關(guān)被分成k0個(gè)子序列,分別以u(píng)(x)表示,其中i=1,2,…k0,即u(x)=[u(x),…,u(x)]。編碼器的結(jié)構(gòu)由k0×n0階生成多項(xiàng)式矩陣給定。輸出碼序列由n0個(gè)子序列組成,即c(x)=[c(x),c(x),…,c(x)],且c(x
57、)=u(x)·G(x)。若m是所有子生成多項(xiàng)式g(x)中最高次式的次數(shù),稱(chēng)這種碼為(n0,k0,N)卷積碼。卷積碼中編碼后的n個(gè)碼元不僅與當(dāng)前段的k個(gè)信息有關(guān),而且也與前面(N-1)段的信息有關(guān),編碼過(guò)程中相互關(guān)聯(lián)的碼元為nN個(gè)。因此,這N時(shí)間內(nèi)的碼元數(shù)目nN通常被稱(chēng)為這種碼的約束長(zhǎng)度。卷積碼的糾錯(cuò)能力隨著N的增加而增大,在編碼器復(fù)雜程度相同的情況下,卷段積碼的性能優(yōu)于分組碼。</p><p> 卷積
58、碼也是分組的, 但它的監(jiān)督元不僅與本組的信息元有關(guān), 而且還與前若干組的信息元有關(guān)。卷積碼根據(jù)需要, 有不同的結(jié)構(gòu)及相應(yīng)的糾錯(cuò)能力,但都有類(lèi)似的編碼規(guī)律。值得指出的是一種(2,1,N)卷積碼, 其碼率為1 /2, 它的監(jiān)督位只有1位, 編碼效率較高, 也比較簡(jiǎn)單。如使用較長(zhǎng)的約束長(zhǎng)度, 則既可以糾正突發(fā)差錯(cuò), 也可以糾正隨機(jī)差錯(cuò)。</p><p> 2.2卷積碼編碼原理</p><p>
59、 卷積碼一般表示為(n,k,N)的形式,即將k個(gè)信息比特編碼為n個(gè)比特的碼組,N為編碼約束長(zhǎng)度,說(shuō)明編碼過(guò)程中相互約束的碼段個(gè)數(shù)。卷積碼編碼后的n個(gè)碼元不僅與當(dāng)前組的k個(gè)信息比特有關(guān),還與前N-1個(gè)輸入組的信息比特有關(guān)。編碼過(guò)程中相互關(guān)聯(lián)的碼元有N*n個(gè)。R=k/n是編碼效率。編碼效率和約束長(zhǎng)度是衡量卷積碼的兩個(gè)重要參數(shù)。典型的卷積碼一般選n,k較小,但N值可取較大(>10),以獲得簡(jiǎn)單而高性能的卷積碼。卷積碼的編碼描述方式有很
60、多種:沖激響應(yīng)描述法、生成矩陣描述法、多項(xiàng)式乘積描述法、狀態(tài)圖描述,樹(shù)圖描述,網(wǎng)格圖描述等。</p><p> 2.2.1 卷積碼解析表示法</p><p> 卷積碼的解析表示發(fā)大致可以分為離散卷積法,生成矩陣法,碼多項(xiàng)式法。下面以離散卷積為例進(jìn)行說(shuō)明。卷積碼的編碼器一般比較簡(jiǎn)單,為一個(gè)具有k個(gè)輸入端,n個(gè)輸出端,m級(jí)移位寄存器的有限狀態(tài)有記憶系統(tǒng)。下圖所示為(2,1,7)卷積碼的編碼
61、器。</p><p> 圖2-1 (2,1,7)卷積碼編碼器</p><p> 若輸入序列為u=(u0u1u2u3……),則對(duì)應(yīng)兩個(gè)碼字序列 C1=(ca0ca1ca2ca3……)和C2=(cb0cb1cb2cb3……)相應(yīng)的編碼方程可寫(xiě)為 P1=u?C1,P2=u?C2,P=(P1,P2)?!?”符號(hào)表示卷積運(yùn)算,P1,P2表示編碼器的兩個(gè)沖激響應(yīng),即編碼器的輸出可以由輸入序列和編碼
62、器的兩個(gè)沖擊響應(yīng)卷積而得到,故稱(chēng)為卷積碼。這里的沖激響應(yīng)指:當(dāng)輸入為[1 0 0 0 0 … … ]序列時(shí),所觀察到的兩個(gè)輸出序列值。由于上圖N值為7,故沖激響應(yīng)至多可持續(xù)到第7位,可寫(xiě)為P1=[1 1 1 1 0 0 1],P2=[1 0 1 1 0 1 1]然后將兩個(gè)輸出端的碼字序列合并為一個(gè)碼字序列為C=(ca0cb0ca1cb1ca2cb2……)。若輸入信息序列為[1 1 0 1];則P1=[1 0 0 1 0 1 0 1 0
63、1],P2=[1 1 1 1 1 0 1 1 1 1],C=[1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1]。</p><p> 如圖3-2所示為(2,1,3)卷積碼的編碼器,也是本次課程設(shè)計(jì)所研究的卷積碼編碼器,由于其生成沖激響應(yīng)分別為[1 1 1]和[1 0 1],故被稱(chēng)為(7,5) 碼。 </p><p> 圖2-2 (2,1,3)卷積碼編碼器
64、</p><p> 2.2.2 卷積碼圖形表示法</p><p> 除了用解析法描述卷積碼的編碼外,還可以使用比較形象的圖形法來(lái)表示卷積碼。比較常用的有狀態(tài)圖法,樹(shù)圖法和網(wǎng)格圖法。</p><p><b> 狀態(tài)圖法:</b></p><p> 由于卷積碼編碼器在下一時(shí)刻的輸出取決于編碼器的當(dāng)前狀態(tài)和下一時(shí)刻的輸
65、入,而編碼器當(dāng)前狀態(tài)取決于編碼器當(dāng)前各移位寄存器的存儲(chǔ)內(nèi)容。稱(chēng)編碼器當(dāng)前各移位寄存器存儲(chǔ)內(nèi)容(0或1)為編碼器在該時(shí)刻的狀態(tài)(此狀態(tài)代表記憶以前的輸入信息)。隨著信息序列的不斷輸入,編碼器不斷從一個(gè)狀態(tài)轉(zhuǎn)移到另外一個(gè)狀態(tài),并且輸出相應(yīng)的編碼序列。編碼器的總可能狀態(tài)數(shù)為2mk個(gè)。對(duì)(7,5)碼的編碼器來(lái)說(shuō),n=2,k=1,N=3,m=2。共有四個(gè)可能狀態(tài),其狀態(tài)圖如圖2-3所示:</p><p> 圖2-3 卷積
66、碼狀態(tài)圖</p><p> 圖中四個(gè)方塊表示狀態(tài),狀態(tài)間的連線(xiàn)與箭頭表示轉(zhuǎn)移方向,連線(xiàn)上的數(shù)字表示是狀態(tài)發(fā)生轉(zhuǎn)移的到來(lái)比特,斜杠后的數(shù)字由一個(gè)狀態(tài)到另一個(gè)狀態(tài)轉(zhuǎn)移時(shí)的輸出碼字。如當(dāng)前狀態(tài)為11,輸入信息為0,則轉(zhuǎn)移到01狀態(tài)并輸出01碼字,若輸入信息為1,則依然為11狀態(tài),并輸出10碼字。</p><p><b> 樹(shù)圖法</b></p><p
67、> 描述卷積碼的編碼過(guò)程除了用它的生成矩陣 外,還可以用半無(wú)限碼樹(shù)圖。卷積碼的樹(shù)圖表示是一種形象的表示卷積碼編碼過(guò)程的方法。卷積碼的各種距離度量與樹(shù)圖有密切關(guān)系。</p><p> 以(2,1,3)卷積碼為例,它的生成多項(xiàng)式矩陣和生成矩陣分別為:</p><p><b> (2-1)</b></p><p><b> (
68、2-2)</b></p><p> 若輸入編碼器的信息序列M(D)=(m0,m1,m2…..)=(1 1 0 1 1 …..),則由編碼器輸出碼序列C為C = M =(11,01,01,00,01,01, )=( C0,Cl,C2, C3,…) (2-3)</p><p> 可以把這個(gè)編碼過(guò)程用如圖3-4所示的半無(wú)限碼樹(shù)
69、圖來(lái)說(shuō)明。設(shè)編碼器的初始狀態(tài)為0,碼樹(shù)中每個(gè)節(jié)點(diǎn)的下一級(jí)的上面的分支表示輸入為0,下面的分支表示輸入為l。每個(gè)分支上面的數(shù)字表示對(duì)應(yīng)次分支的輸出。因此輸入不同的信息序列,編碼器就走不同的路徑,輸出不同的碼序列。按照上面的例子,則編碼過(guò)程對(duì)應(yīng)碼樹(shù)中粗線(xiàn)表示的一條路徑。對(duì)該碼序列來(lái)說(shuō),樹(shù)圖上的這條路徑就是它的正確路徑。對(duì)于一般的二進(jìn)制(n,k,N)編碼器來(lái)說(shuō),每次輸入的是k個(gè)信息元,有2k個(gè)可能的信息組,這對(duì)應(yīng)于從碼樹(shù)每一個(gè)節(jié)點(diǎn)上分出的分支
70、樹(shù)有2k條,相應(yīng)于2k 個(gè)不同信息組的輸入,并且每條都有n個(gè)碼元,作為與此相應(yīng)的輸出子碼。</p><p> 由以上討論可知,卷積碼編碼過(guò)程的實(shí)質(zhì),是在輸入信息序列的控制下,編碼器沿碼樹(shù)通過(guò)某一特定路徑的過(guò)程。顯然,譯碼過(guò)程就是根據(jù)接收序列和信道干擾的統(tǒng)計(jì)特性,譯碼器在原碼樹(shù)上力圖恢復(fù)原來(lái)編碼器所走的路徑,即尋找正確路徑的過(guò)程。其過(guò)程如圖2-4所示。</p><p><b>
71、 00</b></p><p> 圖2-4 ( 2,1,3)卷積碼的樹(shù)圖</p><p><b> 網(wǎng)格圖法:</b></p><p> 網(wǎng)格圖可以描述卷積碼的狀態(tài)隨時(shí)間推移而轉(zhuǎn)移的情況。該圖縱坐標(biāo)表示所有狀態(tài),橫坐標(biāo)表示時(shí)間。網(wǎng)格圖在卷積碼的概率譯碼,特別是Viterbi譯碼中非常重要,它綜合了狀態(tài)圖法直觀簡(jiǎn)單和
72、樹(shù)圖法時(shí)序關(guān)系清晰的特點(diǎn)。</p><p><b> 如圖2-5所示</b></p><p> 圖2-5 譯碼器網(wǎng)格圖</p><p> 圖中實(shí)線(xiàn)表示輸入0時(shí)所走分支,虛線(xiàn)表示輸入1時(shí)所走分支,編碼時(shí)只需從起始狀態(tài)開(kāi)始依次選擇路線(xiàn)并讀出輸出即可。假設(shè)從a狀態(tài)開(kāi)始,輸入為[1 0 1 1],則可由圖中讀出輸出為[11 10 10 01]。&
73、lt;/p><p> 2.3 卷積碼譯碼原理</p><p> 2.3.1 卷積碼三種譯碼方式</p><p><b> (1)代數(shù)譯碼 </b></p><p> 代數(shù)譯碼是將卷積碼的一個(gè)編碼約束長(zhǎng)度的碼段看作是[n0(m+1),k0(m+1)]線(xiàn)性分組碼,每次根據(jù)(m+1)分支長(zhǎng)接收數(shù)字,對(duì)相應(yīng)的最早的那個(gè)分支上
74、的信息數(shù)字進(jìn)行估計(jì),然后向前推進(jìn)一個(gè)分支。如果假設(shè)輸入的信息序列為=(10111),相應(yīng)的編碼輸出序列為 c=(11100001100111)。在未超出編碼約束長(zhǎng)度的情況下,可以通過(guò)譯碼時(shí)將接受序列與所有可能的輸出編碼序列進(jìn)行比較,通過(guò)比較可以得到最小距離,進(jìn)而可以得到可能的最大概率。按同樣方法判決,將每一位進(jìn)行比較,進(jìn)行糾錯(cuò)。若此時(shí)接收序列R=(10100001110111),先根據(jù)R的前三個(gè)分支(101000)和碼樹(shù)中前三個(gè)分支長(zhǎng)的
75、所有可能的 8條路徑(000000…)、(000011…)、(001110…)、(001101…)、(111011…)、(111000…)、(110101…)和(110110…)進(jìn)行比較,可知(111001)與接收序列(101000)的距離最小,于是判定第 0分支的信息數(shù)字為 0。然后以R的第 1~3分支數(shù)字(100001)按同樣方法判決,依此類(lèi)推下去,最后得到信息序列的估值為=(10111),遂實(shí)現(xiàn)了糾</p><
76、p><b> (2)維特比譯碼</b></p><p> 維特比譯碼是根據(jù)接收序列在碼的格圖上找出一條與接收序列距離(或其他量度)為最小的一種算法。它和運(yùn)籌學(xué)中求最短路徑的算法相類(lèi)似。若接收序列為R=(10100101100111),譯碼器從某個(gè)狀態(tài),例如從狀態(tài)ɑ出發(fā),每次向右延伸一個(gè)分支(對(duì)于l<L,從每個(gè)節(jié)點(diǎn)出發(fā)都有2種可能的延伸,其中L是信息序列段數(shù),對(duì)l≥L,只有一種可能)
77、,并與接收數(shù)字相應(yīng)分支進(jìn)行比較,計(jì)算它們之間的距離,然后將計(jì)算所得距離加到被延伸路徑的累積距離值中。對(duì)到達(dá)每個(gè)狀態(tài)的各條路徑(有2條)的距離累積值進(jìn)行比較,保留距離值最小的一條路徑,稱(chēng)為幸存路徑(當(dāng)有兩條以上取最小值時(shí),可任取其中之一),譯碼過(guò)程如圖。圖中標(biāo)出到達(dá)各級(jí)節(jié)點(diǎn)的幸存路徑的距離累積值。對(duì)給定 R的估值序列為=(10111)。這種算法所保留的路徑與接收序列之間的似然概率為最大,所以又稱(chēng)為最大似然譯碼。這種譯碼的譯碼約束長(zhǎng)度常為編
78、碼約束長(zhǎng)度的數(shù)倍,因而可以糾正不多于(df/2)個(gè)錯(cuò)誤。 </p><p> 維特比譯碼器的復(fù)雜性隨m呈指數(shù)增大。實(shí)用中m不大于10。它在衛(wèi)星和深空通信中有廣泛的應(yīng)用。在解決碼間串?dāng)_和數(shù)據(jù)壓縮中也可應(yīng)用。 </p><p><b> ?。?)序貫譯碼</b></p><p> 序貫譯碼是根據(jù)接收序列和編碼規(guī)則,在整個(gè)碼樹(shù)中搜索(既可以前進(jìn),
79、也可以后退)出一條與接收序列距離(或其他量度)最小的一種算法。由于它的譯碼器的復(fù)雜性隨m值增大而線(xiàn)性增長(zhǎng),在實(shí)用中可以選用較大的m值(如20~40)以保證更高的可靠性。許多深空和海事通信系統(tǒng)都采用序貫譯碼。</p><p> 2.3.2 Viterbi譯碼原理</p><p> 卷積碼概率譯碼的基本思路是:以接收碼流為基礎(chǔ),逐個(gè)計(jì)算它與其他所有可能出現(xiàn)的、連續(xù)的網(wǎng)格圖路徑的距離,選出其
80、中可能性最大的一條作為譯碼估值輸出。概率最大在大多數(shù)場(chǎng)合可解釋為距離最小,這種最小距離譯碼體現(xiàn)的正是最大似然的準(zhǔn)則。卷積碼的最大似然譯碼與分組碼的最大似然譯碼在原理上是一樣的,但實(shí)現(xiàn)方法上略有不同。主要區(qū)別在于:分組碼是孤立地求解單個(gè)碼組的相似度,而卷積碼是求碼字序列之間的相似度?;诰W(wǎng)格圖搜索的譯碼是實(shí)現(xiàn)最大似然判決的重要方法和途徑。用格圖描述時(shí),由于路徑的匯聚消除了樹(shù)狀圖中的多余度,譯碼過(guò)程中只需考慮整個(gè)路徑集合中那些使似然函數(shù)最大
81、的路徑。如果在某一點(diǎn)上發(fā)現(xiàn)某條路徑已不可能獲得最大對(duì)數(shù)似然函數(shù),就放棄這條路徑,然后在剩下的“幸存”路徑中重新選擇路徑。這樣一直進(jìn)行到最后第L級(jí)(L為發(fā)送序列的長(zhǎng)度)。由于這種方法較早地丟棄了那些不可能的路徑,從而減輕了譯碼的工作量,Viterbi譯碼正是基于這種想法。 </p><p> 對(duì)于(n, k, N)卷積碼,其網(wǎng)格圖中共2kL種狀態(tài)。由網(wǎng)格圖的前N-1條連續(xù)支路構(gòu)成的路徑互不相交,即最初2k_1條路
82、徑各不相同,當(dāng)接收到第N條支路時(shí),每條路徑都有2條支路延伸到第N級(jí)上,而第N級(jí)上的每?jī)蓷l支路又都匯聚在一個(gè)節(jié)點(diǎn)上。在Viterbi譯碼算法中,把匯聚在每個(gè)節(jié)點(diǎn)上的兩條路徑的對(duì)數(shù)似然函數(shù)累加值進(jìn)行比較,然后把具有較大對(duì)數(shù)似然函數(shù)累加值的路徑保存下來(lái),而丟棄另一條路徑,經(jīng)挑選后第N級(jí)只留下2N條幸存路徑。選出的路徑同它們的對(duì)數(shù)似然函數(shù)的累加值將一起被存儲(chǔ)起來(lái)。由于每個(gè)節(jié)點(diǎn)引出兩條支路,因此以后各級(jí)中路徑的延伸都增大一倍,但比較它們的似然函數(shù)
83、累加值后,丟棄一半,結(jié)果留存下來(lái)的路徑總數(shù)保持常數(shù)。由此可見(jiàn),上述譯碼過(guò)程中的基本操作是,“加-比-選”,即每級(jí)求出對(duì)數(shù)似然函數(shù)的累加值,然后兩兩比較后作出選擇。有時(shí)會(huì)出現(xiàn)兩條路徑的對(duì)數(shù)似然函數(shù)累加值相等的情形,在這種情況下可以任意選擇其中一條作為“幸存”路徑。</p><p> 卷積碼的編碼器從全零狀態(tài)出發(fā),最后又回到全零狀態(tài)時(shí)所輸出的碼序列,稱(chēng)為結(jié)尾卷積碼。因此,當(dāng)序列發(fā)送完畢后,要在網(wǎng)格圖的終結(jié)處加上(N
84、-1)個(gè)己知的信息作為結(jié)束信息。在結(jié)束信息到來(lái)時(shí),由于每一狀態(tài)中只有與已知發(fā)送信息相符的那條支路被延伸,因而在每級(jí)比較后,幸存路徑減少一半。因此,在接收到(N-1)個(gè)己知信息后,在整個(gè)網(wǎng)格圖中就只有唯一的一條幸存路徑保留下來(lái),這就是譯碼所得的路徑。也就是說(shuō),在己知接收到的序列的情況下,這條譯碼路徑和發(fā)送序列是最相似的。</p><p> 2.3.3 維特比譯碼算法性能</p><p>
85、 對(duì)于(n,k,N)卷積碼,其編碼存儲(chǔ)度(移位寄存器單元的數(shù)量)為N,幸存路徑有2N條。每條幸存路徑(或信息序列)存儲(chǔ)器單元數(shù)是n*D,其中,n是卷積碼碼組寬度,D是需要存儲(chǔ)的碼組的個(gè)數(shù)。D的取值一般考慮取m的整倍數(shù),稱(chēng)D為幸存路徑長(zhǎng)度。編碼存儲(chǔ)度和幸存路徑長(zhǎng)度的取值問(wèn)題關(guān)系到芯片規(guī)格、傳輸時(shí)延等問(wèn)題。若D很大,則譯碼器的存儲(chǔ)量太大而難以實(shí)用。一般情況下,當(dāng)譯碼進(jìn)行到第5級(jí)(每級(jí)包括m個(gè)時(shí)刻)以后,每個(gè)狀態(tài)幸存路徑的前幾個(gè)分支已基本重合
86、在一起,這就是說(shuō)每個(gè)路徑存儲(chǔ)器不必存儲(chǔ)D個(gè)很大的碼序列。譯碼時(shí),當(dāng)譯碼器接收并處理完第D個(gè)碼組后,譯碼器中的幸存路徑存儲(chǔ)器已全部存滿(mǎn),當(dāng)譯碼器開(kāi)始處理第D+1個(gè)碼組時(shí),他就對(duì)幸存路徑存儲(chǔ)器中的最頂端的碼組做出判決并輸出。</p><p> ?。?)適當(dāng)增加幸存路徑的長(zhǎng)度可以提高譯碼器的糾錯(cuò)能力。</p><p> ?。?)幸存路徑的長(zhǎng)度在增加到一定值時(shí),譯碼器糾錯(cuò)能力趨于穩(wěn)定。當(dāng)N值增加到
87、6以上,誤比特率降低幅度大為減小,曲線(xiàn)有合二為一的趨勢(shì)。因此,可以認(rèn)為幸存路徑長(zhǎng)度D取編碼存儲(chǔ)度的6倍以上就可以取得比較好的譯碼性能。</p><p> (3)選擇合適的延時(shí)。路徑量度(似然度)的累加選取和碼字延時(shí)判決輸出提高了譯碼的準(zhǔn)確性,D 越大越有利于判決的正確性,但是這又和通信的實(shí)時(shí)性背道而馳,一般D 為卷積碼約束長(zhǎng)度N的5~10 倍即可,本文算法D取50。</p><p>
88、(4)留存路徑的更新的描述。每個(gè)狀態(tài)的留存路徑選擇實(shí)際上是從當(dāng)前時(shí)刻往前推的,例如,在時(shí)刻t,又假設(shè)到達(dá)狀態(tài)s2的路徑有兩個(gè),分別為s4 和s5,對(duì)應(yīng)的輸出碼字分別是00 和11,我們分別計(jì)算出兩條路經(jīng)的分支量度BM,并累加它們對(duì)應(yīng)的前狀態(tài)路徑量度PM_l,發(fā)現(xiàn)累加后s5- s2的PM值比s4- s2 的大,所以保留s5 所對(duì)應(yīng)的留存路徑,并更新?tīng)顟B(tài)s2 所對(duì)應(yīng)的留存路徑存儲(chǔ)器。對(duì)每一狀態(tài)都做如此比較,保存大的分支量度BM,然后再累加前
89、一狀態(tài)路徑量度PM_l,最后完成所有狀態(tài)的選擇,比較當(dāng)前所有狀態(tài)的路經(jīng)量度PM,選擇最大路徑,如果延時(shí)超過(guò)D 就判決輸出碼字。顯然此處判決的碼字要延時(shí)D 時(shí)刻才能移位輸出。</p><p> 3. 卷積碼編譯碼及MATLAB仿真</p><p> 在本次課題研究中,我們對(duì)整個(gè)通信過(guò)程進(jìn)行了仿真,其過(guò)程如圖3-1:</p><p> 圖3-1 卷積碼編譯碼流程圖
90、</p><p> 3.1 Matlab概述</p><p> 計(jì)算機(jī)對(duì)科學(xué)技術(shù)的幾乎一切領(lǐng)域產(chǎn)成了極其深遠(yuǎn)的影響。熟練掌握并利用計(jì)算機(jī)進(jìn)行科學(xué)計(jì)算研究及工程應(yīng)用已是廣大科研設(shè)計(jì)人員所必備的基本技能之一。從事科學(xué)研究和工程應(yīng)用時(shí)候所遇到的最大的困擾大抵是我們?cè)谟?jì)算涉及矩陣運(yùn)算或畫(huà)圖時(shí),采用Fortran、C及C++等計(jì)算機(jī)語(yǔ)言進(jìn)行程序設(shè)計(jì)是一項(xiàng)十分麻煩的工作,不僅需要對(duì)所利用的有關(guān)算
91、法有深刻的了解,還需要掌握所用語(yǔ)言的語(yǔ)法及編程技巧。</p><p> Matlab軟件由美國(guó)Math Works 公司于1984 年推出,歷經(jīng)十幾年的發(fā)展和競(jìng)爭(zhēng),現(xiàn)已成為通用科技計(jì)算和圖視交互系統(tǒng)的程序語(yǔ)言,是(IEEE) 國(guó)際公認(rèn)的最優(yōu)秀的科技應(yīng)用軟件之一。它的指令表達(dá)與數(shù)學(xué)、工程中常用的習(xí)慣形式十分相似,從而使許多用C 或Fortran 實(shí)現(xiàn)起來(lái)十分復(fù)雜和費(fèi)時(shí)的問(wèn)題用Matlab就可以輕松地解決。Matl
92、ab的典型應(yīng)用包括:數(shù)學(xué)計(jì)算、算法研究、數(shù)據(jù)分析和計(jì)算結(jié)果可視化、建模與仿真等。</p><p> 3.1.1 Matlab的特點(diǎn)</p><p> Matlab作為一種數(shù)值計(jì)算和與圖形處理工具軟件,其特點(diǎn)是語(yǔ)法結(jié)構(gòu)簡(jiǎn)明、數(shù)值計(jì)算高效、圖形處理完備、易學(xué)易用,它在矩陣代數(shù)數(shù)值計(jì)算、數(shù)字信號(hào)處理、震動(dòng)理論、神經(jīng)網(wǎng)絡(luò)控制、動(dòng)態(tài)仿真等領(lǐng)域都有廣泛的應(yīng)用。與C、C++、Fortran等高級(jí)語(yǔ)
93、言相比,Matlab不但在數(shù)學(xué)語(yǔ)言的表達(dá)與解釋方面表現(xiàn)出人機(jī)交互的高度一致,而且具有優(yōu)秀高技術(shù)計(jì)算環(huán)境所不可缺少的如下特征:</p><p> ?。?)高質(zhì)量、高可靠的數(shù)值計(jì)算能力;</p><p> ?。?)基于向量、數(shù)組和矩陣的高維設(shè)計(jì)語(yǔ)言;</p><p> (3)高級(jí)圖形和可視化數(shù)據(jù)處理的能力;</p><p> (4)廣泛解決各
94、學(xué)科各專(zhuān)業(yè)領(lǐng)域內(nèi)復(fù)雜問(wèn)題的能力;</p><p> ?。?)擁有一個(gè)強(qiáng)大的非線(xiàn)性系統(tǒng)仿真工具箱——Simulink;</p><p> ?。?)支持科學(xué)和工程計(jì)算標(biāo)準(zhǔn)的開(kāi)放式、可交互結(jié)構(gòu);</p><p><b> ?。?)跨平臺(tái)兼容。</b></p><p> 3.1.2 Matlab工具箱和內(nèi)容</p>
95、;<p> 目前Matlab已經(jīng)成為國(guó)際上最流行的軟件之一,它除了傳統(tǒng)的交互式編程外,還提供了豐富可靠的矩陣運(yùn)算。圖形繪制、數(shù)據(jù)處理、圖象處理、方便的Windows編程等便利工具。出現(xiàn)了各種以Matlab為基礎(chǔ)的使用工具箱,廣泛的應(yīng)用于自動(dòng)控制、圖像信號(hào)處理、生物醫(yī)學(xué)工程、語(yǔ)言處理、雷達(dá)工程、信號(hào)分析、震動(dòng)理論、時(shí)序分析與建模、化學(xué)統(tǒng)計(jì)學(xué)、優(yōu)化設(shè)計(jì)等領(lǐng)域,并表現(xiàn)出一般高級(jí)語(yǔ)言難以比擬的優(yōu)勢(shì)。較為常見(jiàn)的工具箱主要包括:控制
96、系統(tǒng)工具箱(Control systems toolbox)、系統(tǒng)識(shí)別工具箱(Systems identification toolbox)、多變量頻率設(shè)計(jì)工具箱(Multivariable frequency design toolbox)、魯棒控制工具箱(Robust control toolbox)、分析與綜合工具箱(analysis and synthesis toolbox)、神經(jīng)網(wǎng)絡(luò)工具箱(Neural network to
97、olbox)、最優(yōu)化工具箱(Optimization toolbox)、信號(hào)處理工具箱(Signal processing toolbox)、模糊推</p><p> 3.2卷積碼編碼及仿真</p><p> 在程序設(shè)計(jì)中,我們沒(méi)有采用MATLAB自帶的編碼函數(shù)而是采用了自己的編碼函數(shù)codec對(duì)(2,1,3)卷積碼編碼,其參數(shù)m為輸入信息序列,g1,g2為兩個(gè)輸出端口的沖激響應(yīng)序列。
98、</p><p><b> 3.2.1編碼程序</b></p><p> function cod=codec(m,g1,g2) %g1,g2為兩輸出端口的沖激響應(yīng)序列。</p><p> m1=conv(m,g1); %端口一輸出</p><p> m2=conv(m,g2); %端口二
99、輸出</p><p> l=length(m1);</p><p> for i=1:l;</p><p> cod([2*i-1])=rem(m1([i]),2); %將端口一編碼輸出賦給cod奇數(shù)位置</p><p> cod([2*i])=rem(m2([i]),2); %將端口二編碼輸出賦給cod偶
100、數(shù)位置</p><p><b> end</b></p><p><b> 試運(yùn)行編碼:</b></p><p><b> clear all</b></p><p> g1=[1 1 1];</p><p> g2=[1 0 1];</
101、p><p> msg=[1 1 0 1];</p><p> cod=codec(msg,g1,g2)</p><p><b> 輸出為:</b></p><p> cod =[110101001011]</p><p> 仿真結(jié)果如下圖3-2。</p><p>
102、圖3-2 (2,1,3)卷積碼編碼</p><p> 3.3 信道傳輸過(guò)程仿真</p><p> 為了方便起見(jiàn),我們采用了二相相移鍵控(BPSK),也就是用二進(jìn)制基帶信號(hào)(0、1)對(duì)載波進(jìn)行二相調(diào)制。BPSK是最簡(jiǎn)單的PSK形式,相移大小為 180°,又可稱(chēng)為2-PSK。當(dāng)基帶信號(hào)為1時(shí)對(duì)應(yīng)相位為π,而當(dāng)基帶信號(hào)為0時(shí),對(duì)應(yīng)的相位為-π。根據(jù)這個(gè)理論,我們對(duì)BPSK的調(diào)制過(guò)程
103、作了模擬仿真,用一個(gè)簡(jiǎn)短的程序?qū)PSK的全過(guò)程進(jìn)行了觀察。程序代碼如下:</p><p> function [bpsk_output]=bpsk_1(g);</p><p> g=[1 1 0 1 0 1 0 0 1 0 1 1]; %卷積碼編碼輸出信號(hào)</p><p> cp=[];bit=[];</p><p> for
104、 n=1:length(g);</p><p> if g(n)==0;</p><p> die=-ones(1,100); %使得信號(hào)在坐標(biāo)為0到100皆為-1,生成圖線(xiàn)</p><p> se=zeros(1,100);</p><p> else g(n)==1;</p><p> d
105、ie=ones(1,100);</p><p> se=ones(1,100);</p><p><b> end</b></p><p> cp=[cp die]; </p><p> bit=[bit se];</p><p><b> end</b><
106、/p><p> snr_db=35; %可以調(diào)整變化的信噪比同時(shí)考慮信道中可能存在的噪聲</p><p> noise=randn(1,length(bpsk)); %隨機(jī)噪聲</p><p> sigma=sqrt(5)*10^(-(snr_db)/20);</p><p> recv=bpsk+3
107、*sigma*noise; %產(chǎn)生的噪聲疊加在bpsk上</p><p> 仿真結(jié)果如圖3-3所示。在matlab運(yùn)行時(shí),我們對(duì)信道高斯白噪聲進(jìn)行模擬,通過(guò)調(diào)節(jié)信噪比,我們可以清晰地觀察到噪聲對(duì)BPSK調(diào)制的影響,信噪比越大,傳輸?shù)男盘?hào)所受干擾越小,傳輸越準(zhǔn)確。</p><p> 圖3-3 模擬信道傳輸</p><p> 3.4維特比譯碼程序及仿真
108、 </p><p> 信號(hào)通過(guò)bpsk調(diào)制后在信道中傳輸,到達(dá)接收端時(shí),先要進(jìn)行解調(diào),判決代碼為</p><p> for j=1:length(recv); </p><p> if recv(j)>0; </p><p> recv(j)=1; </p><p><b> else <
109、;/b></p><p> recv(j)=0; </p><p><b> end </b></p><p><b> end</b></p><p> 3.4.1 維特比譯碼算法解析</p><p> Viterbi算法是通過(guò)加-比較-選擇來(lái)實(shí)現(xiàn)的,狀態(tài)量
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 卷積碼編譯碼算法研究及其FPGA實(shí)現(xiàn).pdf
- matlab實(shí)現(xiàn)turbo編譯碼畢業(yè)論文
- 量子卷積碼的構(gòu)造及其編譯碼方法研究.pdf
- 卷積碼編碼器及viterbi譯碼器的設(shè)計(jì)-畢業(yè)論文
- 卷積碼的譯碼研究及DSP實(shí)現(xiàn).pdf
- 卷積碼的譯碼算法研究.pdf
- 高效LDPC碼及級(jí)聯(lián)LDPC-卷積碼編譯碼的性能研究.pdf
- 卷積Turbo碼編譯碼的DSP實(shí)現(xiàn).pdf
- 卷積LDPC碼編譯碼研究.pdf
- 卷積碼及其Viterbi譯碼的FPGA設(shè)計(jì)與實(shí)現(xiàn).pdf
- 卷積碼和Turbo碼的聯(lián)合信源信道譯碼.pdf
- 畢業(yè)論文_基于vhdl的卷積碼器的設(shè)計(jì)
- 基于FPGA的OFDM基帶系統(tǒng)中卷積碼編譯碼器的研究與實(shí)現(xiàn).pdf
- 卷積碼Viterbi譯碼器的設(shè)計(jì)及其FPGA實(shí)現(xiàn).pdf
- 卷積Turbo碼編譯碼器FPGA實(shí)現(xiàn)的研究.pdf
- 畢業(yè)設(shè)計(jì)---基于matlab的卷積碼的分析與應(yīng)用
- 基于matlab的tcm編譯碼器的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 本科畢業(yè)論文ldpc碼的編譯碼算法研究
- 卷積碼編碼與維特比譯碼加速器設(shè)計(jì).pdf
- 卷積碼在CDMA2000中的應(yīng)用及其譯碼器FPGA實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論