




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
./WORD格式可編輯本科生畢業(yè)論文〔設(shè)計(jì)題目:MATLAB實(shí)現(xiàn)卷積碼編譯碼專業(yè)代碼:作者姓名:學(xué)號(hào):?jiǎn)挝唬褐笇?dǎo)教師:年月日.目錄前言11.糾錯(cuò)碼基本理論21.1糾錯(cuò)碼基本理論2糾錯(cuò)碼概念2基本原理和性能參數(shù)21.2幾種常用的糾錯(cuò)碼62.卷積碼的基本理論82.1卷積碼介紹82.1.1卷積碼的差錯(cuò)控制原理82.2卷積碼編碼原理102.2.1卷積碼解析表示法102.2.2卷積碼圖形表示法112.3卷積碼譯碼原理152.3.1卷積碼三種譯碼方式152.3.2Viterbi譯碼原理163.卷積碼編譯碼及MATLAB仿真183.1Matlab概述183.1.1Matlab的特點(diǎn)193.1.2Matlab工具箱和內(nèi)容193.2卷積碼編碼及仿真20編碼程序203.3信道傳輸過程仿真213.4維特比譯碼程序及仿真223.4.1維特比譯碼算法解析233.4.2Viterbi譯碼程序253.4.3viterbi譯碼matlab仿真28信噪比對(duì)卷積碼譯碼性能的影響28碼率對(duì)卷積碼譯碼性能的影響303.4.6約束長(zhǎng)度對(duì)卷積碼誤碼性能的影響31回溯長(zhǎng)度對(duì)卷積碼誤碼性能的影響323.4.8判決方式對(duì)卷積碼誤碼性能的影響324.結(jié)論及展望344.1結(jié)論344.2展望355.結(jié)束語36參考文獻(xiàn)37致謝38附錄39摘要在數(shù)字通信系統(tǒng)中,通常采用差錯(cuò)控制編碼來提高系統(tǒng)的可靠性。自P.Elias首次提出卷積碼編碼以來,這一編碼技術(shù)至今仍顯示出強(qiáng)大的生命力。目前,卷積碼已廣泛應(yīng)用在無線通信標(biāo)準(zhǔn)中,如GSM,CDMA2000和IS-95等無線通信標(biāo)準(zhǔn)中。本文簡(jiǎn)單介紹了糾錯(cuò)碼的基本原理,論述了卷積碼編譯碼原理和算法,并通過matlab仿真對(duì)卷積碼性能進(jìn)行研究,重點(diǎn)比較分析了不同碼率、不同約束長(zhǎng)度、不同回溯長(zhǎng)度以及不同譯碼判決方式對(duì)Viterbi譯碼性能的影響,并得出相關(guān)結(jié)論。關(guān)鍵詞:卷積碼,Viterbi,Matlab,誤碼率,數(shù)字通信系統(tǒng)AbstractIndigitalcommunicationsystems,errorcontrolcodingisusuallyusedtoimprovesystemreliability.SinceP.Eliasputforwardtheconvolutionalcodingthefirsttime,thecodingisstillshowingstrongvitality.,hasbecomewidelyusedinsatellitecommunications,wirelesscommunicationsandmanyothercommunicationsystemsasakindofchannelcodingmethod.suchasGSM,CDMA2000andhasbeenawirelesscommunicationstandardsofIS-95.Thisarticleintroducesthebasicprinciplesoferror-correctingcodes,mainlyreasearchtheprincipleoftheconvolutionalcodeencodinganddecodingandthealgorithms.Throughthematlabsimulation,westudytheperformanceofconvolutionalcode,especillytheperformanceoftheviterbidecodingwithdifferentbitrates,differentConstraintlength,differenttracebackdeptheanddifferentdecisiontypes,compareandmakeconclusions.Keywords:convolutionalcodes,Viterbi,Matlab,biterrorrate,thedigitalcommunicationsystem...MATLAB實(shí)現(xiàn)卷積碼編譯碼前言信道編碼是數(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的編碼通信系統(tǒng)達(dá)到無誤碼傳輸狀態(tài)所必須的最小信噪比的理論極限。這個(gè)理論極限通常稱為香農(nóng)限,它說明對(duì)一個(gè)碼率為R的編碼通信系統(tǒng),只有當(dāng)SNR超過這個(gè)極限值時(shí)才能獲得無誤碼傳輸。只要SNR高于這個(gè)極限值,香農(nóng)的編碼定理保證了能夠獲得無誤碼傳輸?shù)摹部赡芟喈?dāng)復(fù)雜編碼通信系統(tǒng)的存在性。另外,香農(nóng)證明了在采用無限長(zhǎng)的隨機(jī)編碼時(shí),數(shù)據(jù)可以以接近信道容量的速率幾乎無誤碼的傳輸,從而為信道編碼的研究奠定了基礎(chǔ)。本文主要介紹了信道編碼的基本理論,著重研究了卷積碼的編碼方法和viterbi譯碼,介紹了MATLAB的使用方法,并編寫卷積碼的編碼和解碼程序,通過MATLAB仿真軟件對(duì)卷積碼編解碼進(jìn)行仿真。重點(diǎn)對(duì)viterbi譯碼進(jìn)行了研究,該算法就是利用卷積碼編碼器的格圖來計(jì)算路徑度量,選擇從起始時(shí)刻到終止時(shí)刻的惟一幸存路徑作為最大似然路徑,沿著最大似然路徑回溯到開始時(shí)刻,所走過的路徑對(duì)應(yīng)的編碼輸出就是最大似然譯碼輸出序列。它是一種最大似然譯碼方法,當(dāng)編碼約束長(zhǎng)度不大、或者誤碼率要求不是很高的情況下,Viterbi譯碼器設(shè)備比較簡(jiǎn)單,計(jì)算速度快,因而Viterbi譯碼器被廣泛應(yīng)用于各種領(lǐng)域。1.糾錯(cuò)碼基本理論1.1糾錯(cuò)碼基本理論1.1.1糾錯(cuò)碼概念糾錯(cuò)碼<errorcorrectingcode>,在傳輸過程中發(fā)生錯(cuò)誤后能在收端自行發(fā)現(xiàn)或糾正的碼。僅用來發(fā)現(xiàn)錯(cuò)誤的碼一般常稱為檢錯(cuò)碼。為使一種碼具有檢錯(cuò)或糾錯(cuò)能力,須對(duì)原碼字增加多余的碼元,以擴(kuò)大碼字之間的差別,即把原碼字按某種規(guī)則變成有一定剩余度〔見信源編碼的碼字,并使每個(gè)碼字的碼之間有一定的關(guān)系。關(guān)系的建立稱為編碼。碼字到達(dá)收端后,可以根據(jù)編碼規(guī)則是否滿足以判定有無錯(cuò)誤。當(dāng)不能滿足時(shí),按一定規(guī)則確定錯(cuò)誤所在位置并予以糾正。糾錯(cuò)并恢復(fù)原碼字的過程稱為譯碼。檢錯(cuò)碼與其他手段結(jié)合使用,可以糾錯(cuò)。1.1.2基本原理和性能參數(shù)糾錯(cuò)碼編碼的基本思想是在被傳輸?shù)男畔⒋a元中附加一些監(jiān)督碼元,并且使它們之間確定某一種關(guān)系,根據(jù)傳輸過程中這種關(guān)系是否被破壞來發(fā)現(xiàn)或糾正錯(cuò)誤??梢娺@種差錯(cuò)控制能力是用增加信息量的冗余度來換取的。設(shè)編碼后的碼組長(zhǎng)度、碼組中所含信息碼元以及監(jiān)督碼元的個(gè)數(shù)分別為n、k和r,三者間滿足n=k+r,定義編碼效率為R=k/n=1-r/n??梢姶a組長(zhǎng)度一定時(shí),所加入的監(jiān)督碼元個(gè)數(shù)越多,編碼效率越低。香農(nóng)的信道編碼定理指出:對(duì)于一個(gè)給定的有擾信道,若信道容量為C,只要發(fā)送端以低于C的速率R發(fā)送信息,其中R為編碼器的輸入二進(jìn)制碼元速率,則一定存在一種編碼方法,使編碼錯(cuò)誤概率P隨著碼長(zhǎng)n的增加,按指數(shù)下降到任意小的值??梢员硎緸镼UOTE<1-1>其中E<R>稱為誤差指數(shù),它與R和C的關(guān)系如圖1-1所示。圖1-1誤差指數(shù)曲線由定理有如下結(jié)論:<1>.在碼長(zhǎng)及發(fā)送信息速率一定的情況下,為減小P可以增大信道容量。由圖2-1可知,E<R>隨信道容量的增加而增大。由式<1-1>可知,錯(cuò)誤概率隨E<R>的增大而指數(shù)下降。<2>.在信道容量及發(fā)送信息速率一定的條件下,增加碼長(zhǎng),可以使錯(cuò)誤概率指數(shù)下降。對(duì)于實(shí)際應(yīng)用來說,此時(shí)的設(shè)備復(fù)雜性和譯碼延時(shí)也隨之增加。香農(nóng)的信道編碼定理為信道編碼奠定了理論基礎(chǔ),雖然定理本身并沒有給出具體的差錯(cuò)控制編碼方法和糾錯(cuò)碼的結(jié)構(gòu),但它從理論上為信道編碼的發(fā)展指出了努力方向。我們用3位二進(jìn)制碼組來說明檢錯(cuò)糾錯(cuò)的基本原理。3位二進(jìn)制碼元共有8種可能的組合:000、001、010、011、100、101、110、111。如果這8種碼組都可傳遞消息,若在傳輸過程中發(fā)生一個(gè)誤碼,則一種碼組會(huì)錯(cuò)誤地變成另一種碼組。由于每一種碼組都可能出現(xiàn),沒有多余的信息量,因此接收端不可能發(fā)現(xiàn)錯(cuò)誤,認(rèn)為發(fā)送的就是另一種碼組。如果選其中000、011、101、110來傳送消息,這相當(dāng)于只傳遞00、01、10、11四種信息,而第3位是附加的。這位附加的監(jiān)督碼元與前面兩位碼元一起,保證碼組中"1"碼的個(gè)數(shù)為偶數(shù)。這4種碼組稱為許用碼組。另外4種碼組不滿足這種校驗(yàn)關(guān)系,稱為禁用碼組,它們?cè)诰幋a后的發(fā)送碼元中不會(huì)出現(xiàn)。接收時(shí)一旦發(fā)現(xiàn)有禁用碼組,就表明傳輸過程中發(fā)生了錯(cuò)誤。用這種簡(jiǎn)單的校驗(yàn)關(guān)系可以發(fā)現(xiàn)1個(gè)或3個(gè)錯(cuò)誤,但不能糾正錯(cuò)誤。因?yàn)楫?dāng)接收到的碼組為禁用碼組時(shí),比如為010,無法判斷發(fā)送的是哪個(gè)碼組。雖然原發(fā)送碼組為101的可能性很小<因?yàn)?個(gè)誤碼的概率一般很小>,但不能絕對(duì)排除,即使傳輸過程中只發(fā)生一個(gè)誤碼,也有三種可能的發(fā)送碼組即000、011和110。假如我們進(jìn)一步將許用碼組限制為二種即000和111,顯然這樣可以發(fā)現(xiàn)所有2位以下的誤碼,若用來糾錯(cuò),可以用最大似然準(zhǔn)則糾正1位錯(cuò)誤??梢杂靡粋€(gè)三維立方體來表示上述3位二進(jìn)制碼組的例子,如圖1-2所示。圖中立方體各頂點(diǎn)分別表示8位碼組,3位碼元依次表示x、y、z軸的坐標(biāo)。zzyx<0,0,1><0,1,1><0,0,0><1,1,1><0,1,0><1,1,0><1,0,0><1,0,1>圖1-2碼距的幾何解釋這里定義碼組中非零碼元的數(shù)目為碼組的重量,簡(jiǎn)稱碼重。比如100碼組的碼重為1,101碼組的碼重為2。定義兩個(gè)碼組中對(duì)應(yīng)碼位上具有不同二進(jìn)制碼元的位數(shù)為兩碼組的距離,稱為漢明<Hamming>距,簡(jiǎn)稱碼距。在前面3位二進(jìn)制碼組的例子中,當(dāng)8種碼組均為許用碼組時(shí),兩碼組間的最小距離為1,稱這種編碼的最小碼距為1,一般記為dmin=l;當(dāng)選4種碼組為許用碼組時(shí),最小碼距dmin=2;當(dāng)用2種碼組作為許用碼組時(shí),dmin=3。從圖1-2所示的立方體可以看出,碼距就是從一個(gè)頂點(diǎn)沿立方體各邊移到另一個(gè)頂點(diǎn)所經(jīng)過的最少邊數(shù)。圖中粗線表示000與111之間的一條最短路徑。很容易得出前例中各種情況下的碼距。根據(jù)以上分析可知,編碼的最小碼距直接關(guān)系到這種碼的檢錯(cuò)和糾錯(cuò)能力,所以最小碼距是差錯(cuò)控制編碼的一個(gè)重要參數(shù)。對(duì)于分組碼一般有以下結(jié)論:<1>在一個(gè)碼組內(nèi)檢測(cè)e個(gè)誤碼,要求最小碼距<1-2><2>在一個(gè)碼組內(nèi)糾正t個(gè)誤碼,要求最小碼距QUOTE<1-3><3>在一個(gè)碼組內(nèi)糾正t個(gè)誤碼,同時(shí)檢測(cè)e<eQUOTEt>個(gè)誤碼,要求最小碼距<1-4>這些結(jié)論可以用圖1-3所示的幾何圖形簡(jiǎn)單的給予證明。圖1-3碼距與檢錯(cuò)和糾錯(cuò)能力的關(guān)系圖1-3<a>中C表示某碼組,當(dāng)誤碼不超過e個(gè)時(shí),該碼組的位置移動(dòng)將不超出以它為圓心以e為半徑的圓。只要其它任何許用碼組都不落入此圓內(nèi),則C發(fā)生e個(gè)誤碼時(shí)就不可能與其它許用碼組混淆。這意味著其它許用碼組必須位于以C為圓心,以e+1為半徑的圓上或圓外。因此該碼的最小碼距dmin為e+1。圖1-3<b>中C1、C2分別表示任意兩個(gè)許用碼組,當(dāng)各自誤碼不超過t個(gè)時(shí),發(fā)生誤碼后兩碼組的位置移動(dòng)將各自不超出以C1、C2為圓心,t為半徑的圓。只要這兩個(gè)圓不相交,當(dāng)誤碼小于t個(gè)時(shí),根據(jù)它們落在哪個(gè)圓內(nèi)可以正確地判斷為C1或C2,就是說可以糾正錯(cuò)誤。以C1、C2為圓心的兩圓不相交的最近圓心距離為2t+l,即為糾正t個(gè)誤碼的最小碼距。式<1-1>所述情形中糾正t個(gè)誤碼同時(shí)檢測(cè)e個(gè)誤碼,是指當(dāng)誤碼不超過t個(gè)時(shí),能自動(dòng)糾正誤碼,而當(dāng)誤碼超過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??梢奷min體現(xiàn)了碼組的糾、檢錯(cuò)能力。碼組間最小距離越大,說明碼字間最小差別越大,抗干擾能力就越強(qiáng)。由于編碼系統(tǒng)具有糾錯(cuò)能力,因此在達(dá)到同樣誤碼率要求時(shí),編碼系統(tǒng)會(huì)使所要求的輸入信噪比低于非編碼系統(tǒng),為此引入了編碼增益的概念。其定義為,在給定誤碼率下,非編碼系統(tǒng)與編碼系統(tǒng)之間所需信噪比Eb/N0之差<用dB表示>。采用不同的編碼會(huì)得到不同的編碼增益,但編碼增益的提高要以增加系統(tǒng)帶寬或復(fù)雜度來換取。<2.1.3>糾錯(cuò)碼實(shí)現(xiàn)糾錯(cuò)碼實(shí)現(xiàn)中最復(fù)雜的部分是譯碼。它是糾錯(cuò)碼能否應(yīng)用的關(guān)鍵。根據(jù)式<1>,采用的碼長(zhǎng)n越大,則誤碼率越小。但n越大,編譯碼設(shè)備也越復(fù)雜,且延遲也越大。人們希望找到的譯碼方法是:誤碼率隨碼長(zhǎng)n的增加按指數(shù)規(guī)律下降;譯碼的復(fù)雜程度隨碼長(zhǎng)n的增加接近線性地增加;譯碼的計(jì)算量則與碼長(zhǎng)n基本無關(guān)??上?已經(jīng)找到的碼能滿足這樣要求的很少。不過由于大規(guī)模集成電路的發(fā)展,既使應(yīng)用比較復(fù)雜的但性能良好的碼,成本也并不太高。因此,糾錯(cuò)碼的應(yīng)用越來越廣泛。糾錯(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)行編碼和譯碼,不需要另加專用設(shè)備。硬件實(shí)現(xiàn)的速度較高,比軟件可快幾個(gè)數(shù)量級(jí)。在傳信率一定的情況下,如果采用糾錯(cuò)碼提高可靠性,要求信道的傳輸率增加,帶寬加大。因此,糾錯(cuò)碼主要用于功率受限制而帶寬較大的信道,如衛(wèi)星、散射等系統(tǒng)中。糾錯(cuò)碼還用在一些可靠性要求較高,但設(shè)備或器件的可靠性較差,而余量較大的場(chǎng)合,如磁帶、磁盤和半導(dǎo)體存儲(chǔ)器等。在分組碼的研究中,譜分析的方法受到人們的重視。糾同步錯(cuò)誤碼、算術(shù)碼、不對(duì)稱碼、不等錯(cuò)誤糾正碼等,也得到較多的研究.1.2幾種常用的糾錯(cuò)碼<1>RS編碼RS碼即里德-所羅門碼,它是能夠糾正多個(gè)錯(cuò)誤的糾錯(cuò)碼,RS碼為〔204,188,t=8,其中t是可抗長(zhǎng)度字節(jié)數(shù),對(duì)應(yīng)的188符號(hào),監(jiān)督段為16字節(jié)<開銷字節(jié)段。實(shí)際中實(shí)施〔255,239,t=8的RS編碼,即在204字節(jié)〔包括同步字節(jié)前添加51個(gè)全"0"字節(jié),產(chǎn)生RS碼后丟棄前面51個(gè)空字節(jié),形成截短的〔204,188RS碼。RS的編碼效率是:188/204。<2>卷積碼卷積碼非常適用于糾正隨機(jī)錯(cuò)誤,但是,解碼算法本身的特性卻是:如果在解碼過程中發(fā)生錯(cuò)誤,解碼器可能會(huì)導(dǎo)致突發(fā)性錯(cuò)誤。為此在卷積碼的上部采用RS碼塊,RS碼適用于檢測(cè)和校正那些由解碼器產(chǎn)生的突發(fā)性錯(cuò)誤。所以卷積碼和RS碼結(jié)合在一起可以起到相互補(bǔ)償?shù)淖饔谩>矸e碼分為兩種:①基本卷積碼:基本卷積碼編碼效率為,η=1/2,編碼效率較低,優(yōu)點(diǎn)是糾錯(cuò)能力強(qiáng)。②收縮卷積碼:如果傳輸信道質(zhì)量較好,為提高編碼效率,可以采樣收縮截短卷積碼。有編碼效率為:η=1/2、2/3、3/4、5/6、7/8這幾種編碼效率的收縮卷積碼。編碼效率高,一定帶寬內(nèi)可傳輸?shù)挠行П忍芈试龃?但糾錯(cuò)能力越減弱。<3>Turbo碼1993年誕生的Turbo碼,單片Turbo碼的編碼/解碼器,運(yùn)行速率達(dá)40Mb/s。該芯片集成了一個(gè)32×32交織器,其性能和傳統(tǒng)的RS外碼和卷積內(nèi)碼的級(jí)聯(lián)一樣好。所以Turbo碼是一種先進(jìn)的信道編碼技術(shù),由于其不需要進(jìn)行兩次編碼,所以其編碼效率比傳統(tǒng)的RS+卷積碼要好。<4>交織在實(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ò)誤。為了糾正這些成串發(fā)生的比特差錯(cuò)及一些突發(fā)錯(cuò)誤,可以運(yùn)用交織技術(shù)來分散這些誤差,使長(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)交織和解交織一般使用卷積方式。交織技術(shù)對(duì)已編碼的信號(hào)按一定規(guī)則重新排列,解交織后突發(fā)性錯(cuò)誤在時(shí)間上被分散,使其類似于獨(dú)立發(fā)生的隨機(jī)錯(cuò)誤,從而前向糾錯(cuò)編碼可以有效的進(jìn)行糾錯(cuò),前向糾錯(cuò)碼加交積的作用可以理解為擴(kuò)展了前向糾錯(cuò)的可抗長(zhǎng)度字節(jié)。糾錯(cuò)能力強(qiáng)的編碼一般要求的交織深度相對(duì)較低。糾錯(cuò)能力弱的則要求更深的交織深度。一般來說,對(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ù)碼元。<5>偽隨機(jī)序列擾碼進(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ī)序列,又稱為"數(shù)據(jù)隨機(jī)化"和"能量擴(kuò)散"處理。擾碼不但能改善位定時(shí)的恢復(fù)質(zhì)量,還可以使信號(hào)頻譜平滑,使幀同步和自適應(yīng)同步和自適應(yīng)時(shí)域均衡等系統(tǒng)的性能得到改善。擾碼雖然"擾亂"了原有數(shù)據(jù)的本來規(guī)律,但因?yàn)槭侨藶榈?擾亂",在接收端很容易去加擾,恢復(fù)成原數(shù)據(jù)流。實(shí)現(xiàn)加擾和解碼,需要產(chǎn)生偽隨機(jī)二進(jìn)制序列〔PRBS再與輸入數(shù)據(jù)逐個(gè)比特作運(yùn)算。PRBS也稱為m序列,這種m序列與TS的數(shù)據(jù)碼流進(jìn)行模2加運(yùn)算后,數(shù)據(jù)流中的"1"和"0"的連續(xù)游程都很短,且出現(xiàn)的概率基本相同。利用偽隨機(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ù)為原來發(fā)送的信息。2.卷積碼的基本理論2.1卷積碼介紹卷積碼最早于1955年由Elias提出,稍后,1957年Wozencraft提出了一種有效地譯碼方法即序列譯碼。1963年Massey提出了一種性能稍差但是比較實(shí)用的門限譯碼方法,使得卷積碼開始走向?qū)嵱没6?967年Viterbi提出了最大似然譯碼算法,它對(duì)存儲(chǔ)級(jí)數(shù)較小的卷積碼很容易實(shí)現(xiàn),被稱作Viterbi譯碼算法,廣泛的應(yīng)用于現(xiàn)代通信中。2.1.1卷積碼的差錯(cuò)控制原理卷積碼是一種性能優(yōu)越的信道編碼,它的編碼器和解碼器都比較易于實(shí)現(xiàn),同時(shí)還具有較強(qiáng)的糾錯(cuò)能力,這使得它的使用越來越廣泛。我們?cè)谝恍┵Y料上可以找到關(guān)于分組碼的一些介紹,分組碼的實(shí)現(xiàn)是將編碼信息分組單獨(dú)進(jìn)行編碼,因此無論是在編碼還是譯碼的過程中不同碼組之間的碼元無關(guān)。卷積碼和分組碼的根本區(qū)別在于,它不是把信息序列分組后再進(jìn)行單獨(dú)編碼,而是由連續(xù)輸入的信息序列得到連續(xù)輸出的已編碼序列。即進(jìn)行分組編碼時(shí),其本組中的n-k個(gè)校驗(yàn)元僅與本組的k個(gè)信息元有關(guān),而與其它各組信息無關(guān);但在卷積碼中,其編碼器將k個(gè)信息碼元編為n個(gè)碼元時(shí),這n個(gè)碼元不僅與當(dāng)前段的k個(gè)信息有關(guān),而且與前面的〔N-1段信息有關(guān)〔N為編碼的約束長(zhǎng)度。同樣,在卷積碼譯碼過程中,不僅從此時(shí)刻收到的碼組中提取譯碼信息,而且還要利用以前或以后各時(shí)刻收到的碼組中提取有關(guān)信息。而且卷積碼的糾錯(cuò)能力隨約束長(zhǎng)度的增加而增強(qiáng),差錯(cuò)率則隨著約束長(zhǎng)度增加而呈指數(shù)下降。卷積碼<n,k,N>主要用來糾隨機(jī)錯(cuò)誤,它的碼元與前后碼元有一定的約束關(guān)系,編碼復(fù)雜度可用編碼約束長(zhǎng)度N*n來表示。一般地,最小距離d表明了卷積碼在連續(xù)N段以內(nèi)的距離特性,該碼可以在N個(gè)連續(xù)碼流內(nèi)糾正<d-1>/2個(gè)錯(cuò)誤。卷積碼的糾錯(cuò)能力不僅與約束長(zhǎng)度有關(guān),還與采用的譯碼方式有關(guān)??傊?由于n,k較小,且利用了各組之間的相關(guān)性,在同樣的碼率和設(shè)備的復(fù)雜性條件下,無論理論上還是實(shí)踐上都證明:卷積碼的性能至少不比分組碼差。以二元碼為例,輸入信息序列為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,稱為碼的子生成多項(xiàng)式。它們的系數(shù)矢量g<1,1>=<111>和g<1,2>=<101>稱作碼的子生成元。以子生成多項(xiàng)式為陣元構(gòu)成的多項(xiàng)式矩陣G<x>=[g<1,1><x>,g<1,2><x>],稱為碼的生成多項(xiàng)式矩陣。由生成元構(gòu)成的半無限矩陣稱為碼的生成矩陣。其中<11,10,11>是由g<1,1>和g<1,2>交叉連接構(gòu)成。編碼器輸出序列為c=u·G,稱為碼序列,其多項(xiàng)式表示為c<x>,它可看作是兩個(gè)子碼序列c<1><x>和c<2><x>經(jīng)過合路開關(guān)S合成的,其中c<1><x>=u<x>g<1,1><x>和c<2><x>=u<x>g<1,2><x>,它們分別是信息序列和相應(yīng)子生成元的卷積,卷積碼由此得名。在一般情況下,輸入信息序列經(jīng)過一個(gè)時(shí)分開關(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>=u<x>·G<x>。若m是所有子生成多項(xiàng)式g<x>中最高次式的次數(shù),稱這種碼為<n0,k0,N>卷積碼。卷積碼中編碼后的n個(gè)碼元不僅與當(dāng)前段的k個(gè)信息有關(guān),而且也與前面〔N-1段的信息有關(guān),編碼過程中相互關(guān)聯(lián)的碼元為nN個(gè)。因此,這N時(shí)間內(nèi)的碼元數(shù)目nN通常被稱為這種碼的約束長(zhǎng)度。卷積碼的糾錯(cuò)能力隨著N的增加而增大,在編碼器復(fù)雜程度相同的情況下,卷段積碼的性能優(yōu)于分組碼。卷積碼也是分組的,但它的監(jiān)督元不僅與本組的信息元有關(guān),而且還與前若干組的信息元有關(guān)。卷積碼根據(jù)需要,有不同的結(jié)構(gòu)及相應(yīng)的糾錯(cuò)能力,但都有類似的編碼規(guī)律。值得指出的是一種<2,1,N>卷積碼,其碼率為1/2,它的監(jiān)督位只有1位,編碼效率較高,也比較簡(jiǎn)單。如使用較長(zhǎng)的約束長(zhǎng)度,則既可以糾正突發(fā)差錯(cuò),也可以糾正隨機(jī)差錯(cuò)。2.2卷積碼編碼原理卷積碼一般表示為<n,k,N>的形式,即將k個(gè)信息比特編碼為n個(gè)比特的碼組,N為編碼約束長(zhǎng)度,說明編碼過程中相互約束的碼段個(gè)數(shù)。卷積碼編碼后的n個(gè)碼元不僅與當(dāng)前組的k個(gè)信息比特有關(guān),還與前N-1個(gè)輸入組的信息比特有關(guān)。編碼過程中相互關(guān)聯(lián)的碼元有N*n個(gè)。R=k/n是編碼效率。編碼效率和約束長(zhǎng)度是衡量卷積碼的兩個(gè)重要參數(shù)。典型的卷積碼一般選n,k較小,但N值可取較大<>10>,以獲得簡(jiǎn)單而高性能的卷積碼。卷積碼的編碼描述方式有很多種:沖激響應(yīng)描述法、生成矩陣描述法、多項(xiàng)式乘積描述法、狀態(tài)圖描述,樹圖描述,網(wǎng)格圖描述等。2.2.1卷積碼解析表示法卷積碼的解析表示發(fā)大致可以分為離散卷積法,生成矩陣法,碼多項(xiàng)式法。下面以離散卷積為例進(jìn)行說明。卷積碼的編碼器一般比較簡(jiǎn)單,為一個(gè)具有k個(gè)輸入端,n個(gè)輸出端,m級(jí)移位寄存器的有限狀態(tài)有記憶系統(tǒng)。下圖所示為<2,1,7>卷積碼的編碼器。圖2-1〔2,1,7卷積碼編碼器若輸入序列為u=<u0u1u2u3……>,則對(duì)應(yīng)兩個(gè)碼字序列C1=<ca0ca1ca2ca3……>和C2=<cb0cb1cb2cb3……>相應(yīng)的編碼方程可寫為P1=u?C1,P2=u?C2,P=<P1,P2>。"?"符號(hào)表示卷積運(yùn)算,P1,P2表示編碼器的兩個(gè)沖激響應(yīng),即編碼器的輸出可以由輸入序列和編碼器的兩個(gè)沖擊響應(yīng)卷積而得到,故稱為卷積碼。這里的沖激響應(yīng)指:當(dāng)輸入為[10000……]序列時(shí),所觀察到的兩個(gè)輸出序列值。由于上圖N值為7,故沖激響應(yīng)至多可持續(xù)到第7位,可寫為P1=[1111001],P2=[1011011]然后將兩個(gè)輸出端的碼字序列合并為一個(gè)碼字序列為C=<ca0cb0ca1cb1ca2cb2……>。若輸入信息序列為[1101];則P1=[1001010101],P2=[1111101111],C=[11010111011001110111]。如圖3-2所示為<2,1,3>卷積碼的編碼器,也是本次課程設(shè)計(jì)所研究的卷積碼編碼器,由于其生成沖激響應(yīng)分別為[111]和[101],故被稱為<7,5>碼。ZZ-1Z-1++圖2-2〔2,1,3卷積碼編碼器2.2.2卷積碼圖形表示法除了用解析法描述卷積碼的編碼外,還可以使用比較形象的圖形法來表示卷積碼。比較常用的有狀態(tài)圖法,樹圖法和網(wǎng)格圖法。狀態(tài)圖法:由于卷積碼編碼器在下一時(shí)刻的輸出取決于編碼器的當(dāng)前狀態(tài)和下一時(shí)刻的輸入,而編碼器當(dāng)前狀態(tài)取決于編碼器當(dāng)前各移位寄存器的存儲(chǔ)內(nèi)容。稱編碼器當(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>碼的編碼器來說,n=2,k=1,N=3,m=2。共有四個(gè)可能狀態(tài),其狀態(tài)圖如圖2-3所示:0/00
0/00
001001111/101/011/000/100/010/111/11圖2-3卷積碼狀態(tài)圖圖中四個(gè)方塊表示狀態(tài),狀態(tài)間的連線與箭頭表示轉(zhuǎn)移方向,連線上的數(shù)字表示是狀態(tài)發(fā)生轉(zhuǎn)移的到來比特,斜杠后的數(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碼字。樹圖法描述卷積碼的編碼過程除了用它的生成矩陣QUOTE外,還可以用半無限碼樹圖。卷積碼的樹圖表示是一種形象的表示卷積碼編碼過程的方法。卷積碼的各種距離度量與樹圖有密切關(guān)系。以<2,1,3>卷積碼為例,它的生成多項(xiàng)式矩陣和生成矩陣分別為:QUOTE<2-1><2-2>若輸入編碼器的信息序列M<D>=<m0,m1,m2…..>=<11011…..>,則由編碼器輸出碼序列C為C=M=<11,01,01,00,01,01,>=<C0,Cl,C2,C3,…><2-3>可以把這個(gè)編碼過程用如圖3-4所示的半無限碼樹圖來說明。設(shè)編碼器的初始狀態(tài)為0,碼樹中每個(gè)節(jié)點(diǎn)的下一級(jí)的上面的分支表示輸入為0,下面的分支表示輸入為l。每個(gè)分支上面的數(shù)字表示對(duì)應(yīng)次分支的輸出。因此輸入不同的信息序列,編碼器就走不同的路徑,輸出不同的碼序列。按照上面的例子,則編碼過程對(duì)應(yīng)碼樹中粗線表示的一條路徑。對(duì)該碼序列來說,樹圖上的這條路徑就是它的正確路徑。對(duì)于一般的二進(jìn)制<n,k,N>編碼器來說,每次輸入的是k個(gè)信息元,有2k個(gè)可能的信息組,這對(duì)應(yīng)于從碼樹每一個(gè)節(jié)點(diǎn)上分出的分支樹有2k條,相應(yīng)于2kQUOTE個(gè)不同信息組的輸入,并且每條都有n個(gè)碼元,作為與此相應(yīng)的輸出子碼。由以上討論可知,卷積碼編碼過程的實(shí)質(zhì),是在輸入信息序列的控制下,編碼器沿碼樹通過某一特定路徑的過程。顯然,譯碼過程就是根據(jù)接收序列和信道干擾的統(tǒng)計(jì)特性,譯碼器在原碼樹上力圖恢復(fù)原來編碼器所走的路徑,即尋找正確路徑的過程。其過程如圖2-4所示。000000S011S01100S0S010S20111S2011101SS000101100101100110101100S200110101100S2S2S301S301S000S000S01110S011101S1S2SS2110111S110111S100000000000101S3S3S310S310圖2-4<2,1,3>卷積碼的樹圖網(wǎng)格圖法:網(wǎng)格圖可以描述卷積碼的狀態(tài)隨時(shí)間推移而轉(zhuǎn)移的情況。該圖縱坐標(biāo)表示所有狀態(tài),橫坐標(biāo)表示時(shí)間。網(wǎng)格圖在卷積碼的概率譯碼,特別是Viterbi譯碼中非常重要,它綜合了狀態(tài)圖法直觀簡(jiǎn)單和樹圖法時(shí)序關(guān)系清晰的特點(diǎn)。如圖2-5所示狀態(tài)狀態(tài)t1t2t3t4t5t621111111111102202002020211102010000111圖2-5譯碼器網(wǎng)格圖圖中實(shí)線表示輸入0時(shí)所走分支,虛線表示輸入1時(shí)所走分支,編碼時(shí)只需從起始狀態(tài)開始依次選擇路線并讀出輸出即可。假設(shè)從a狀態(tài)開始,輸入為[1011],則可由圖中讀出輸出為[11101001]。2.3卷積碼譯碼原理2.3.1卷積碼三種譯碼方式<1>代數(shù)譯碼代數(shù)譯碼是將卷積碼的一個(gè)編碼約束長(zhǎng)度的碼段看作是[n0<m+1>,k0<m+1>]線性分組碼,每次根據(jù)<m+1>分支長(zhǎng)接收數(shù)字,對(duì)相應(yīng)的最早的那個(gè)分支上的信息數(shù)字進(jìn)行估計(jì),然后向前推進(jìn)一個(gè)分支。如果假設(shè)輸入的信息序列為=<10111>,相應(yīng)的編碼輸出序列為在未超出編碼約束長(zhǎng)度的情況下,可以通過譯碼時(shí)將接受序列與所有可能的輸出編碼序列進(jìn)行比較,通過比較可以得到最小距離,進(jìn)而可以得到可能的最大概率。按同樣方法判決,將每一位進(jìn)行比較,進(jìn)行糾錯(cuò)。若此時(shí)<2>維特比譯碼維特比譯碼是根據(jù)接收序列在碼的格圖上找出一條與接收序列距離〔或其他量度為最小的一種算法。它和運(yùn)籌學(xué)中求最短路徑譯碼器從某個(gè)狀態(tài),例如從狀態(tài)ɑ出發(fā),每次向右延伸一個(gè)分支〔對(duì)于l<L,從每個(gè)節(jié)點(diǎn)出發(fā)都有2種可能的延伸,其中L是信息序列段數(shù),對(duì)l≥L,只有一種可能,并與接收數(shù)字相應(yīng)分支進(jìn)行比較,計(jì)算它們之間的距離,然后將計(jì)算所得距離加到被延伸路徑的累積距離值中。對(duì)到達(dá)每個(gè)狀態(tài)的各條路徑〔有2條的距離累積值進(jìn)行比較,保留距離值最小的一條路徑,稱為幸存路徑〔當(dāng)有兩條以上取最小值時(shí),可任取其中之一,譯碼過程如圖。圖中標(biāo)出到達(dá)各級(jí)節(jié)點(diǎn)的幸存路徑的距離累積值。對(duì)給定R的估值序列為=<10111>。這種算法所保留的路徑與接收序列之間的似然概率為最大,所以又稱為最大似然譯碼。這種譯碼的譯碼約束長(zhǎng)度常為編碼約束長(zhǎng)度的數(shù)倍,因而可以糾正不多于<df/2>個(gè)錯(cuò)誤。維特比譯碼器的復(fù)雜性隨m呈指數(shù)增大。實(shí)用中m不大于10。它在衛(wèi)星和深空通信中有廣泛的應(yīng)用。在解決碼間串?dāng)_和數(shù)據(jù)壓縮中也可應(yīng)用?!?序貫譯碼序貫譯碼是根據(jù)接收序列和編碼規(guī)則,在整個(gè)碼樹中搜索〔既可以前進(jìn),也可以后退出一條與接收序列距離〔或其他量度最小的一種算法。由于它的譯碼器的復(fù)雜性隨m值增大而線性增長(zhǎng),在實(shí)用中可以選用較大的m值〔如20~40以保證更高的可靠性。許多深空和海事通信系統(tǒng)都采用序貫譯碼。2.3.2Viterbi譯碼原理卷積碼概率譯碼的基本思路是:以接收碼流為基礎(chǔ),逐個(gè)計(jì)算它與其他所有可能出現(xiàn)的、連續(xù)的網(wǎng)格圖路徑的距離,選出其中可能性最大的一條作為譯碼估值輸出。概率最大在大多數(shù)場(chǎng)合可解釋為距離最小,這種最小距離譯碼體現(xiàn)的正是最大似然的準(zhǔn)則。卷積碼的最大似然譯碼與分組碼的最大似然譯碼在原理上是一樣的,但實(shí)現(xiàn)方法上略有不同。主要區(qū)別在于:分組碼是孤立地求解單個(gè)碼組的相似度,而卷積碼是求碼字序列之間的相似度?;诰W(wǎng)格圖搜索的譯碼是實(shí)現(xiàn)最大似然判決的重要方法和途徑。用格圖描述時(shí),由于路徑的匯聚消除了樹狀圖中的多余度,譯碼過程中只需考慮整個(gè)路徑集合中那些使似然函數(shù)最大的路徑。如果在某一點(diǎn)上發(fā)現(xiàn)某條路徑已不可能獲得最大對(duì)數(shù)似然函數(shù),就放棄這條路徑,然后在剩下的"幸存"路徑中重新選擇路徑。這樣一直進(jìn)行到最后第L級(jí)<L為發(fā)送序列的長(zhǎng)度>。由于這種方法較早地丟棄了那些不可能的路徑,從而減輕了譯碼的工作量,Viterbi譯碼正是基于這種想法。對(duì)于<n,k,N>卷積碼,其網(wǎng)格圖中共2kL種狀態(tài)。由網(wǎng)格圖的前N-1條連續(xù)支路構(gòu)成的路徑互不相交,即最初2k_1條路徑各不相同,當(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ù)累加值的路徑保存下來,而丟棄另一條路徑,經(jīng)挑選后第N級(jí)只留下2N條幸存路徑。選出的路徑同它們的對(duì)數(shù)似然函數(shù)的累加值將一起被存儲(chǔ)起來。由于每個(gè)節(jié)點(diǎn)引出兩條支路,因此以后各級(jí)中路徑的延伸都增大一倍,但比較它們的似然函數(shù)累加值后,丟棄一半,結(jié)果留存下來的路徑總數(shù)保持常數(shù)。由此可見,上述譯碼過程中的基本操作是,"加-比-選",即每級(jí)求出對(duì)數(shù)似然函數(shù)的累加值,然后兩兩比較后作出選擇。有時(shí)會(huì)出現(xiàn)兩條路徑的對(duì)數(shù)似然函數(shù)累加值相等的情形,在這種情況下可以任意選擇其中一條作為"幸存"路徑。卷積碼的編碼器從全零狀態(tài)出發(fā),最后又回到全零狀態(tài)時(shí)所輸出的碼序列,稱為結(jié)尾卷積碼。因此,當(dāng)序列發(fā)送完畢后,要在網(wǎng)格圖的終結(jié)處加上〔N-1個(gè)己知的信息作為結(jié)束信息。在結(jié)束信息到來時(shí),由于每一狀態(tài)中只有與已知發(fā)送信息相符的那條支路被延伸,因而在每級(jí)比較后,幸存路徑減少一半。因此,在接收到〔N-1個(gè)己知信息后,在整個(gè)網(wǎng)格圖中就只有唯一的一條幸存路徑保留下來,這就是譯碼所得的路徑。也就是說,在己知接收到的序列的情況下,這條譯碼路徑和發(fā)送序列是最相似的。2.3.3維特比譯碼算法性能對(duì)于<n,k,N>卷積碼,其編碼存儲(chǔ)度<移位寄存器單元的數(shù)量>為N,幸存路徑有2N條。每條幸存路徑<或信息序列>存儲(chǔ)器單元數(shù)是n*D,其中,n是卷積碼碼組寬度,D是需要存儲(chǔ)的碼組的個(gè)數(shù)。D的取值一般考慮取m的整倍數(shù),稱D為幸存路徑長(zhǎng)度。編碼存儲(chǔ)度和幸存路徑長(zhǎng)度的取值問題關(guān)系到芯片規(guī)格、傳輸時(shí)延等問題。若D很大,則譯碼器的存儲(chǔ)量太大而難以實(shí)用。一般情況下,當(dāng)譯碼進(jìn)行到第5級(jí)<每級(jí)包括m個(gè)時(shí)刻>以后,每個(gè)狀態(tài)幸存路徑的前幾個(gè)分支已基本重合在一起,這就是說每個(gè)路徑存儲(chǔ)器不必存儲(chǔ)D個(gè)很大的碼序列。譯碼時(shí),當(dāng)譯碼器接收并處理完第D個(gè)碼組后,譯碼器中的幸存路徑存儲(chǔ)器已全部存滿,當(dāng)譯碼器開始處理第D+1個(gè)碼組時(shí),他就對(duì)幸存路徑存儲(chǔ)器中的最頂端的碼組做出判決并輸出?!?適當(dāng)增加幸存路徑的長(zhǎng)度可以提高譯碼器的糾錯(cuò)能力?!?幸存路徑的長(zhǎng)度在增加到一定值時(shí),譯碼器糾錯(cuò)能力趨于穩(wěn)定。當(dāng)N值增加到6以上,誤比特率降低幅度大為減小,曲線有合二為一的趨勢(shì)。因此,可以認(rèn)為幸存路徑長(zhǎng)度D取編碼存儲(chǔ)度的6倍以上就可以取得比較好的譯碼性能?!?選擇合適的延時(shí)。路徑量度<似然度>的累加選取和碼字延時(shí)判決輸出提高了譯碼的準(zhǔn)確性,D越大越有利于判決的正確性,但是這又和通信的實(shí)時(shí)性背道而馳,一般D為卷積碼約束長(zhǎng)度N的5~10倍即可,本文算法D取50?!?留存路徑的更新的描述。每個(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ài)s2所對(duì)應(yīng)的留存路徑存儲(chǔ)器。對(duì)每一狀態(tài)都做如此比較,保存大的分支量度BM,然后再累加前一狀態(tài)路徑量度PM_l,最后完成所有狀態(tài)的選擇,比較當(dāng)前所有狀態(tài)的路經(jīng)量度PM,選擇最大路徑,如果延時(shí)超過D就判決輸出碼字。顯然此處判決的碼字要延時(shí)D時(shí)刻才能移位輸出。3.卷積碼編譯碼及MATLAB仿真在本次課題研究中,我們對(duì)整個(gè)通信過程進(jìn)行了仿真,其過程如圖3-1:序列序列產(chǎn)生信道編碼BPSK
調(diào)制AWGN信道傳輸BPSK
解調(diào)Viterbi譯碼信息輸出圖3-1卷積碼編譯碼流程圖3.1Matlab概述計(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)算或畫圖時(shí),采用Fortran、C及C++等計(jì)算機(jī)語言進(jìn)行程序設(shè)計(jì)是一項(xiàng)十分麻煩的工作,不僅需要對(duì)所利用的有關(guān)算法有深刻的了解,還需要掌握所用語言的語法及編程技巧。Matlab軟件由美國(guó)MathWorks公司于1984年推出,歷經(jīng)十幾年的發(fā)展和競(jìng)爭(zhēng),現(xiàn)已成為通用科技計(jì)算和圖視交互系統(tǒng)的程序語言,是<IEEE>國(guó)際公認(rèn)的最優(yōu)秀的科技應(yīng)用軟件之一。它的指令表達(dá)與數(shù)學(xué)、工程中常用的習(xí)慣形式十分相似,從而使許多用C或Fortran實(shí)現(xiàn)起來十分復(fù)雜和費(fèi)時(shí)的問題用Matlab就可以輕松地解決。Matlab的典型應(yīng)用包括:數(shù)學(xué)計(jì)算、算法研究、數(shù)據(jù)分析和計(jì)算結(jié)果可視化、建模與仿真等。3.1.1Matlab的特點(diǎn)Matlab作為一種數(shù)值計(jì)算和與圖形處理工具軟件,其特點(diǎn)是語法結(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í)語言相比,Matlab不但在數(shù)學(xué)語言的表達(dá)與解釋方面表現(xiàn)出人機(jī)交互的高度一致,而且具有優(yōu)秀高技術(shù)計(jì)算環(huán)境所不可缺少的如下特征:〔1高質(zhì)量、高可靠的數(shù)值計(jì)算能力;〔2基于向量、數(shù)組和矩陣的高維設(shè)計(jì)語言;〔3高級(jí)圖形和可視化數(shù)據(jù)處理的能力;〔4廣泛解決各學(xué)科各專業(yè)領(lǐng)域內(nèi)復(fù)雜問題的能力;〔5擁有一個(gè)強(qiáng)大的非線性系統(tǒng)仿真工具箱——Simulink;〔6支持科學(xué)和工程計(jì)算標(biāo)準(zhǔn)的開放式、可交互結(jié)構(gòu);〔7跨平臺(tái)兼容。3.1.2Matlab工具箱和內(nèi)容目前Matlab已經(jīng)成為國(guó)際上最流行的軟件之一,它除了傳統(tǒng)的交互式編程外,還提供了豐富可靠的矩陣運(yùn)算。圖形繪制、數(shù)據(jù)處理、圖象處理、方便的Windows編程等便利工具。出現(xiàn)了各種以Matlab為基礎(chǔ)的使用工具箱,廣泛的應(yīng)用于自動(dòng)控制、圖像信號(hào)處理、生物醫(yī)學(xué)工程、語言處理、雷達(dá)工程、信號(hào)分析、震動(dòng)理論、時(shí)序分析與建模、化學(xué)統(tǒng)計(jì)學(xué)、優(yōu)化設(shè)計(jì)等領(lǐng)域,并表現(xiàn)出一般高級(jí)語言難以比擬的優(yōu)勢(shì)。較為常見的工具箱主要包括:控制系統(tǒng)工具箱<Controlsystemstoolbox>、系統(tǒng)識(shí)別工具箱<Systemsidentificationtoolbox>、多變量頻率設(shè)計(jì)工具箱<Multivariablefrequencydesigntoolbox>、魯棒控制工具箱<Robustcontroltoolbox>、分析與綜合工具箱<analysisandsynthesistoolbox>、神經(jīng)網(wǎng)絡(luò)工具箱<Neuralnetworktoolbox>、最優(yōu)化工具箱<Optimizationtoolbox>、信號(hào)處理工具箱<Signalprocessingtoolbox>、模糊推理數(shù)據(jù)工具箱<Fuzzyinferencesystemtoolbox>、小波分析工具箱<Wavelettoolbox>、通信工具箱<Communicationstoolbox>。3.2卷積碼編碼及仿真在程序設(shè)計(jì)中,我們沒有采用MATLAB自帶的編碼函數(shù)而是采用了自己的編碼函數(shù)codec對(duì)〔2,1,3卷積碼編碼,其參數(shù)m為輸入信息序列,g1,g2為兩個(gè)輸出端口的沖激響應(yīng)序列。3.2.1編碼程序functioncod=codec<m,g1,g2>%g1,g2為兩輸出端口的沖激響應(yīng)序列。m1=conv<m,g1>;%端口一輸出 m2=conv<m,g2>;%端口二輸出l=length<m1>;fori=1:l;cod<[2*i-1]>=rem<m1<[i]>,2>;%將端口一編碼輸出賦給cod奇數(shù)位置cod<[2*i]>=rem<m2<[i]>,2>;%將端口二編碼輸出賦給cod偶數(shù)位置end試運(yùn)行編碼:clearallg1=[111];g2=[101];msg=[1101];cod=codec<msg,g1,g2>輸出為:仿真結(jié)果如下圖3-2。圖3-2〔2,1,3卷積碼編碼3.3信道傳輸過程仿真為了方便起見,我們采用了二相相移鍵控〔BPSK,也就是用二進(jìn)制基帶信號(hào)〔0、1對(duì)載波進(jìn)行二相調(diào)制。BPSK是最簡(jiǎn)單的PSK形式,相移大小為180°,又可稱為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)制過程作了模擬仿真,用一個(gè)簡(jiǎn)短的程序?qū)PSK的全過程進(jìn)行了觀察。程序代碼如下:function[bpsk_output]=bpsk_1<g>;g=[110101001011];%卷積碼編碼輸出信號(hào)cp=[];bit=[];forn=1:length<g>;ifg<n>==0;die=-ones<1,100>;%使得信號(hào)在坐標(biāo)為0到100皆為-1,生成圖線se=zeros<1,100>;elseg<n>==1;die=ones<1,100>;se=ones<1,100>;endcp=[cpdie];bit=[bitse];endsnr_db=35;%可以調(diào)整變化的信噪比同時(shí)考慮信道中可能存在的噪聲noise=randn<1,length<bpsk>>;%隨機(jī)噪聲sigma=sqrt<5>*10^<-<snr_db>/20>;recv=bpsk+3*sigma*noise;%產(chǎn)生的噪聲疊加在bpsk上仿真結(jié)果如圖3-3所示。在matlab運(yùn)行時(shí),我們對(duì)信道高斯白噪聲進(jìn)行模擬,通過調(diào)節(jié)信噪比,我們可以清晰地觀察到噪聲對(duì)BPSK調(diào)制的影響,信噪比越大,傳輸?shù)男盘?hào)所受干擾越小,傳輸越準(zhǔn)確。圖3-3模擬信道傳輸3.4維特比譯碼程序及仿真信號(hào)通過bpsk調(diào)制后在信道中傳輸,到達(dá)接收端時(shí),先要進(jìn)行解調(diào),判決代碼為forj=1:length<recv>;ifrecv<j>>0;recv<j>=1;elserecv<j>=0;endend3.4.1維特比譯碼算法解析Viterbi算法是通過加-比較-選擇來實(shí)現(xiàn)的,狀態(tài)量度的計(jì)算方法如下:將前兩個(gè)狀態(tài)點(diǎn)上的狀態(tài)量度和相應(yīng)分支量度相加,得到的兩個(gè)可能路徑量度作為新的狀態(tài)量度的候選項(xiàng),送入邏輯單元中進(jìn)行比較,將其中似然性最大<距離最小>的一個(gè)作為狀態(tài)的新狀態(tài)量度存儲(chǔ),同時(shí)存儲(chǔ)的還有狀態(tài)新的路徑記錄,主要算法步驟為:<1>將接收到的序列分成每段長(zhǎng)為n0的m組子序列。<2>對(duì)所研究的碼畫出深度為m級(jí)的網(wǎng)格圖。對(duì)該網(wǎng)格圖的最后<L-1>級(jí)僅畫出對(duì)應(yīng)于全0輸入序列的路徑。<3>置s=1,并置初始全0狀態(tài)的度量等于0。<4>對(duì)網(wǎng)格圖中全部連接第s級(jí)狀態(tài)到<s+1>級(jí)狀態(tài)的支路求出該接收序列中的第s個(gè)子序列的距離。<5>將這些距離加到第s級(jí)各狀態(tài)的度量上去,得到對(duì)第<s+1>級(jí)狀態(tài)的度量候選者。對(duì)于第<s+1>級(jí)的每一狀態(tài),有QUOTE個(gè)候選度量,其中每一個(gè)都對(duì)應(yīng)終止在那個(gè)狀態(tài)的一條支路。<6>對(duì)在第<s+1>級(jí)的每一狀態(tài),挑選出最小的候選度量,并將對(duì)應(yīng)于這個(gè)最小值的支路標(biāo)以留存支路,同時(shí)指定之歌候選度量的最小值作為第<s+1>級(jí)狀態(tài)的度量值。<7>若s=m,轉(zhuǎn)到下一步;否則將s增加1并轉(zhuǎn)到第4步。<8>在第<m+1>級(jí)以全0狀態(tài)開始,沿著留存支路通過網(wǎng)格圖往會(huì)到達(dá)初始全0狀態(tài),這條路徑就是最佳路徑,并且對(duì)應(yīng)于這條路徑的輸入比特序列是最大似然解碼序列。為了得到有關(guān)這個(gè)輸入比特序列最好的推測(cè),將最后<L-1>k0個(gè)0從該序列中除掉。根據(jù)算法繪出程序流程圖如圖3-4示:程序初始化,將路徑信息和當(dāng)前累計(jì)度量值清零,統(tǒng)計(jì)碼長(zhǎng)對(duì)前兩步進(jìn)行漢明距度量并保存路徑信息程序初始化,將路徑信息和當(dāng)前累計(jì)度量值清零,統(tǒng)計(jì)碼長(zhǎng)對(duì)前兩步進(jìn)行漢明距度量并保存路徑信息是否解碼完成計(jì)算能到達(dá)當(dāng)前狀態(tài)的兩條路徑將兩條路徑a,b輸出與輸入比較漢明距,并累加到路徑度量a路徑累計(jì)度量是否小于b選a為當(dāng)前點(diǎn)的最優(yōu)到達(dá)路徑選b為當(dāng)前點(diǎn)的最優(yōu)到達(dá)路徑選取度量值最小路徑輸出是否否是圖3-4Viterbi譯碼流程圖從Viterbi算法中可以看到,對(duì)于一個(gè)長(zhǎng)信息序列解碼時(shí),解碼延時(shí)和所需要的存儲(chǔ)量都是無法接受的。直到整個(gè)序列全被接收,解碼才能開始,而且還不得不將總的留存路徑存儲(chǔ)起來。實(shí)際上,不會(huì)引起這些問題的次優(yōu)解倒是很希望的。一種稱為路徑存儲(chǔ)截?cái)嗟霓k法是:在每一級(jí)編碼器在網(wǎng)格圖中僅往會(huì)搜索w級(jí),而不回到網(wǎng)格圖的出發(fā)點(diǎn)。用這種辦法在第<w+1>級(jí)解碼器對(duì)相應(yīng)于網(wǎng)格圖第1級(jí)的輸入比特作出判決,并且未來的接收比特不改變這個(gè)判決。這意味著解碼延時(shí)是k0w比特,需要保存的路徑只相應(yīng)于最后W級(jí)的路徑。計(jì)算機(jī)仿真已經(jīng)表明,如果W>5n,由于路徑存儲(chǔ)截?cái)嘣斐傻男阅芟陆悼珊雎圆挥?jì)。3.4.2Viterbi譯碼程序Viterbi譯碼主要程序如下:forj=0:number_of_states-1form=0:M-1[next_state,memory_contents]=nxt_stat<j,m,N,k>;%調(diào)用nxt_stat函數(shù)input<j+1,next_state+1>=m;branch_output=rem<memory_contents*G',2>;% nextstate數(shù)組記錄了當(dāng)前狀態(tài)j下輸入l時(shí)的下一個(gè)狀態(tài)nextstate<j+1,m+1>=next_state;% output數(shù)組記錄了當(dāng)前狀態(tài)j下輸入l時(shí)的輸出〔十進(jìn)制output<j+1,m+1>=bin2deci<branch_output>;endendstate_metric=zeros<number_of_states,2>;depth_of_trellis=length<channel_output>/n;channel_output_matrix=reshape<channel_output,n,depth_of_trellis>;survivor_state=zeros<number_of_states,depth_of_trellis+1>;fori=1:depth_of_trellis-N+1flag=zeros<1,number_of_states>;if<i<=N>step=2^<k*<N-i>>;elsestep=1;endforj=0:step:number_of_states-1form=0:M-1branch_metric=0;binary_output=deci2bin<output<j+1,m+1>,n>;forll=1:nbranch_metric=branch_metric+metric<channel_output_matrix<ll,i>,binary_output<ll>>;end%選擇碼間距較小的路徑,即當(dāng)下一個(gè)狀態(tài)沒有被訪問時(shí)就直接賦值,否則,用比它小的將其覆蓋if<<state_metric<nextstate<j+1,m+1>+1,2>>state_metric<j+1,1>+branch_metric>|flag<nextstate<j+1,m+1>+1>==0>state_metric<nextstate<j+1,m+1>+1,2>=state_metric<j+1,1>+branch_metric;survivor_state<nextstate<j+1,m+1>+1,i+1>=j;flag<nextstate<j+1,m+1>+1>=1;endendendstate_metric=state_metric<:,2:-1:1>;endfori=depth_of_trellis-N+2:depth_of_trellisflag=zeros<1,number_of_states>;last_stop=number_of_states/<2^<k*<i-depth_of_trellis+N-2>>>;forj=0:last_stop-1branch_metric=0;binary_output=deci2bin<output<j+1,1>,n>;forll=1:nbranch_metric=branch_metric+metric<channel_output_matrix<ll,i>,binary_output<ll>>;endif<<state_metric<nextstate<j+1,1>+1,2>>state_metric<j+1,1>+branch_metric>|flag<nextstate<j+1,1>+1>==0>state_metric<nextstate<j+1,1>+1,2>=state_metric<j+1,1>+branch_metric;survivor_state<nextstate<j+1,1>+1,i+1>=j;flag<nextstate<j+1,1>+1>=1;endendstate_metric=state_metric<:,2:-1:1>;end%從最佳路徑中產(chǎn)生解碼,譯碼過程可從數(shù)組survivor_state的最后一個(gè)位置向前逐級(jí)譯碼state_sequence=zeros<1,depth_of_trellis+1>;state_sequence<1,depth_of_trellis>=survivor_state<1,depth_of_trellis+1>;fori=1:depth_of_trellisstate_sequence<1,depth_of_trellis-i+1>=survivor_state<<state_sequence<1,depth_of_trellis+2-i>+1>,depth_of_trellis-i+2>;enddecoder_output_matrix=zeros<k,depth_of_trellis-N+1>;fori=1:depth_of_trellis-N+1dec_output_deci=input<state_sequence<1,i>+1,state_sequence<1,i+1>+1>;dec_output_bin=deci2bin<dec_output_deci,k>;%將一次譯碼存入譯碼輸出矩陣decoder_output_matrix相應(yīng)的位置decoder_output_matrix<:,i>=dec_output_bin<k:-1:1>';enddecoder_output=reshape<decoder_output_matrix,1,k*<depth_of_trellis-N+1>>;cumulated_metric=state_metric<1,1>;viterbi譯碼matlab仿真將程序在matlab中進(jìn)行仿真,對(duì)于〔2,1,3譯碼,G=[111;101],channel_output=recv,此時(shí)令信噪比snr_db=12,得到仿真圖形如圖3-5所示:snr_db12snr_db12圖3-5信源編碼及viterbi譯碼輸出的是正確結(jié)果[1101],由理論分析知,信道編碼經(jīng)過bpsk調(diào)制,由于信道噪聲的干擾,在信號(hào)解調(diào)后會(huì)產(chǎn)生一定的差錯(cuò),維特比譯碼雖然有具有糾錯(cuò)功能,但是畢竟是有限的,所以信噪比對(duì)viterbi譯碼性能將產(chǎn)生影響,且信噪比越大,維特比譯碼越準(zhǔn)確。為了驗(yàn)證上述推論,將信噪比減小,令SNR=6。Matalb仿真結(jié)果如圖3-6所示:當(dāng)信噪比降低到SNR=6時(shí),譯碼輸出變?yōu)閇0111],產(chǎn)生了差錯(cuò)。驗(yàn)證了上述推論。snr_db=6snr_db=6圖3-6信道編碼及viterbi譯碼3.4.4信噪比對(duì)卷積碼譯碼性能的影響上述過程只是可以看出信噪比會(huì)影響維特比譯碼的性能,為了進(jìn)一步得到兩者更加直觀的聯(lián)系,我們可以通過編程得到信噪比與誤碼率之間的函數(shù)關(guān)系,同時(shí)將沒有進(jìn)行卷積碼的信號(hào)也計(jì)算其誤碼率。代碼如下:clearall;clc;snr_db=0:10;%信息源msg=randint<1,1e3>;ber0=zeros<1,length<snr_db>>;ber1=zeros<1,length<snr_db>>;%Trellisestrel=poly2trellis<3,[75]>;%Definetrellisforrate1/2code.forn=1:length<msg>/2;forx=1:length<snr_db>%Codewordscode=convenc<msg,trel>;%Encode.state=20;inter=randintrlv<code,state>;%BPSK調(diào)制s0=sign<msg-0.5>;s1=sign<inter-0.5>;%AWGNChanneladd_noise0=awgn<s0,snr_db<x>,'measured'>;add_noise1=awgn<s1,snr_db<x>,'measured'>;%Deinterleaverwithnoiseforsoftdecodingdeinter_noise=randdeintrlv<add_noise1,state>;%解調(diào)r_0=0.5*sign<add_noise0>+0.5;r_1=0.5*sign<add_noise1>+0.5;%Deinterleaverdeinter_1=randdeintrlv<r_1,state>;%Tracebacklengthtblen=5;%vitdec判決decoded1=vitdec<deinter_1,trel,tblen,'cont','hard'>;%vitdec判決%比較誤碼率[num0,rat0]=biterr<r_0,msg>;[num1,rat1]=biterr<double<decoded1<tblen+1:end>>,msg<1:end-tblen>>;ber0<n,x>=rat0;ber1<n,x>=rat1;endendber0=mean<ber0>;ber1=mean<ber1>;程序在matlab中運(yùn)行,得到仿真圖如圖3-7所示,該圖直觀的反映了經(jīng)過卷積碼編碼和沒有經(jīng)過卷積碼編碼的誤碼率之間的區(qū)別。從圖中可以看出,當(dāng)信噪比較小時(shí),未編碼的誤碼率反而比采用編碼的誤碼率低,這是因?yàn)檎`比特太多導(dǎo)致接收到的信息幾乎無效。但是當(dāng)信噪比稍高后卷積碼編碼譯碼的誤碼率就大大降低了。卷積沒有卷積卷積沒有卷積圖3-7誤碼率比較圖形3.4.5碼率對(duì)卷積碼譯碼性能的影響卷積碼的碼率R=k/n,它是卷積碼的一個(gè)重要參數(shù),當(dāng)改變卷積碼的碼率時(shí),系統(tǒng)的誤碼性能也將隨之發(fā)生變化,為了研究碼率對(duì)卷積碼誤碼性能的影響,我們以碼率為1/2的<2,1,3>卷積碼和碼率為1/3的<3,1,3>卷積碼作為仿真碼字。<2,1,3>卷積碼的trellis結(jié)構(gòu)為poly2trellis<3,[75]>,<3,1,3>卷積碼的trellis結(jié)構(gòu)為poly2trellis<3,[165]>。從圖3-8中的誤比特率曲線可以看出,當(dāng)碼率一定時(shí),隨著信道噪聲的逐漸減小,系統(tǒng)的誤比特率也逐漸減小,對(duì)比兩條曲線可清楚地得出<3,1,3>卷積碼的性能要比<2,1,3>卷積碼要好。于是可以得出如下結(jié)論:當(dāng)改變系統(tǒng)碼率時(shí),隨著卷積碼碼率的逐漸提高,系統(tǒng)的誤比特率也呈現(xiàn)出增大的趨勢(shì),也就是說,碼率越低,系統(tǒng)的誤比特率就越小,誤碼性能就越好。<3,,1,3>〔2,1,3<3,,1,3>〔2,1,3圖3-8碼率對(duì)卷積碼性能的影響3.4.6約束長(zhǎng)度對(duì)卷積碼誤碼性能的影響對(duì)于碼率一定的卷積碼,當(dāng)約束長(zhǎng)度N發(fā)生變化時(shí),系統(tǒng)的誤碼性能也會(huì)隨之發(fā)生變化,我們以碼率R=1/2的<2,1,3>和<2,1,7>卷積碼為例展開分析。<2,1,7>卷積碼只需將trellis結(jié)構(gòu)改成poly2trellis<7,[171133]>即可。圖3-9約束長(zhǎng)度對(duì)卷積碼性能的影響從圖3-9中的誤比特率曲線可以清楚地看到,在低信噪比時(shí),<2,1,3>卷積碼的的性能要好于<2,1,7>卷積碼的性能。然而當(dāng)信噪比高于一定值后,<2,1,7>卷積碼的的性能要好于<2,1,3>卷積碼的性能,隨著約束長(zhǎng)度的逐漸增加,系統(tǒng)的誤比特率明顯降低,所以說當(dāng)碼率一定,信噪比高于一定值時(shí),增加約束長(zhǎng)度可以降低系統(tǒng)的誤比特率,但是隨著約束長(zhǎng)度的增加,譯碼設(shè)備的復(fù)雜性也會(huì)隨之增加,所以對(duì)于碼率為1/2的卷積碼,我們?cè)谶x取約束長(zhǎng)度時(shí)一般為3~9。3.4.7回溯長(zhǎng)度對(duì)卷積碼誤碼性能的影響回溯長(zhǎng)度是在Viterbi譯碼過程中一個(gè)很重要的參數(shù),它決定了維特比譯碼的精度,同時(shí)也影響著譯碼延遲〔即在輸出第一個(gè)解碼數(shù)據(jù)之前輸出的0的個(gè)數(shù),隨著它的不斷變化誤碼性能也隨之改變。這里采用<2,1,3>卷積碼為例,將反饋深度分別取值為5,15和35。仿真結(jié)果如圖3-10所示。3515535155圖3-10回溯長(zhǎng)度對(duì)卷積碼性能的影響從圖中的誤比特率曲線可以清楚地看到,當(dāng)回溯長(zhǎng)度一定時(shí),隨著信道噪聲的逐漸減小,系統(tǒng)的誤比特率逐漸降低;當(dāng)回溯長(zhǎng)度逐漸增加,系統(tǒng)的誤比特率隨之逐漸降低,但是當(dāng)回溯程度增加到5N時(shí)<N為編碼的約束長(zhǎng)度>,誤比特率數(shù)值趨于穩(wěn)定,這里的<2,1,3>卷積碼在回溯長(zhǎng)度達(dá)到15左右基本趨于穩(wěn)定。因此在確定回溯長(zhǎng)度時(shí)既要考慮到隨著信噪比增加誤比特率隨之降低的趨勢(shì),也要考慮到譯碼延遲會(huì)變大,在選取回溯長(zhǎng)度時(shí),通常取回溯長(zhǎng)度為5N。3.4.8判決方式對(duì)卷積碼誤碼性能的影響采用軟判決即將信道輸出的編碼先不立即判決,而是進(jìn)行量化,量化程序如下:functiono=quantization<s,l>;o=0;ifs>1;o=2^l;elseifs<-1;o=-2^l;elsec=abs<s>;fori=1:2^l;ifc>1/2^<l+1>+<i-1>/2^l;o=o+1;endendifs<0;o=-o;endendo=<o+2^l>/2^<l+1>;再進(jìn)行維特比軟判決譯碼。從圖3-11可知,采用軟判決的誤碼率明顯低于硬判決,實(shí)際上軟判決譯碼算法的路徑度量采用"軟距離"而不是漢明距離。最常采用的是歐幾里德距離,也就是接收波形與可能的發(fā)送波形之間的幾何距離。在采用軟距離的情況下,路徑度量的值是模擬量,需要經(jīng)過一些處理以便于相加和比較。因此,使計(jì)算復(fù)雜度有所提高。除了路徑度量以外,軟判決算法與硬判決算法在結(jié)構(gòu)和過程上完全相同。一般而言,由于硬判決譯碼的判決過程損失了信道信息,軟判決譯碼比硬判決譯碼性能上要好約2dB。軟判決硬判決軟判決硬判決圖3-11不同判決方式對(duì)卷積碼性能的影響4.結(jié)論及展望4.1結(jié)論卷積碼是一種糾錯(cuò)編碼,糾錯(cuò)編碼己有五十幾年歷史,早在1948年,香農(nóng)<Shannon>在他的開創(chuàng)性論文"通信的數(shù)學(xué)理論"中,首次闡明了在有擾信道中實(shí)現(xiàn)可靠通信的方法,提出了著名的有擾信道編碼定理,奠定了糾錯(cuò)碼的基石。以后,糾錯(cuò)碼受到了越來越多的通信和數(shù)學(xué)工作者,特別是數(shù)學(xué)家的重視,使糾錯(cuò)碼無論在理論上還是在實(shí)際中都得到了飛速發(fā)展。本文首先從數(shù)字通信的一些基本概念和差錯(cuò)控制編碼理論出發(fā),引入卷積碼的一些基本理論,接著討論了卷積碼的編譯碼基本原理,對(duì)卷積碼的表示方法和編譯碼算法做了簡(jiǎn)單的介紹,再通過編寫卷積碼的編碼和解碼程序,并且用MATLAB仿真軟件進(jìn)行仿真和糾錯(cuò)驗(yàn)證,并通過對(duì)不同碼率、不同約束長(zhǎng)度、不同回溯長(zhǎng)度,以及不同判決方式情況下誤碼率的分析,得出以下結(jié)論:〔1當(dāng)編碼約束長(zhǎng)度不大,當(dāng)碼率一定時(shí),隨著信道噪聲的逐漸減小,系統(tǒng)的誤比特率也逐漸減小?!?當(dāng)改變系統(tǒng)碼率時(shí),隨著卷積碼碼率的逐漸提高,系統(tǒng)的誤比特率也呈現(xiàn)出增大的趨勢(shì),也就是說碼率越低,系統(tǒng)的誤比特率就越小,誤碼性能就越好。對(duì)于二進(jìn)制對(duì)稱信道,當(dāng)采用BPSK調(diào)制方式時(shí),通常選取的碼率為1/2?!?對(duì)于碼率一定的卷積碼,當(dāng)約束長(zhǎng)度N發(fā)生變化時(shí),系統(tǒng)的誤碼性能也會(huì)隨之發(fā)生變化,隨著約束長(zhǎng)度的逐漸增加,系統(tǒng)的誤比特率明顯降低,所以說當(dāng)碼率一定時(shí),增加約束長(zhǎng)度可以降低系統(tǒng)的誤比特率,但是,隨著約束長(zhǎng)度的增加,譯碼設(shè)備的復(fù)雜性也會(huì)隨之增加。所以對(duì)于碼率為1/2的卷積碼,在選取約束長(zhǎng)度時(shí)一般為3~9?!?對(duì)于碼率一定的卷積碼,當(dāng)反饋深度發(fā)生變化時(shí),系統(tǒng)的誤碼率也會(huì)發(fā)生一定的變化,隨著反饋深度的增加,系統(tǒng)的誤碼率呈下降趨勢(shì),但是通常在反饋深度大于或者等于約束長(zhǎng)度的五倍時(shí),誤碼率幾乎不再發(fā)生變化,故常常取回溯長(zhǎng)度為5N?!?對(duì)于碼率一定的卷積碼,采用的譯碼判決方式不同,也會(huì)對(duì)系統(tǒng)的誤碼率產(chǎn)生影響,一般來說,軟判決譯碼性能要優(yōu)于硬判決譯碼性能,但這是以提高設(shè)備復(fù)雜性為代價(jià)的。4.2展望在本次卷積碼編譯碼算法研究過程中,我學(xué)到了許多關(guān)于卷積碼的知識(shí),對(duì)卷積碼的糾錯(cuò)性能有了較為深刻的認(rèn)識(shí)。但是由于時(shí)間和個(gè)人能力等方面的不足,課題研究中還有些地方做的不到位,也有些領(lǐng)域沒有研究,值得進(jìn)一步完善。如在信道傳輸過程中,本文只是考慮了BPSK信道編碼,而沒有采用較為復(fù)雜的QPSK編碼,所以沒能研究不同的信道編碼方式對(duì)卷積碼誤碼性能的影響。卷積碼的譯碼方法眾多,本文只對(duì)Viterbi譯碼算法做了初步的研究,對(duì)其它的譯碼方式,如代數(shù)譯碼和序貫譯碼,沒有進(jìn)行詳細(xì)的研究和比較,所以沒能研究不同譯碼方式對(duì)卷積碼誤碼性能的影響。卷積碼自提出以來就受到人們的重視,并顯現(xiàn)出了巨大的優(yōu)越性,隨著通信技術(shù)的進(jìn)步,卷積碼也將得到更大的發(fā)展,將提出更多形式的新型卷積碼,進(jìn)一步優(yōu)化通信系統(tǒng)的性能。5.結(jié)束語剛開始拿到這個(gè)課題時(shí),對(duì)卷積碼有一定地了解。當(dāng)時(shí)一想還有六個(gè)月,就沒怎么上心。直到3月份的開題報(bào)告,意識(shí)到自己要認(rèn)真著手了,但是由于準(zhǔn)備不足,開題報(bào)告答辯時(shí)暴露了不少問題,也正是這些問題讓我明白了緊迫要學(xué)習(xí)的東西:matlab軟件知識(shí)、信道編碼理論、糾錯(cuò)碼基本原理、卷積碼編譯碼原理??紤]到之前學(xué)過通信方面的課程,我重新看了樊昌信、曹麗娜著的《通信原理》以及郝建軍的《數(shù)字通信原理》,對(duì)信源編碼,信道編碼,卷積碼等有了一定的認(rèn)識(shí)。但是光靠這些知識(shí)無法著手我的研究課題,于是陸續(xù)又借了其它書籍,由于沒有專門論述卷積碼的書籍,我發(fā)現(xiàn)除了加深對(duì)卷積碼基本知識(shí)的認(rèn)識(shí)外,還是無法展開。這時(shí),我開始在網(wǎng)上查找資料。網(wǎng)上的知識(shí)非常豐富,有些數(shù)據(jù)庫如萬方里面也有大量的卷積碼的知識(shí),通過瀏覽諸多文獻(xiàn),我慢慢摸著了方向,許多相近的課題也給了我許多啟發(fā)。我的課題也比較通暢的進(jìn)行了,在課題推進(jìn)中,對(duì)matlab編程語言的認(rèn)識(shí)也發(fā)生了變化,從開始的幾乎不懂,到慢慢的寫出一些程序,再到子程序的調(diào)用和繪圖及編輯,認(rèn)識(shí)到了matlab強(qiáng)大的數(shù)據(jù)處理功能。這次課題研究也讓我發(fā)現(xiàn)嚴(yán)謹(jǐn)思維的重要性,如編碼性能的好壞,需要從科學(xué)客觀的比較中得到,需要用到控制變量這個(gè)非常通用的方法,具體到卷積碼,也就是既要注意到卷積碼的優(yōu)越性,也要注意到相關(guān)前提和假設(shè),這樣才能做出正確的判斷。相信這些收獲無論是在將來的學(xué)習(xí)還是工作當(dāng)中,肯定裨益良多。參考文獻(xiàn)[1]郝建軍,桑林,劉丹譜,羅濤編著,《數(shù)字通信〔第2版》.北京郵電大學(xué)出版社.2010[2]張忠培,史治平,王傳丹編著.《現(xiàn)代編碼理論與應(yīng)用》.北京:人民郵電出版社.2007[3]傅祖蕓,趙建中編著,《信息論與編碼》,電子工業(yè)出版社,2010[4]樊昌信,曹麗娜編著,《通信原理〔第6版》,國(guó)防工業(yè)出版社,2011[5]鄧華
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技前沿下的班級(jí)學(xué)術(shù)熱潮組織與傳播策略
- 用繪畫表達(dá)內(nèi)心的思考計(jì)劃
- 社交媒體環(huán)境下的網(wǎng)絡(luò)安全及個(gè)人隱私保護(hù)策略
- 智能倉儲(chǔ)系統(tǒng)的應(yīng)用計(jì)劃
- 小班自然觀察與戶外學(xué)習(xí)計(jì)劃
- 跨文化團(tuán)隊(duì)中的英文溝通協(xié)調(diào)技巧
- 展會(huì)現(xiàn)場(chǎng)安保的策劃與執(zhí)行計(jì)劃
- 跨境電商業(yè)務(wù)流程優(yōu)化與實(shí)施
- 質(zhì)量管理體系在辦公自動(dòng)化生產(chǎn)中的應(yīng)用
- 2025年鄂州市鄂城區(qū)國(guó)控投資集團(tuán)有限公司公開招聘8人筆試參考題庫附帶答案詳解
- 正常肌肉及常見肌病的病理學(xué)表現(xiàn)
- 01-BUFR格式應(yīng)用指南(試用版)
- 體育測(cè)量與評(píng)價(jià)04心肺功能的測(cè)量與評(píng)價(jià)
- 提高意識(shí)風(fēng)險(xiǎn)防范化解能力體會(huì)發(fā)言
- RB/T 089-2022綠色供應(yīng)鏈管理體系要求及使用指南
- 2023年度危險(xiǎn)作業(yè)安全監(jiān)護(hù)手冊(cè)
- 馬克思主義哲學(xué)十講
- 催化材料智慧樹知到答案章節(jié)測(cè)試2023年南開大學(xué)
- GB/T 9846.1-2004膠合板第1部分:分類
- GB/T 32685-2016工業(yè)用精對(duì)苯二甲酸(PTA)
- 部編優(yōu)質(zhì)課國(guó)家一等獎(jiǎng)初中語文八年級(jí)下冊(cè)《大道之行也》
評(píng)論
0/150
提交評(píng)論