卷積碼的Viterbi譯碼設(shè)計(jì)設(shè)計(jì)_第1頁
卷積碼的Viterbi譯碼設(shè)計(jì)設(shè)計(jì)_第2頁
卷積碼的Viterbi譯碼設(shè)計(jì)設(shè)計(jì)_第3頁
卷積碼的Viterbi譯碼設(shè)計(jì)設(shè)計(jì)_第4頁
卷積碼的Viterbi譯碼設(shè)計(jì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

精選資料精選資料可修改編輯可修改編輯摘要積碼已廣泛應(yīng)用在無線通信標(biāo)準(zhǔn)中,如和IS-95等無線通信標(biāo)準(zhǔn)中。針對N-CDMA數(shù)據(jù)傳輸過程中的誤碼問題,本文論述了旨在提高數(shù)據(jù)傳輸質(zhì)量的維特比譯碼器的設(shè)計(jì)。雖然Viterbi譯碼復(fù)雜度較大,實(shí)現(xiàn)較為困難,但效率高,速度快。1/2(2,1,9)ViterbiViterbi算法原理后,提出了(2,1,9)卷積碼編碼以及ViterbiTMS320C54X系列DSP卷積碼編碼和Viterbi譯碼的程序。關(guān)?詞:差錯(cuò)控制編碼、卷積碼、Viterbi譯碼、TMS320C54X、DSPAbstractIndigitalcommunicationsystems,errorcontrolcodingisusuallyusedtoimprovesystemreliability.SinceP.Eliasputforwardtheconvolutionalcodingthefirsttime,thecodingisstillshowingstrongvitality.,hasbecomewidelyusedinsatellitecommunications,wirelesscommunicationsandmanyothercommunicationsystemsasakindofchannelcodingmethod.suchasGSM,CDMA2000andhasbeenawirelesscommunicationstandardsofIS-95.InviewoftheerrorproblemintheprocessofN-CDMAdatatransmission,thispaperdiscussestheaimstoimprovethequalityofdatatransmissionofvictordesignthanthedecoder.AlthoughViterbidecodingcomplexityisbigger,moredifficulttoachieve,buthighefficiencyandfastspeed.Sothisarticleemphaticallyanalyzedanddiscussedthe1/2rate(2,1,9)convolutioncodecodinganditsViterbidecodingalgorithm.In-depthstudyonprincipleofconvolutioncodecodingandViterbialgorithm,proposedtheconvolutioncodecodingandViterbialgorithm(2,1,9)initialization,add-than-chooseandbackdesign,usinglook-uptablemethod,toavoidalargeamountoftediouscalculation,thedecodingandquick,goodreal-timeperformanceofthedecoder.MakefulluseoftheseriesofTMS320C54XDSPchip,usingassemblylanguagetocompletethe(2,1,9)convolutioncodecodingandViterbidecodingprocess.Keywords:errorcontrolcoding,convolutionalcode,Viterbidecoding,TMS320C54X目錄摘要 1Abstract 2目錄 3緒論 1移動(dòng)通信及N-CDMA背景 1數(shù)字通信概述 1卷積編碼與譯碼的發(fā)展 3主要研究工作 3DSP與CCS簡介 5DSP概述 5DSP的主要特點(diǎn) 5CSSU單元概述 7CCS概述 8本章小結(jié) 8卷積碼的理論基礎(chǔ) 9卷積碼的概述 9卷積碼基本原理 9卷積碼的糾錯(cuò)能力 9卷積碼的表示方法 10Viterbi譯碼的概述 11本章小結(jié) 14卷積編碼的實(shí)現(xiàn) 154.1(2,1,9)卷積碼編碼 154.1.1(2,1,9)卷積碼編碼設(shè)計(jì)方案 154.1.2(2,1,9)卷積碼編碼流程圖 164.1.3(2,1,9)卷積編碼程序?qū)崿F(xiàn) 164.1.4(2,1,9)的程序仿真 174.2(2,1,9)卷積碼狀態(tài)轉(zhuǎn)換表 17(2,1,9)卷積碼狀態(tài)轉(zhuǎn)換表的設(shè)計(jì)算法 18(2,1,9)卷積碼狀態(tài)轉(zhuǎn)換表的流程圖 184.2.3(2,1,9)卷積碼狀態(tài)表 184.2.4(2,1,9)卷積碼狀態(tài)表的蝶形結(jié)構(gòu) 214.3本章小結(jié) 22Viterbi譯碼的實(shí)現(xiàn) 23Viterbi譯碼基礎(chǔ) 23Viterbi譯碼算法 23變量定義情況 25初始化 26初始化流程圖 27初始化程序仿真 275.5加-比-選 28加-比-選流程圖 29加-比-選程序仿真 305.6回溯 31回溯流程圖 32回溯仿真圖 33Viterbi糾錯(cuò)測試 34本章小結(jié) 34總結(jié) 36致謝 錯(cuò)誤!未定義書簽。參考文獻(xiàn) 37附錄1(9)卷積編碼器原程序 38附錄2(9)i譯碼原程序 40緒論N-CDMA而這就是移動(dòng)通信所為人們提供的服務(wù)。顧名思義,移動(dòng)通信是指通信雙方至少有一方在移動(dòng)中(或者臨時(shí)停留在一個(gè)非預(yù)定的位置上)進(jìn)行信息傳輸和交換,這包括移動(dòng)體(車輛、船舶、飛機(jī)或行人)和移動(dòng)體之間的通信,移動(dòng)體和固定點(diǎn)(固定無線電臺(tái)或有線用戶)之間的通信。擬蜂窩網(wǎng)、模擬無繩電話與模擬集群調(diào)度系統(tǒng)等)稱作第一代移動(dòng)通信(G,(第二代移動(dòng)通信系統(tǒng)主要包括廣泛使用的GSM公用移動(dòng)通信網(wǎng)和窄帶數(shù)字移動(dòng)公用網(wǎng)(N-CDMA)。N-CDMAGSM的?本區(qū)別在于采用了不同的多址技術(shù)TDMA,N-CDMACDMACDMA技術(shù)的移動(dòng)網(wǎng)有很多的優(yōu)越性,比如A(分配的碼不同,相鄰的基站CDMA移動(dòng)通信網(wǎng)的容量大,通話(時(shí)間分集、空間分集和頻率分集)和軟切換[17]。數(shù)字通信概述觀察電的信號(hào)波形,我們可以發(fā)現(xiàn)如圖1-1所示,模擬信號(hào)的波形是在自由1-21010”信號(hào)。下面將從保密性和抗干擾能力兩方面對模擬信號(hào)和數(shù)字信號(hào)進(jìn)行比較。保密性/數(shù)輸,在接收端解密后經(jīng)過數(shù)/模(D/A)轉(zhuǎn)換還原出原始信號(hào),其保密性好??垢蓴_能力模擬信號(hào)沿線路的傳輸過程中會(huì)受到外界和通信系統(tǒng)內(nèi)部的各種噪聲干擾。噪聲和信號(hào)混合后難以分開,從而使得通信質(zhì)量下降。但是,對于數(shù)字通信,盡精選資料精選資料(稱為閾值)+電壓時(shí)間- 1-1模擬信號(hào)波形高 1 0 1 1 0 1電壓時(shí)間低 圖1-2 數(shù)字信號(hào)波形稱為模/數(shù)轉(zhuǎn)換)一般要經(jīng)過抽樣、量化和編碼三個(gè)過程,最終變成一連串由“0”和“1”代表的脈沖數(shù)字信號(hào)1-3信源信源信源編碼信道編碼調(diào)制噪聲信道可修改編輯信宿信源解碼信道解碼解調(diào)精選資料精選資料可修改編輯可修改編輯卷積編碼與譯碼的發(fā)展Elias1955nk分組碼中的監(jiān)督碼元僅與本碼組的信息碼元有關(guān),而與其他碼組的信息碼元無t7在19631967ViterbiViterbi譯碼,廣泛應(yīng)用于現(xiàn)代通信中。ViterbiDSP匯編語言實(shí)現(xiàn)卷積ViterbiDSP20可以說在通信系統(tǒng)中越來越多的功能部件是采用數(shù)字信號(hào)處理技術(shù)實(shí)現(xiàn)的。主要研究工作本論文所做的工作:首先深入學(xué)習(xí)N-CDMAViterbi其次,以復(fù)雜度較低的(2,1,3)卷積碼為例,了解卷積碼的基本理論,并初步講訴了Viterbi譯碼的基礎(chǔ)算法及原理,從而為理解復(fù)雜度較高的(2,1,9)ViterbiDSPC54xViterbiCSSU單元,DSPDSPCCSCCSViterbi然后,對卷積碼譯碼器的實(shí)現(xiàn)算法進(jìn)行了研究,提出了適于運(yùn)算的算法,并完成了實(shí)現(xiàn)譯碼器的軟件設(shè)計(jì)。依次通過“初始化“加-比-選Viterbi譯碼。由于(2,1,9)較為復(fù)雜,本論文采用“查表法”來節(jié)省時(shí)間、提高效率,從而避免了大量繁瑣計(jì)算,使得譯碼簡潔迅速,。最后,CCSTMS320C54XDSPViterbi算法,用CCSViterbiViterbi譯碼器具有糾正隨機(jī)錯(cuò)誤的功能。DSP概述DSPCCS簡?DSPDigitalsignalprocessor2080儀表、家用電器等眾多領(lǐng)域得到了極為廣泛的應(yīng)用。TITMS320C54XDSPCPU134址總線,因而在一個(gè)周期內(nèi)可以從程序存儲(chǔ)器取1條指令、從數(shù)據(jù)存儲(chǔ)器讀個(gè)操作數(shù)和向數(shù)據(jù)存儲(chǔ)器寫1ViterbiALU(算術(shù)邏輯單元)結(jié)合使用,利用專用的指令CMPS使得碟型運(yùn)算中的相加、比較和選擇操作更Viterbi譯碼的性能。DSP的主要特點(diǎn)DSP的主要結(jié)構(gòu)特點(diǎn)可以概括為以下幾點(diǎn):哈佛結(jié)構(gòu)總線結(jié)構(gòu)可以分為兩種。一種是馮·諾依曼結(jié)構(gòu),另一種是哈佛結(jié)構(gòu)。馮·諾工藝的飛速發(fā)展,這一問題基本得到解決。傳統(tǒng)的微處理器通常采用馮·諾依曼結(jié)構(gòu),它已經(jīng)成為計(jì)算機(jī)發(fā)展的一個(gè)主要標(biāo)準(zhǔn)。哈佛結(jié)構(gòu)和馮·諾依曼結(jié)構(gòu)相比,更適合處理器具有高度實(shí)時(shí)要求的數(shù)字信DSP有兩套或者兩套以上的內(nèi)部數(shù)TIDSP采用改進(jìn)型的哈佛結(jié)構(gòu),改進(jìn)之處有三點(diǎn)。第一,數(shù)據(jù)總線和程間,大大提高了運(yùn)行速度。流水線技術(shù)DSPADSPTITMS320C545對于流水線編程還有一個(gè)延遲間隙(DelaySlot)95%—100%。特殊的指令系統(tǒng)DSP芯片通常都有一套自己的特殊指令,這個(gè)指令系統(tǒng)都是專門為數(shù)字信號(hào)處理而設(shè)計(jì)的。采用硬件乘法器DSPDSP支持多種尋址方式DSP處理大量的數(shù)據(jù),這些數(shù)據(jù)都存放在片內(nèi)或者片外存儲(chǔ)器上。伴隨著DSP通常都有支持地址計(jì)ALU并行工作,因此地址的計(jì)算CPUDSPDSP的地址產(chǎn)生器一般都支持間接尋址。高速的時(shí)鐘周期和強(qiáng)大的處理能力DSPDSP200MHz600MHz~800MHz,處理能力將達(dá)到(4800~6400)/sTI2010DSP3×10E6/s。設(shè)有片內(nèi)存儲(chǔ)器和內(nèi)存接口DSPROM(存儲(chǔ)程序)和(存儲(chǔ)數(shù)據(jù),但是集成有高速緩存(ePDSP芯片內(nèi)可以減少指DSPRAM,用于存放參數(shù)和數(shù)據(jù)。片內(nèi)數(shù)據(jù)存儲(chǔ)器不存在DSP強(qiáng)大?處理能力。CSSU單元概述TMS320C54XViterbi算法設(shè)計(jì)?加法、比較、選擇(ACS)2-1FromaccumulatorAFromaccumulatorAFromaccumulatorBFrombarrelshiftermuxcompMSW/LSWTRN1TCEB0CSSUEB15-圖2-1CSSU功能框圖CSSUViterbiViterbiALUST1C161,ALU被設(shè)為161616CSSUCMPS指令完成比較、選擇操作。完成累加器BTRN101TRN0ST0TCViterbiCCS概述CCS是一個(gè)完整的DSP集成開發(fā)環(huán)境,包括了編輯、編譯、匯編、鏈接、軟件模擬、調(diào)試等幾乎所有需要的軟件,是目前使用最為廣泛的DSP開發(fā)軟件之一。它有兩種工作模式,一是軟件仿真器,即脫離DSP芯片,在PC上模擬DSP指令集與工作機(jī)制,主要用于前期算法和調(diào)試;二是硬件開發(fā)板相結(jié)合在線編程,即實(shí)時(shí)運(yùn)行在DSP芯片上,可以在線編制和調(diào)試應(yīng)用程序。CCS支持如圖2-2所示的開發(fā)周期的所有階段[7]。設(shè)計(jì) 編輯和編譯 調(diào)試 分析前期算法規(guī)劃

創(chuàng)建工程文配置文件

語法調(diào)試、斷點(diǎn)調(diào)試和日志保存

析統(tǒng)計(jì)和跟蹤本章小結(jié)

2-2ccs本章著重介紹DSP的特點(diǎn)與集成開發(fā)環(huán)境 CCS。本論文選用的是TMS320C54x系列的DSP芯片一是因?yàn)镃54X系列因其片內(nèi)特殊的單元結(jié)構(gòu),能夠快速完成Viterbi運(yùn)算,其二是由于數(shù)字化時(shí)代的到來已經(jīng)是一個(gè)不可逆轉(zhuǎn)的趨勢,數(shù)字產(chǎn)品必將代替模擬產(chǎn)品,而數(shù)字信號(hào)處理(DSP)正是這場數(shù)字化革命的核心。卷積碼的理論基礎(chǔ)卷積碼的概述卷積碼基本原理卷積碼通常記作k,然后按照既定編碼規(guī)則,kn,構(gòu)成一個(gè)碼字。N,代表編碼后的n,而且與前面N-1k/N,N的增加呈指數(shù)下降[17]。219)卷積碼編碼器的基本結(jié)構(gòu)。c 編碼輸出0信息比特(輸入)c 編碼輸出1圖3-1(2,1,9)編碼器結(jié)構(gòu)卷積碼的糾錯(cuò)能力卷積碼N*n來表示。(距離是指兩個(gè)碼字中對應(yīng)位取值不同的個(gè)數(shù)因此不同的譯碼方法就有不同的距離度量。本文采用了的譯碼方式是概率譯碼——Viterbidf(n,k,N)dfN+1(df-1)/2(向下取整)[1]。精選資料精選資料卷積碼的表示方法卷積編碼可以用生成多項(xiàng)式表示,如果我們將參與異或的位設(shè)為1異或的位設(shè)為0,那么對應(yīng)于c0可以得到一個(gè)二進(jìn)制碼字111101011,對應(yīng)于c1可以得到一個(gè)二進(jìn)制碼字101110001。這就是卷積碼生成的碼字,只要生成G1(D)1D2D3D4D8 (3-1)G0(D)1DD2D3D5D7D8 (3-2)式(3-1)和(3-2)中,D代表時(shí)延算子,D的冪表示延遲時(shí)間單元數(shù),D表示延遲t即上個(gè)時(shí)刻輸入碼元2表示延遲t即上兩個(gè)時(shí)刻輸入碼元,以此類推。假設(shè)輸入碼元序列為111101011. ,用時(shí)延算子表示為U(D)1DD2D3D5D7... (3-3)則輸出編碼序列也可用時(shí)延算子表示為C1(D)U(D)G1(D) (3-4)C0(D)U(D)G0(D)

(3-5)C1(D),C0(DC0,C1。可以證明,式和c1=u*g1c0=u*g0符號(hào)*c0,c1u的卷積,這就是卷積碼名稱的由來。當(dāng)然,我們也可以用圖解法表示,如碼樹圖、狀態(tài)圖和網(wǎng)格圖。通過卷積碼的幾何描述表示,可以非常清楚和直觀地觀察編碼和解碼的過程。324(011。按時(shí)間展開,對應(yīng)每個(gè)狀態(tài)值指出去的上支路(實(shí)線)0,下支路(虛線)13-2狀態(tài)a(00)b(01)c(10)d(11)圖3-2卷積碼網(wǎng)格圖同樣按時(shí)間展開,還可以生成(2,1,3)卷積碼的樹狀圖,如圖3-3所示。00000000輯00011101001起始 11狀態(tài) 0010精選資料精選資料可修改編輯可修改編輯ViterbiRMM’RMM’MCRCC’C’=CM’=M確譯碼。R時(shí),譯碼器的條件譯碼錯(cuò)誤概率定義為P(E/R)P(CC'/R) (3-6)所以譯碼器的錯(cuò)誤譯碼概率:EP P(E/R)P(R) (3-7)EP(R)R碼規(guī)則是使PE

最小,這等價(jià)于使P(C'C/R)最小,亦即使P(C'C/R)最大。因此,如果譯碼器對輸入的R,能在2K個(gè)碼字中選擇一個(gè)使P(C'i

C/R),i=1,2,…2K最大的碼字Ci

C的估值序列C,則這種譯碼規(guī)則一定使譯碼器輸出錯(cuò)誤概率最小,稱這種譯碼規(guī)則為最大后驗(yàn)概率譯。由貝葉斯公式P(Ci

/R)P(Ci

)P(R/Ci

)/P(R) (3-8)i可知,若發(fā)端發(fā)送每個(gè)碼字的概率P(C)均相同,且由于P(R)與譯碼方法無i關(guān),所以使PE

最小,即使P(Ci

/R)最大,這等價(jià)于使P(R/C)最大。一個(gè)譯碼器iC中選擇某一個(gè)Ci

使上式最大,則這種譯碼規(guī)則稱為最大似然譯碼。而對于無記憶二進(jìn)制對稱信道,最大似然又等價(jià)于使?jié)h明距離d(RC)最小[15]。ii2kL條路徑(序列,而是接收一段,計(jì)算、比較、選擇一段最可能的碼段(分支序列是一個(gè)由最大似然函數(shù)的序列。Viterbij=Njj1j<L+N徑。NL,網(wǎng)格圖中2kN狀態(tài)中的每一個(gè)有一條幸存路徑,共有2kNLL+N0這條路徑就是要找的最大似然函數(shù)的路徑,也就是譯碼輸出序列。現(xiàn)在仍用(2,1,3)卷積碼的例子說明維特比譯碼的原理,此編碼器的基本結(jié)3-5[15]。2-501110010并且假110001001011004狀態(tài)輸入序列輸入序列MMjMj-1Mj-2x1x2輸出序列X圖3-4(2,1,3)卷積編碼基本結(jié)構(gòu)由于這是一個(gè)(n,k,N)=(2,1,3)N=3,所661013-54acd488aa000,101”的漢明距離等于;下面一條102ad83-18徑和其漢明距離?,F(xiàn)在將達(dá)到的每個(gè)狀態(tài)的兩條路徑的漢明距離作比較,將距離最小的一條保留,稱為幸存路徑。如這兩天的漢明距離相同。則可以任意保留一條。這要就剩下4條路徑了,即在表中的第2、4、6、8條的路徑。表3-1維特比算法解碼第一步運(yùn)算結(jié)果序號(hào)路徑對應(yīng)序列距離幸否存序號(hào)路徑對應(yīng)序列距離幸否存1aaaa0000003否5aabc0011106否2abca1110112是6abdc1101011是3aaab0000113否7aabd0011014否4abcb1110002是8abdd1101103是20483-71abdc+b110101。它和發(fā)送序列相同,故對11013-23-61)的路徑。表3-2維特比算法譯碼第二步計(jì)算結(jié)果序號(hào)路徑原幸存路徑距新增路徑段新增距離總距離幸存否離1abca+a2aa02否2abdc+a1ca23否3abca+b2ab24否4abdc+b1cb01是5abcb+c2bc13否6abdd+c3dc14否7abcb+d2bd13否8abdd+d3dd14否100為結(jié)尾而補(bǔ)充的0a。11110000001010111110000001010101狀態(tài)(狀態(tài)c狀態(tài)

1圖3-6對應(yīng)信息位“1101”的幸存路徑網(wǎng)格圖3-64的最后一位。因此3-8a→b→d→c→ba、b、dcb011011101,與輸入序列相同,即還原出原始信息。Viterbi可應(yīng)用。本章小結(jié)Viterbi譯碼起到促進(jìn)我們理解的作用。Viterbi譯碼重點(diǎn)研究、介紹。最后以(2,1,3)卷積碼譯碼Viterbi卷積編碼的實(shí)現(xiàn)4.1(2,1,9)卷積碼編碼(2,1,9)卷積碼的編碼器是由八個(gè)移位寄存器和兩個(gè)模2221進(jìn)入信道被傳輸?shù)奈粩?shù)的比率。常常用延遲算子多項(xiàng)式來描述卷積碼。圖3-1所示系統(tǒng)的多項(xiàng)式為:0g(x)1xx2x5x6x7x8 (4-1)0g(x)1x21

x3x4

x8

(4-2)(2,1,9)卷積碼編碼設(shè)計(jì)方案由上面的討論可知,編碼的實(shí)質(zhì)就是在已知狀態(tài)的情況下,由輸入0或c0c101c0c1。c0c1的值可以通過公式和來求得,即c0c0c1c0c1,即所要求的輸出。1/2的卷積碼,一幀有96bit960、109696w192wa96(2,1,9)卷積碼編碼流程圖開始開始B90后,最低位取輸入信息wA取輸入信息wAB累加器的特定位異或產(chǎn)生cc ,01wa空間B累加器左移1位,最低位取輸入信息w否96次?是結(jié)束圖4-1編碼流程圖(2,1,9)卷積編碼程序?qū)崿F(xiàn)B908c0B0,1,2,3,5,7,8B0,2,3,4,8A10A1c,0c,Awa96192卷積碼。ABc0ld*ar2,a;a==b0xorb,-1,a;a==b0xorb1xorb,-2,a;a==b0xorb1xorb2xorb,-3,a;a==b0xorb1xorb2xorb3xorb,-5,a;a==b0xorb1xorb2xorb3xorb5xorb,-7,a;a==b0xorb1xorb2xorb3xorb5xorb7xorb,-8,a;a==b0xorb1xorb2xorb3xorb5xorb8rolaand#2,a;a1放c04.1.4(2,1,9)的程序仿真4-2CCS96bit,w空間的數(shù)據(jù)圖4-2編碼輸入192bitwa空間的數(shù)據(jù)圖4-3編碼輸出Waw空間的數(shù)據(jù)經(jīng)過(2,1,9)卷積后得到的卷積碼。(2,1,9)卷積碼狀態(tài)轉(zhuǎn)換表33能夠清楚地反映各個(gè)狀態(tài)之間的轉(zhuǎn)移關(guān)系。而本文所討論的Viterbi譯碼的關(guān)鍵序得到(2,1,9)卷積碼的狀態(tài)之間的關(guān)系。(2,1,9)卷積碼狀態(tài)轉(zhuǎn)換表的設(shè)計(jì)算法(2,1,9)280000000011111111。狀態(tài)轉(zhuǎn)換0、10000000011111111時(shí)產(chǎn)生的c0c110、1,那么c00,1,2,3,5,7,8c10,2,3,4,8(2,1,9)卷積碼狀態(tài)轉(zhuǎn)換表的流程圖開始開始B90A0A累加器與B累加器的特定位異或產(chǎn)生cc 存入wa空間01A1A累加器與B累加器的特定位異或產(chǎn)生cc 存入wa空間01B1否256次?是是結(jié)束圖4-4狀態(tài)表流程圖4.2.3(2,1,9)卷積碼狀態(tài)表表4-1(2,1,9)狀態(tài)轉(zhuǎn)換表分支初始分支到達(dá)初始分支到達(dá)初始分支到達(dá)初始分支到達(dá)輸入狀態(tài)輸出狀態(tài)狀態(tài)輸出狀態(tài)狀態(tài)輸出狀態(tài)狀態(tài)輸出狀態(tài)0 0 001 110 1 101 010 2 111 000 3 011 100 4 111 000 5 011 100 6 001 110 7 101 010 8 011 100 9 111 000 10 101 010 11 001 110 12 101 010 13 001 110 14 011 100 15 111 000 16 101 010 17 001 110 18 011 100 19 111 000 20 011 100 21 111 000 22 101 010 23 001 110 24 111 000 25 011 100 26 001 110 27 101 01

0 64 101 012 65 003 114 66 015 106 67 117 008 68 019 1010 69 1111 0012 70 1013 0114 71 0015 1116 72 1117 0018 73 0119 1020 74 0021 1122 75 1023 0124 76 0025 1126 77 1027 0128 78 1129 0030 79 0131 1032 80 0033 1134 81 1035 0136 82 1137 0038 83 0139 1040 84 1141 0042 85 0143 1044 86 0045 1146 87 1047 0148 88 0149 1050 89 1151 0052 90 1053 0154 91 0055 11

128 1100129 0110130 0011131 1001132 0011133 1001134 1100135 0110136 1001137 0011138 0110139 1100140 0110141 1100142 1001143 0011144 0110145 1100146 1001147 0011148 1001149 0011150 0110151 1100152 0011153 1001154 1100155 0110

0 192 011 102 193 113 004 194 105 016 195 007 118 196 109 0110 197 0011 1112 198 0113 1014 199 1115 0016 200 0017 1118 201 1019 0120 202 1121 0022 203 0123 1024 204 1125 0026 205 0127 1028 206 0029 1130 207 1031 0132 208 1133 0034 209 0135 1036 210 0037 1138 211 1039 0140 212 0041 1142 213 1043 0144 214 1145 0046 215 0147 1048 216 1049 0150 217 0051 1152 218 0153 1054 219 1155 00

1281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821830 28 001 110 29 101 010 30 111 000 31 011 100 32 001 110 33 101 010 34 111 000 35 011 100 36 111 000 37 011 100 38 001 110 39 101 010 40 011 100 41 111 000 42 101 010 43 001 110 44 101 010 45 001 110 46 011 100 47 111 000 48 101 010 49 001 110 50 011 100 51 111 000 52 011 100 53 111 000 54 101 010 55 001 11

5657585960616263646566676869707172737475767778798081828384858687888990919293949596979899

92 100193 001194 011095 110096 100197 001198 011099 1100100 0110101 1100102 1001103 0011104 1100105 0110106 0011107 1001108 0011109 1001110 1100111 0110112 0011113 1001114 1100115 0110116 1100117 0110118 0011119 1001

156 1100157 0110158 0011159 1001160 1100161 0110162 0011163 1001164 0011165 1001166 1100167 0110168 1001169 0011170 0110171 1100172 0110173 1100174 1001175 0011176 0110177 1100178 1001179 0011180 1001181 0011182 0110183 1100

5657585960616263646566676869707172737475767778798081828384858687888990919293949596979899

220 0110221 1100222 1001223 0011224 0110225 1100226 1001227 0011228 1001229 0011230 0110231 1100232 0011233 1001234 1100235 0110236 1100237 0110238 0011239 1001240 1100241 0110242 0011243 1001244 0011245 1001246 1100247 0110

18418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823905611112120012401840011224810240100113102411111301241057011141211124218510114249002421101150024301115112430158001111611712210012442451861100116117250011024424501591001118119123001124624718701101181192511100246247060001201241024818811120252012481111210124900121102490161100112212312500112502511890110122123253110025025106211124126012521900012425410252100125102531112501253063011261271125419110126255002541101270025501127112554-1到達(dá)狀態(tài)表示初始狀態(tài)通過(2,1,9)卷積編碼器得到的新的狀態(tài)。例:在(2,1,9)卷積編碼器中,若初始狀態(tài)為00000000,用十進(jìn)制表示即為0,輸入序列為1011,求輸出序列和狀態(tài)變化情況。4-111,11;初始狀態(tài)為1,分支輸入為02,分支輸出102,分支輸入為1500;511110。即11100010。4.2.4(2,1,9)卷積碼狀態(tài)表的蝶形結(jié)構(gòu)通過對(2,1,9)卷積碼的觀察與對(2,1,9)卷積碼的理解,我們可以得到一些(2,1,9)Viterbi-t-ti t -t-ti+2 2i+1t4-5(2,1,9)卷積碼的蝶形結(jié)構(gòu)8i10i7(i01。abi00000011i3313106a=01b=10a與b呈按位相異關(guān)系。即a10b1100ia01i、i+128態(tài)。0127tab_statetab_statetab_state:

時(shí)的分支輸出。Viterbi譯碼.word0,2,3,.word0,2,3,1,3,1,0,2,1,3,2,0,2,0,1,3,2,0,1.word3,1,3,2,0,3,1,0,2,0,2,3,1,0,2,3,1,3,1.word0,2,1,3,2,0,2,0,1,3,2,0,1,3,1,3,2,0,3.word1,0,2,0,2,3,1,2,0,1,3,1,3,2,0,3,1,0,2.word0,2,3,1,0,2,3,1,3,1,0,2,1,3,2,0,2,0,1.word3,2,0,1,3,1,3,2,0,3,1,0,2,0,2,3,1,0,2.word3,1,3,1,0,2,1,3,2,0,2,0,1,3DSP實(shí)現(xiàn)1/296bit192bit的輸出信息。在編碼器的基礎(chǔ)上,我們又用DSP獲得了卷積碼的狀態(tài)tab_stateViterbi精選資料精選資料ViterbiViterbiViterbi的工作,主要就是尋找網(wǎng)格圖中的這一最大似然路徑。本課題研究的卷積碼在Viterbi譯碼網(wǎng)格圖上,總共2k(N-1)=256220N-1N-1=8256256N=99256”也稱為“碟型”運(yùn)算,是i在每一級(jí)中都有256條幸存路徑,當(dāng)序列發(fā)送完畢后,為了判斷最后的結(jié)88080譯碼所得的路徑。所以我們可以從最末級(jí)的狀態(tài)反推出幸存路徑,也稱作回溯。ViterbiViterbi器在狀態(tài)轉(zhuǎn)移圖上所走過的路徑。Viterbi5-1開始開始可修改編輯初始化精選資料精選資料可修改編輯可修改編輯ViterbibefaftR=1/C (5-1)sdnGn(J)J是路徑指示值,C為編碼速率的倒數(shù)。將上述展開得(5-2)其中所有的分支的 和都是相等的??梢圆豢紤]其值進(jìn)行路徑度量值比較的時(shí)候。所有我們可以有個(gè)簡化的公式(5-3)1/2為 其中Gn(J)與sdn都用雙極性來表示,即+10,-1T0T1T0=+sd0+sd1,T1=+sd0-sd1Viterbisdtab_intab_in400、01、10、11,我們?nèi)绻鸗5-15-1tab_in_tTab_inTab_inT0T100200102100-211-20DSP中,我們可以這樣定義。tab_in_t:.word2,0.word0,2.word0,-2.word-2,0對于(2,1,9)的卷積碼來講,期望輸入值就是表4-1(2,1,9)狀態(tài)轉(zhuǎn)換表400011011。通過上述公式4T25-2tab_in_fcANDt分支輸出值分支度量值分支度量正負(fù)分支度量T00+T00001+T10110-T11111-T010”用0-”用10011TT,DSP中這樣定義。tab_in_fcANDt:.word0,0,0,1,1,1,1,0變量定義情況.bss.bss

output,96tab_t,2;t0.bss i,6 ;i,*i,func,T,countercol,counterln.bss cache,2.bss bef_2,2.bss bef,256.bss aft,256.bss tab_trn,1408 ;8~9588*256/16數(shù)組output存儲(chǔ)輸出序列。tab_ttab_in5-2tab_in_tT0T1的值。i6i[0]和輸入序列tab_in4-7tab_statei[2]、i[3i[1]tab_in5-2tab_in_fcANDtT。011i[4]表示輸入信息的級(jí)數(shù)。i[5]表示初始化時(shí),i[4]級(jí)最多的初始狀態(tài)最大值。cache2bef_2DSPdadstdsadt。bef256數(shù)組aft記錄碟算后256個(gè)節(jié)點(diǎn)的度量值。tab_trn895初始化前面提到當(dāng)從全0狀態(tài)開始討論時(shí)由于網(wǎng)格圖的前8條連續(xù)支路構(gòu)成的路82562565-2“0”“1”的轉(zhuǎn)移路徑。+T+T-T狀態(tài)i 狀態(tài)2i 狀態(tài)j +T+T-T

狀態(tài)2i狀態(tài)2i+1 狀態(tài)2i+1圖5-2狀態(tài)展開兩種基本模塊DSPdadstDSPdsadtii101Ttab_inTOT1。始化。開始i0開始i0i0==i5j=i5T由i0更新i1i2、i3dadstdsadt是(--j)≥0?否i4++,i5=2*i5+1否i4=8?是加-比選圖5-3初始化流程圖初始化程序仿真圖5-4初始化程序仿真8bef256字,分別對應(yīng)256個(gè)狀態(tài)的分支度量值。加-比-選9299Viterbi9256丟棄一半,結(jié)果留存下來的路徑總數(shù)保持常數(shù)。上述譯碼過程的基本操作就是“加—比—選,每級(jí)求出對歐氏距離累計(jì)值,下可以任意選擇其中一條作為幸存路徑。在圖4-5(2,1,9)卷積碼的蝶形結(jié)構(gòu)中我們提到這圖有助于我們理解Viterbi譯碼?,F(xiàn)在我們結(jié)合本章的內(nèi)容對圖4-5進(jìn)行整理歸納,可以得到倆種基本結(jié)構(gòu),5-55-6i

-T+T+T-T+T+T-T狀態(tài)i+1285-5

狀態(tài)2i+1狀態(tài)i狀態(tài)i+128

+T-T-T狀態(tài)-T-T+T 狀態(tài)圖5-6碟型運(yùn)算的基本形式22.1.2DSPCCSUViterbiCCSU用。bfly_a.macrossbxc16dadst*ar3,a0i+Ti+128-Tdsadt*ar3,b1i-Ti+128+Tcmpsa,*ar4+;比較選擇存儲(chǔ)到達(dá)狀態(tài)2i的路徑精選資料精選資料cmpsrsbx.endm

b,*ar4+;比較選擇存儲(chǔ)到達(dá)狀態(tài)2i+1的路徑c16bfly_b

.macrossbxdsadtdadstcmpscmpsrsbx.endm

c16*ar3,a;分支輸入為0時(shí),狀態(tài)i-T,狀態(tài)i+128+T*ar3,b1i+Ti+128-Ta,*ar42ib,*ar4+;比較選擇存儲(chǔ)到達(dá)狀態(tài)2i+1的路徑c16bfly_a5-62bfly_b5-51bfly_abfly_bi到到達(dá)狀DSPii[2]i[2]=0bfly_ai[2]=1bfly_b。*ar3bef_22i+128*ar4aftaftbefaftbefbefaftar3aftbefbefaft擇度量值大路徑保存,而丟棄另一條路徑。將上面的路徑記為015-70、1tab_trn狀態(tài)i

0狀態(tài)2i0

i

0狀態(tài)2i+1011狀態(tài)i+128 狀態(tài)i+12811圖5-7存儲(chǔ)所選路徑的兩個(gè)基本類型加-比選流程圖初始化初始化可修改編輯i0,i48,ar5=87T精選資料精選資料是否否是否是加-比選程序仿真可修改編輯可修改編輯精選資料精選資料圖5-9加-比-選仿真5-9beftab_trnft96-8=88回溯000000000000000000000000tab_trn記錄的選擇進(jìn)行回溯。tab_trn116bit16256161tab_trn級(jí)的路徑選擇情況,所以需要88*16=1408字的空間。每個(gè)比特中存儲(chǔ)的都0”或“1”,為“0”則表示選擇兩條路徑中上面的一條。為“1”則表示選擇兩條路CMPS語句完成的。例:CMPSA,*AR4+說明:比較A累加器的低16位和高16位,把較大值放在*AR4中。如果A(31-16)>A(15-0)A(31-16)送人*AR4TRN10TRN0*AR4A(15-0TRN10CMPS語句完成后16bittab_trn根據(jù)圖4-5(2,1,9)卷積碼的蝶形結(jié)構(gòu),由于回溯是從到達(dá)狀態(tài)反推初始狀態(tài),所以我們可以整理歸納,得到回溯蝶形結(jié)構(gòu)圖,如圖5-10所示。jj+1

0(trn)1(trn)可修改編輯1(trn)可修改編輯0(trn)

j/2j/2+1精選資料精選資料0<5j211;當(dāng)?shù)竭_(dá)狀態(tài)為偶數(shù)時(shí),即用200。0tab_trn00m。將m=16*x+ym82m4m4tab_trnxym958804-1(2,1,9)狀態(tài)轉(zhuǎn)換表查得分支輸入值?;厮萘鞒虉D加加-比-選0由到達(dá)狀態(tài)得分支輸入值查tab_trn,更新到達(dá)狀態(tài)可修改編輯精選資料精選資料回溯仿真圖圖5-12譯碼輸入可修改編輯可修改編輯精選資料精選資料可修改編輯可修改編輯圖5-13譯碼輸出5-125-134-24-3ViterbiViterbi下面做的是Viterbi譯碼程序糾正隨機(jī)差錯(cuò)的嘗試,在原來的輸入的最后一列輸入信息全部出錯(cuò)。更改后的輸入序列如圖5-14所示。圖5-14錯(cuò)誤的輸入序列經(jīng)過Viterbi譯碼程序后,我們得到糾錯(cuò)譯碼輸出,如圖5-15所示。圖5-15糾錯(cuò)譯碼輸出5-155-12譯碼輸出,發(fā)現(xiàn)二者一模一樣,成功Viterbi本章小結(jié)本章對Viterbi3DSP行編寫,并對每個(gè)模塊進(jìn)行了仿真測試。最后驗(yàn)證了Viterbi譯碼具有糾正錯(cuò)誤的能力。總結(jié)N-CDMATIDSPCCS1/2(2,1,9)卷積碼編譯碼。(2,1,3)卷積碼為例分ViterbiViterbi然后,開始了解糾錯(cuò)能力更強(qiáng)但復(fù)雜較高的(2,1,9)卷積碼Viterbi譯碼器。從(2,1,3)Viterbi3Viterbi數(shù)據(jù),也就是說程序起了作用。參考文獻(xiàn)]胥凌燕李定志i譯碼碟型算法的實(shí)現(xiàn)及性能分析.通信技術(shù)[2]陳源、江修富 Viterbi算法的關(guān)鍵問題研究及DSP實(shí)現(xiàn)[J].裝備指揮技術(shù)學(xué)院學(xué)報(bào),2005.10[3]趙冰 卷積編碼及基于DSP的Viterbi譯碼器設(shè)[J].信息與控制,2002.10[4]方向前、魏平俊基于DSP的Viterbi譯碼[J].半導(dǎo)體技術(shù),2005.6[5]張慎 卷積碼編碼器及Viterbi譯碼器的設(shè)計(jì)[J],成:電子科技大學(xué)[6]強(qiáng)秀麗、劉黨輝、秦桂枝(2,1,7)維特比譯碼器的并行算法實(shí)現(xiàn)[J].指揮技術(shù)學(xué)院學(xué)報(bào),2000.12楊風(fēng)開 DSP原理及應(yīng)[M].武漢:華中科技大學(xué)出版社,2012汪安民 TMS320C54xxDSP應(yīng)用技術(shù)[M].北京:清華大學(xué)出版社,2002.7[9]樊昌信、曹麗娜通信原[M].北京:國防工業(yè)出版社,2012.1李建東、郭梯云、鄔國揚(yáng) 移動(dòng)通信[M].西安:西安電子科技大學(xué)出版社2012.11石文孝 通信網(wǎng)理論與應(yīng)[M].成都:電子工業(yè)出版社,2012.5[12]周霖 DSP信號(hào)處理技術(shù)應(yīng)[M].北京:國防工業(yè)出版社,2004.1[13]李利、李迎春DSP原理及應(yīng)用[M].北京:中國水利水電出版社,2012.11[14DSPViterbi[J].電子工程師,2008.10曹雪虹、張宗橙信息論與編碼[M].北京:清華大學(xué)出版社,2009.2周沖、胡劍浩、張忠培CDMAViterbi[J].通信技術(shù),2009.12鄔國楊、孫獻(xiàn)璞蜂窩通信[M].西安:西安電子科技大學(xué)出版社,2002.6移動(dòng)通信原理[M],2009AJ.ErrorBoundsforConvolutionalCodesandAnAsymptoticallyOptimumDecodingAlgorithm[J].IEEETransactionsonInformationTheory,1967(13):260-269.[20]CHI-YINGTSUI,ROGERS-K.CHENGandCURTISLING.LowPowerRakeReceiverandViterbiDecoderDesignforCDMAApplications.Wirelessls:9,附錄1:(2,1,9)卷積編碼器原程序.title "juanji.asm".def_c_int00_c_int00:.mmregs.bss w,96.bss wa,96.datadata_w:.word1,0,1,1,1,1,0,0,0,0.word1,1,1,1,0,0,0,0,0,0.word0,0,0,0,1,0,1,0,1,1.word1,1,0,1,1,0,1,1,0,1.word1,0,0,1,0,1,0,0,0,0.word1,0,1,0,0,0,0,1,0,1.word1,0,1,1,0,1,0,0,0,1.word1,1,0,1,1,0,1,1,0,1.word1,0,1,1,0,0,0,1,0,0.word0,0,0,0,0,0.textld #data_w,astm #w,ar2rpt #95readaloop0:

ld #0,bld #0,astm #95,ar7stm #w,ar2stm #wa,ar3and add*ar2,bld*ar2,a;a==b0xorb,-1,a;a==b0xorb1xorb,-2,a;a==b0xorb1xorb2xorb,-3,a;a==b0xorb1xorb2xorb3xorb,-5,a;a==b0xorb1xorb2xorb3xorb5xorb,-7,a;a==b0xorb1xorb2xorb3xorb5xorb7xorb,-8,a;a==b0xorb1xorb2xorb3xorb5xorb8rolaand#2,a ;a1stla,*ar3ld*ar2+,axorb,-2,axorb,-3,axorb,-4,axorb,-8,aand#1,axor*ar3,astlrolbnopbanz nop.end2:(2,1,9)Viterbi.title "viterbi9.asm".def_c_int00_c_int00:.mmregs.bss output,96.bss tab_t,2;t0t1.bss i,6 ;i,*i,func,T,countercol,counterln.bss cache,2.bss.bss.bss.bss.datatab_state:3,2,0,1.word

bef_2,2bef,256aft,256tab_trn,1408;8~9588*256/160,2,3,1,3,1,0,2,1,3,2,0,2,0,1,3,1,3,2,0,3,1,0,2,0,2,3,1,0,2,3,3,3,0,3,

3,10,30,20,10,2.word

0,2,1,3,2,0,2,0,1,3,2,0,1,3,1,1,0,2,0,2,3,1,2,0,1,3,1,3,2,0,0,2,3,1,0,2,3,1,3,1,0,2,1,3,2,3,2,0,1,3,1,3,2,0,3,1,0,2,0,2,3,1,3,1,0,2,1,3,2,0,2,0,1,3tab_in_fcANDt:.word0,0,0,1,1,1,1,0 ;00+t0\01+t1\10-t1\11-t0 0t001t11tab_in:.word0x0003,0x0002,0x0000,0x0002,0x0003,0x0003,0x0003,0x0001,0x0003,0x0003.word0x0000,0x0000,0x0003,0x0002,0x0003,0x0003,0x0000,0x0001,0x0003,0x0003.word0x0001,0x0003,0x0000,0x0000,0x0003,0x0002,0x0000,0x0001,0x0001,0x0003.word0x0003,0x0001,0x0000,0x0002,0x0002,0x0000,0x0000,0x0002,0x0003,0x0003.word0x0001,0x0003,0x0001,0x0003,0x0000,0x0001,0x0003,0x0003,0x0002,0x0003.word0x0003,0x0001,0x0002,0x0002,0x0002,0x0001,0x0001,0x0003,0x0001,0x0003.word0x0001,0x0000,0x0001,0x0003,0x0000,0x0002,0x0002,0x0001,0x0002,0x0003.word0x0002,0x0001,0x0000,0x0001,0x0001,0x0002,0x0003,0x0002,0x0003,0x0003.word0x0001,0x0003,0x0002,0x0001,0x0003,0x0001,0x0000,0x0001,0x0003,0x0003.word0x0002,0x0002,0x0002,0x0000,0x0002,0x0003tab_in_t:.word2,0.word0,2.word0,-2.word-2,0.textbfly_a.macrossbxc16dadst*ar3,adsadt*ar3,bcmpsa,*ar4+cmpsb,*ar4+bfly_b

rsbx c16.endm.macrossbxdsadtdadstcmpscmpsrsbx.endm

c16*ar3,a*ar3,ba,*ar4+b,*ar4+c16.if1 ;befaft、tab_trn0stm#bef,ar2rpt#255st#0,*ar2+stm#aft,ar2rpt#255st#0,*ar2+stm#tab_trn,ar2rpt#240st#0,*ar2+.endif************************初始化**********************************;;;;;;;;i0stm #i,ar2rpt #5st #0,*ar2+ld #i,dp;;;;;;;;大循環(huán)loop1:;;;;;;;;j=i5i0=i5ld i+5,astl mvkd#i+5h,i;;;;;;;;tab_t存對應(yīng)的t0t1 stm #cache,ar7ld #tab_in,aaddreadaldaddstmadd6

i+4,a*ar7*ar7,aa,a#tab_t,ar5#tab_in_t,a;00《》0,01《》2,10《》4,11《》reada *ar5+ ;a送到數(shù)據(jù)段,并數(shù)據(jù)段指針+1t0add #1,areada *ar5 nop;;;;;;;小循環(huán)loop2:;;;;;;;;由i0得i1,由i1得i2與i3ld i+0,aadd #tab_state,areadai+1 ld i+1,aadd i+1,aadd #tab_in_fcANDt,areadai+2 ;+-add #1,areadai+3 ;t0ort1;;;;;;;;T寄存器存t0ort1 ld #tab_t,aadd i+3,astlm nopnopld *ar2,t;;;;;;;bef_2[0]=bef[i0]bef[1]=bef[i0]ld i,aadd #bef,astlm a,ar2stm nopmvdd*ar2,*ar3+mvdd*ar2,*ar3nopstm #bef_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論