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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

語法調試、斷點調試和日志保存

析統(tǒng)計和跟蹤本章小結

2-2ccs本章著重介紹DSP的特點與集成開發(fā)環(huán)境 CCS。本論文選用的是TMS320C54x系列的DSP芯片一是因為C54X系列因其片內特殊的單元結構,能夠快速完成Viterbi運算,其二是由于數(shù)字化時代的到來已經(jīng)是一個不可逆轉的趨勢,數(shù)字產(chǎn)品必將代替模擬產(chǎn)品,而數(shù)字信號處理(DSP)正是這場數(shù)字化革命的核心。卷積碼的理論基礎卷積碼的概述卷積碼基本原理卷積碼通常記作k,然后按照既定編碼規(guī)則,kn,構成一個碼字。N,代表編碼后的n,而且與前面N-1k/N,N的增加呈指數(shù)下降[17]。219)卷積碼編碼器的基本結構。c 編碼輸出0信息比特(輸入)c 編碼輸出1圖3-1(2,1,9)編碼器結構卷積碼的糾錯能力卷積碼N*n來表示。(距離是指兩個碼字中對應位取值不同的個數(shù)因此不同的譯碼方法就有不同的距離度量。本文采用了的譯碼方式是概率譯碼——Viterbidf(n,k,N)dfN+1(df-1)/2(向下取整)[1]。精選資料精選資料卷積碼的表示方法卷積編碼可以用生成多項式表示,如果我們將參與異或的位設為1異或的位設為0,那么對應于c0可以得到一個二進制碼字111101011,對應于c1可以得到一個二進制碼字101110001。這就是卷積碼生成的碼字,只要生成G1(D)1D2D3D4D8 (3-1)G0(D)1DD2D3D5D7D8 (3-2)式(3-1)和(3-2)中,D代表時延算子,D的冪表示延遲時間單元數(shù),D表示延遲t即上個時刻輸入碼元2表示延遲t即上兩個時刻輸入碼元,以此類推。假設輸入碼元序列為111101011. ,用時延算子表示為U(D)1DD2D3D5D7... (3-3)則輸出編碼序列也可用時延算子表示為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符號*c0,c1u的卷積,這就是卷積碼名稱的由來。當然,我們也可以用圖解法表示,如碼樹圖、狀態(tài)圖和網(wǎng)格圖。通過卷積碼的幾何描述表示,可以非常清楚和直觀地觀察編碼和解碼的過程。324(011。按時間展開,對應每個狀態(tài)值指出去的上支路(實線)0,下支路(虛線)13-2狀態(tài)a(00)b(01)c(10)d(11)圖3-2卷積碼網(wǎng)格圖同樣按時間展開,還可以生成(2,1,3)卷積碼的樹狀圖,如圖3-3所示。00000000輯00011101001起始 11狀態(tài) 0010精選資料精選資料可修改編輯可修改編輯ViterbiRMM’RMM’MCRCC’C’=CM’=M確譯碼。R時,譯碼器的條件譯碼錯誤概率定義為P(E/R)P(CC'/R) (3-6)所以譯碼器的錯誤譯碼概率:EP P(E/R)P(R) (3-7)EP(R)R碼規(guī)則是使PE

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

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

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

/R)P(Ci

)P(R/Ci

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

最小,即使P(Ci

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

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

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

x3x4

x8

(4-2)(2,1,9)卷積碼編碼設計方案由上面的討論可知,編碼的實質就是在已知狀態(tài)的情況下,由輸入0或c0c101c0c1。c0c1的值可以通過公式和來求得,即c0c0c1c0c1,即所要求的輸出。1/2的卷積碼,一幀有96bit960、109696w192wa96(2,1,9)卷積碼編碼流程圖開始開始B90后,最低位取輸入信息wA取輸入信息wAB累加器的特定位異或產(chǎn)生cc ,01wa空間B累加器左移1位,最低位取輸入信息w否96次?是結束圖4-1編碼流程圖(2,1,9)卷積編碼程序實現(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)轉換表33能夠清楚地反映各個狀態(tài)之間的轉移關系。而本文所討論的Viterbi譯碼的關鍵序得到(2,1,9)卷積碼的狀態(tài)之間的關系。(2,1,9)卷積碼狀態(tài)轉換表的設計算法(2,1,9)280000000011111111。狀態(tài)轉換0、10000000011111111時產(chǎn)生的c0c110、1,那么c00,1,2,3,5,7,8c10,2,3,4,8(2,1,9)卷積碼狀態(tài)轉換表的流程圖開始開始B90A0A累加器與B累加器的特定位異或產(chǎn)生cc 存入wa空間01A1A累加器與B累加器的特定位異或產(chǎn)生cc 存入wa空間01B1否256次?是是結束圖4-4狀態(tài)表流程圖4.2.3(2,1,9)卷積碼狀態(tài)表表4-1(2,1,9)狀態(tài)轉換表分支初始分支到達初始分支到達初始分支到達初始分支到達輸入狀態(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到達狀態(tài)表示初始狀態(tài)通過(2,1,9)卷積編碼器得到的新的狀態(tài)。例:在(2,1,9)卷積編碼器中,若初始狀態(tài)為00000000,用十進制表示即為0,輸入序列為1011,求輸出序列和狀態(tài)變化情況。4-111,11;初始狀態(tài)為1,分支輸入為02,分支輸出102,分支輸入為1500;511110。即11100010。4.2.4(2,1,9)卷積碼狀態(tài)表的蝶形結構通過對(2,1,9)卷積碼的觀察與對(2,1,9)卷積碼的理解,我們可以得到一些(2,1,9)Viterbi-t-ti t -t-ti+2 2i+1t4-5(2,1,9)卷積碼的蝶形結構8i10i7(i01。abi00000011i3313106a=01b=10a與b呈按位相異關系。即a10b1100ia01i、i+128態(tài)。0127tab_statetab_statetab_state:

時的分支輸出。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實現(xiàn)1/296bit192bit的輸出信息。在編碼器的基礎上,我們又用DSP獲得了卷積碼的狀態(tài)tab_stateViterbi精選資料精選資料ViterbiViterbiViterbi的工作,主要就是尋找網(wǎng)格圖中的這一最大似然路徑。本課題研究的卷積碼在Viterbi譯碼網(wǎng)格圖上,總共2k(N-1)=256220N-1N-1=8256256N=99256”也稱為“碟型”運算,是i在每一級中都有256條幸存路徑,當序列發(fā)送完畢后,為了判斷最后的結88080譯碼所得的路徑。所以我們可以從最末級的狀態(tài)反推出幸存路徑,也稱作回溯。ViterbiViterbi器在狀態(tài)轉移圖上所走過的路徑。Viterbi5-1開始開始可修改編輯初始化精選資料精選資料可修改編輯可修改編輯ViterbibefaftR=1/C (5-1)sdnGn(J)J是路徑指示值,C為編碼速率的倒數(shù)。將上述展開得(5-2)其中所有的分支的 和都是相等的??梢圆豢紤]其值進行路徑度量值比較的時候。所有我們可以有個簡化的公式(5-3)1/2為 其中Gn(J)與sdn都用雙極性來表示,即+10,-1T0T1T0=+sd0+sd1,T1=+sd0-sd1Viterbisdtab_intab_in400、01、10、11,我們如果T5-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)轉換表400011011。通過上述公式4T25-2tab_in_fcANDt分支輸出值分支度量值分支度量正負分支度量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存儲輸出序列。tab_ttab_in5-2tab_in_tT0T1的值。i6i[0]和輸入序列tab_in4-7tab_statei[2]、i[3i[1]tab_in5-2tab_in_fcANDtT。011i[4]表示輸入信息的級數(shù)。i[5]表示初始化時,i[4]級最多的初始狀態(tài)最大值。cache2bef_2DSPdadstdsadt。bef256數(shù)組aft記錄碟算后256個節(jié)點的度量值。tab_trn895初始化前面提到當從全0狀態(tài)開始討論時由于網(wǎng)格圖的前8條連續(xù)支路構成的路82562565-2“0”“1”的轉移路徑。+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字,分別對應256個狀態(tài)的分支度量值。加-比-選9299Viterbi9256丟棄一半,結果留存下來的路徑總數(shù)保持常數(shù)。上述譯碼過程的基本操作就是“加—比—選,每級求出對歐氏距離累計值,下可以任意選擇其中一條作為幸存路徑。在圖4-5(2,1,9)卷積碼的蝶形結構中我們提到這圖有助于我們理解Viterbi譯碼?,F(xiàn)在我們結合本章的內容對圖4-5進行整理歸納,可以得到倆種基本結構,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碟型運算的基本形式22.1.2DSPCCSUViterbiCCSU用。bfly_a.macrossbxc16dadst*ar3,a0i+Ti+128-Tdsadt*ar3,b1i-Ti+128+Tcmpsa,*ar4+;比較選擇存儲到達狀態(tài)2i的路徑精選資料精選資料cmpsrsbx.endm

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

.macrossbxdsadtdadstcmpscmpsrsbx.endm

c16*ar3,a;分支輸入為0時,狀態(tài)i-T,狀態(tài)i+128+T*ar3,b1i+Ti+128-Ta,*ar42ib,*ar4+;比較選擇存儲到達狀態(tài)2i+1的路徑c16bfly_a5-62bfly_b5-51bfly_abfly_bi到到達狀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存儲所選路徑的兩個基本類型加-比選流程圖初始化初始化可修改編輯i0,i48,ar5=87T精選資料精選資料是否否是否是加-比選程序仿真可修改編輯可修改編輯精選資料精選資料圖5-9加-比-選仿真5-9beftab_trnft96-8=88回溯000000000000000000000000tab_trn記錄的選擇進行回溯。tab_trn116bit16256161tab_trn級的路徑選擇情況,所以需要88*16=1408字的空間。每個比特中存儲的都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)卷積碼的蝶形結構,由于回溯是從到達狀態(tài)反推初始狀態(tài),所以我們可以整理歸納,得到回溯蝶形結構圖,如圖5-10所示。jj+1

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

j/2j/2+1精選資料精選資料0<5j211;當?shù)竭_狀態(tài)為偶數(shù)時,即用200。0tab_trn00m。將m=16*x+ym82m4m4tab_trnxym958804-1(2,1,9)狀態(tài)轉換表查得分支輸入值?;厮萘鞒虉D加加-比-選0由到達狀態(tài)得分支輸入值查tab_trn,更新到達狀態(tài)可修改編輯精選資料精選資料回溯仿真圖圖5-12譯碼輸入可修改編輯可修改編輯精選資料精選資料可修改編輯可修改編輯圖5-13譯碼輸出5-125-134-24-3ViterbiViterbi下面做的是Viterbi譯碼程序糾正隨機差錯的嘗試,在原來的輸入的最后一列輸入信息全部出錯。更改后的輸入序列如圖5-14所示。圖5-14錯誤的輸入序列經(jīng)過Viterbi譯碼程序后,我們得到糾錯譯碼輸出,如圖5-15所示。圖5-15糾錯譯碼輸出5-155-12譯碼輸出,發(fā)現(xiàn)二者一模一樣,成功Viterbi本章小結本章對Viterbi3DSP行編寫,并對每個模塊進行了仿真測試。最后驗證了Viterbi譯碼具有糾正錯誤的能力??偨YN-CDMATIDSPCCS1/2(2,1,9)卷積碼編譯碼。(2,1,3)卷積碼為例分ViterbiViterbi然后,開始了解糾錯能力更強但復雜較高的(2,1,9)卷積碼Viterbi譯碼器。從(2,1,3)Viterbi3Viterbi數(shù)據(jù),也就是說程序起了作用。參考文獻]胥凌燕李定志i譯碼碟型算法的實現(xiàn)及性能分析.通信技術[2]陳源、江修富 Viterbi算法的關鍵問題研究及DSP實現(xiàn)[J].裝備指揮技術學院學報,2005.10[3]趙冰 卷積編碼及基于DSP的Viterbi譯碼器設[J].信息與控制,2002.10[4]方向前、魏平俊基于DSP的Viterbi譯碼[J].半導體技術,2005.6[5]張慎 卷積碼編碼器及Viterbi譯碼器的設計[J],成:電子科技大學[6]強秀麗、劉黨輝、秦桂枝(2,1,7)維特比譯碼器的并行算法實現(xiàn)[J].指揮技術學院學報,2000.12楊風開 DSP原理及應[M].武漢:華中科技大學出版社,2012汪安民 TMS320C54xxDSP應用技術[M].北京:清華大學出版社,2002.7[9]樊昌信、曹麗娜通信原[M].北京:國防工業(yè)出版社,2012.1李建東、郭梯云、鄔國揚 移動通信[M].西安:西安電子科技大學出版社2012.11石文孝 通信網(wǎng)理論與應[M].成都:電子工業(yè)出版社,2012.5[12]周霖 DSP信號處理技術應[M].北京:國防工業(yè)出版社,2004.1[13]李利、李迎春DSP原理及應用[M].北京:中國水利水電出版社,2012.11[14DSPViterbi[J].電子工程師,2008.10曹雪虹、張宗橙信息論與編碼[M].北京:清華大學出版社,2009.2周沖、胡劍浩、張忠培CDMAViterbi[J].通信技術,2009.12鄔國楊、孫獻璞蜂窩通信[M].西安:西安電子科技大學出版社,2002.6移動通信原理[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存對應的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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論