卷積碼編碼器及Viterbi譯碼器的設(shè)計(共26頁)_第1頁
卷積碼編碼器及Viterbi譯碼器的設(shè)計(共26頁)_第2頁
卷積碼編碼器及Viterbi譯碼器的設(shè)計(共26頁)_第3頁
卷積碼編碼器及Viterbi譯碼器的設(shè)計(共26頁)_第4頁
卷積碼編碼器及Viterbi譯碼器的設(shè)計(共26頁)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上畢業(yè)論文(設(shè)計)題目:卷積碼編碼器及Viterbi譯碼器的設(shè)計學(xué)生姓名: 琳 學(xué) 號: 所在系別: 電氣信息工程學(xué)院 專業(yè)名稱: 通信工程 屆 次: 指導(dǎo)教師: 目 錄專心-專注-專業(yè)卷積碼編碼器及Viterbi譯碼器的設(shè)計學(xué)生:陳琳(指導(dǎo)老師:王千春)(淮南師范學(xué)院電氣信息工程學(xué)院)摘要:本畢業(yè)設(shè)計主要解決對一個卷積碼序列進(jìn)行維特比(Viterbi)譯碼輸出,并通過Matlab軟件進(jìn)行設(shè)計與仿真,并進(jìn)行誤碼率分析。在畢業(yè)設(shè)計中,系統(tǒng)開發(fā)平臺為Windows Vista Ultimate,程序設(shè)計與仿真均采用Matlab R2007a(7.4),最后仿真詳單與理論分析

2、一致。關(guān)鍵詞:畢業(yè)論文;卷積碼譯碼器;Matlab;設(shè)計與仿真Design of the Viterbi Convolutional Code Encoder and DecoderStudent: Chen Lin(Instructor:WANG qian chun)(Electrical and information engineering college of communication engineering)Abstract :This course design mainly resolves to a convolutional code sequence for Viterb

3、i Viterbi decoding output, and through the Matlab software to carry on the design and simulation, and analysis of bit error rate. In curriculum design, system development platform for Windows Vista Ultimate, program design and simulation using Matlab R2007a (7.4), and finally the simulation list is

4、consistent with theoretical analysis.Key words :graduation thesis; Convolutional code decoder; Matlab; Design and simulation前 言本畢業(yè)設(shè)計主要解決對一個卷積碼序列進(jìn)行維特比(Viterbi)譯碼輸出,并通過Matlab軟件進(jìn)行設(shè)計與仿真。卷積碼的譯碼有兩種方法軟判決和硬判決,此畢業(yè)設(shè)計采用硬判決的維特比譯碼。隨著現(xiàn)代通信的發(fā)展,高速信息傳輸和高可靠性傳輸成為信息傳輸?shù)膬蓚€主要方面,而可靠性尤其重要。卷積碼以其高速性和可靠性在實際應(yīng)用中越來越廣泛。1967年Viterbi

5、譯碼算法的提出,使卷積碼成為信道編碼中最重要的編碼方式之一1。在對卷積碼的研究中,其中編碼器較簡單,模式也很統(tǒng)一。主要是研究提高卷積碼的譯碼速度和可靠度。譯碼算法中最重要的卷積碼的Viterbi算法問世以來,軟件仿真和實現(xiàn)都得到了迅速發(fā)展。目前,利用計算機仿真Viterbi算法,模擬在各種不同情況下(使用不同碼率、不同約束度等)卷積編碼時的譯碼性能,尋找Viterbi算法的最佳適用信道和不同要求(如誤碼率)下最優(yōu)編碼。在卷積碼中,因為Viterbi算法效率高,速度快,結(jié)構(gòu)相對簡單等特點,被廣泛應(yīng)用于各種數(shù)據(jù)傳輸系統(tǒng)。特別是深空通信、衛(wèi)星通信系統(tǒng)中。在現(xiàn)代信息處理系統(tǒng)中,需要處理的信息量越來越大

6、,實時性要求越來越高。為減少對主處理器各種資源的占用,要求通信模塊方面的大部分工作能獨立完成。因此采用Viterbi譯碼算法具有非?,F(xiàn)實的意義2。由于卷積碼的優(yōu)良特性,被廣泛的應(yīng)用于深邃通信,衛(wèi)星通信和2G及3G移動通信中,卷積碼有三種譯碼方法:門限譯碼,概率譯碼和Viterbi算法,其中Viterbi算法是一種基于網(wǎng)格圖的最大似然譯碼算法,是卷積碼的最佳譯碼方式,具有效率高、速度快等優(yōu)點。Viterbi譯碼充分發(fā)揮了卷積碼的特點,使譯碼錯誤概率達(dá)到最小,在碼的約束度教小時,它有譯碼算法效率高,速度快,譯碼也簡單的特點3。這次畢業(yè)設(shè)計研究卷積碼的編碼方法和解碼方式。編寫卷積碼的編碼和解碼程序。

7、掌握卷積碼編碼及Viterbi譯碼的基本原理。分析卷積碼編碼及Viterbi譯碼的關(guān)鍵技術(shù)。對卷積碼編碼器及Viterbi譯碼器進(jìn)行設(shè)計。用卷積碼編碼器及Viterbi譯碼器進(jìn)行仿真,并進(jìn)行性能分析。理解卷積碼的編碼和解碼原理和過程,會通過編碼和解碼程序?qū)σ恍┚矸e碼進(jìn)行仿真。對卷積碼編碼器及Viterbi譯碼器進(jìn)行仿真驗證,并分析性能。盡可能對系統(tǒng)進(jìn)行優(yōu)化。能運用MATLAB軟件進(jìn)行仿真4。1 卷積碼1.1 卷積碼基本概念 卷積碼是一種性能優(yōu)越的信道編碼。(n ,k ,N) 表示把 k 個信息比特編成 n 個比特,N 為編碼約束長度,說明編碼過程中互相約束的碼段個數(shù)。卷積碼編碼后的 n 個碼元

8、不僅與當(dāng)前組的 k 個信息比特有關(guān),而且與前 N - 1 個輸入組的信息比特有關(guān)。編碼過程中相互關(guān)聯(lián)的碼元有 N ×n 個。R = k/ n 是卷積碼 的碼率,碼率和約束長度是衡量卷積碼的兩個重要參數(shù)。 卷積碼的編碼描述方式有很多種:沖激響應(yīng)描述法、生成矩陣描述法、多項式乘積描述法、狀態(tài)圖描述,樹圖描述,網(wǎng)格圖描述等。卷積碼的糾錯能力隨著 N 的增加而增大,而差錯率隨著 N 的增加而指數(shù)下降。在編碼器復(fù)雜性相同的情況下,卷積碼的性能優(yōu)于分組碼。分組碼的譯碼算法可以由其代數(shù)特性得到。卷積碼雖然可以采用適用于分組碼的門限譯碼(即大數(shù)邏輯譯碼),但性能不如維特比譯碼和序列譯碼5。1.2 卷

9、積碼的編碼編碼輸出輸入圖1 一種卷積碼編碼器方框圖圖 1卷積碼的編碼器一般都比較簡單。下圖1是一般情況下的卷積碼編碼器框圖。它包括:一個由 N 段組成的輸入移位寄存器,每段有 k 級,共 Nk 位寄存器; 一組 n 個模 2 和相加器;一個由 n 級組成的輸出移位寄存器。對應(yīng)于每段 k 個比特的輸入序列,輸出 n 個比特。由圖可知,n 個輸出比特不但與當(dāng)前 k 個比特的輸入比特有關(guān),而且與以前的(N-1)k 個輸入信息有關(guān)。整個編碼過程可以看成是輸入信息序列與由移位寄存器和模 2 加法器的連接方式所決定的另一個序列的卷積,卷積碼由此得名。1.3 卷積碼的譯碼 卷積碼的譯碼方式有三種:(1)19

10、63 年由梅西(Massey)提出的門限譯碼,這 是一種基于碼代數(shù)結(jié)構(gòu)的代數(shù)譯碼,類似于分組碼中的大數(shù)邏輯譯碼;(2) 1963 年由費諾(Fano)改進(jìn)的序列譯碼, 這是基于碼的樹狀圖結(jié)構(gòu)上的一種準(zhǔn)最佳的概 率譯碼;(3) 1967 年由維特比提出的 Viterbi 算法。這是基于碼的網(wǎng)(trellis) 圖基礎(chǔ)上的一種最大似然譯碼算法,是一種最佳的概率譯碼方法。其中,代數(shù)譯 碼,利用編碼本身的代數(shù)結(jié)構(gòu)進(jìn)行譯碼,不考慮信道本身的統(tǒng)計特性。該方法的硬件實現(xiàn)簡單,但性能較差,其中具有典型意義的是門限譯碼。另一類是概率譯碼,這種譯碼通常建立在最大似然準(zhǔn)則的基礎(chǔ)上。由于計算是用到了信道的統(tǒng)計特性.因

11、而提高了譯碼性能,但這種性能的提高是以增加硬件的復(fù)雜度為代價的。常用的概率譯碼方法有維特比譯碼和序列譯碼。維特比譯碼具有最佳性能,但硬件實現(xiàn)復(fù)雜;門限譯碼性能最差,但硬件簡單;序列譯碼在性能和硬件方面介于維特比譯碼和門限譯碼之間6。1.4 卷積碼的 Viterbi 譯碼 卷積碼概率譯碼的基本思路是:以接收碼流為基礎(chǔ),逐個計算它與其他所有可能出現(xiàn)的、連續(xù)的網(wǎng)格圖路徑的距離,選出其中可能性最大的一條作為譯碼估值輸出。概率最大在大多數(shù)場合可解釋為距離最小,這種最小距離譯碼體現(xiàn)的正是最大似然的準(zhǔn)則。 卷積碼的最大似然譯碼與分組碼的最大似然譯碼在原理上是一樣的,但實現(xiàn)方法上略有不同。主要區(qū)別在于:分組碼

12、是孤立地求解單個碼組的相似度,而卷積碼是求碼字序列之間的相似度?;诰W(wǎng)格圖搜索的譯碼是實現(xiàn)最大似然判決的重要方法和途徑。用格圖描述時,由于路徑的匯聚消除了樹狀圖中的多余度,譯碼過程中只需考慮整個路徑集合中那些使似然函數(shù)最大的路徑。如果在某一點上發(fā)現(xiàn)某條路徑已不可能獲得最大對數(shù)似然函數(shù),就放棄這條路徑,然后在剩下的“幸存”路徑中重新選擇路徑。這樣一直進(jìn)行到最后第L級(L為發(fā)送序列的長度)。由于這種方法較早地丟棄了那些不可能的路徑7。1.4.1 維特比譯碼原理采用概率譯碼的基本思想是:把已接收序列與所有可能的發(fā)送序列做比較,選擇其中碼距最小的一個序列作為發(fā)送序列。如果發(fā)送L組信息比特,那么對于(n

13、,k)卷積碼來說,可能發(fā)送的序列有2kL個,計算機或譯碼器需存儲這些序列并進(jìn)行比較,以找到碼距最小的那個序列。當(dāng)傳信率和信息組數(shù)L較大時,使得譯碼器難以實現(xiàn)。維特比算法則對上述概率譯碼做了簡化,以至成為了一種實用化的概率算法。它并不是在網(wǎng)格圖上一次比較所有可能的2kL條路徑(序列),而是接收一段,計算和比較一段,選擇一段最大似然可能的碼段,從而達(dá)到整個碼序列是一個最大似然值得序列8。下面以圖2(a)的(2,1,3)卷積碼編碼器所編出的碼為例,來說明維特比解碼的方法和運作過程。為了能說明解碼過程,這里給出該碼的狀態(tài)圖,如圖2(b)所mjmj-1mj-2輸出序列m1,m2,mj,y1jy2j輸入序

14、列00adcb110011010110 圖2(a) (2,1,3)卷積碼編碼器 圖2(b) (2,1,3)卷積碼狀圖示。維特比譯碼需要利用圖來說明移碼過程。根據(jù)卷積碼畫網(wǎng)格的方法,我們可以畫出該碼的網(wǎng)格圖,如圖3所示。該圖設(shè)輸入信息數(shù)目L=5,所以畫L+N=8個時間單位,圖中分別標(biāo)以0至7。這里設(shè)編碼器從a狀態(tài)開始運作。該網(wǎng)格圖的每一條路徑都對應(yīng)著不同的輸入信息序列。由于所有可能輸入信息序列共有2kL個,因而網(wǎng)格圖中所有可能的路徑也為2kL條。這里節(jié)點a=00,b=01,c=10,d=11。abcd節(jié)點號012345670000000000000011111111111111110000010

15、1010101010101010101111110101010圖3 (2,1,3)卷積碼網(wǎng)格圖設(shè)輸入編碼器的信息序列為(),則由編碼器對應(yīng)輸出的序列為Y=(11100),編碼器的狀態(tài)轉(zhuǎn)移路線為abdcbdca。若收到的序列R=(11100),對照網(wǎng)格圖來說明維特比譯碼的方法9。由于該卷積碼的約束長度為6位,因此先選擇接收序列的前6位序列R1=()同到達(dá)第3時刻的可能的8個碼序列(即8條路徑)進(jìn)行比較,并計算出碼距。該例中到達(dá)第3時刻a點的路徑序列是()和(),他們與R1的距離分別為3和4;到達(dá)第3時刻b點的路徑序列是()和(),他們與R1的距離分別為3和4;到達(dá)第3時刻c點的路徑序列是()和(

16、),他們與R1的距離分別為4和1;到達(dá)第3時刻d點的路徑序列是()和(),他們與R1的距離分別為2和3。上述每個節(jié)點都保留碼距較小的路徑作為幸存路徑,所以幸存路徑碼序列是()、()、()和(),如圖4所示。用于上面類似的方法可以得到第4、5、6、7時刻的幸存路徑10。abcd節(jié)點號0123000000111111010101圖4 維特比譯碼第3時刻幸存路徑需要指出的是,對于某個節(jié)點,如果比較兩條路徑與接收序列的累計碼距值相等時,則可以任意選者一條路徑作為幸存路徑,吃時不會影響最終的譯碼結(jié)果。在碼的終了時刻a狀態(tài),得到一條幸存路徑。如果5所示。由此可看到譯碼器輸出是R=(11100),即可變換成

17、序列(),恢復(fù)了發(fā)端原始信息。比較R和R序列,可以看到在譯碼過程中已糾正了在碼序列第1和第7位上的差錯。當(dāng)然如果差錯出現(xiàn)太頻繁,以致超出卷積碼的糾錯能力,還是會發(fā)生糾誤的11。abcd節(jié)點號0123110101456780001011100圖5 第8時刻幸存路徑2.卷積碼編碼器及Viterbi譯碼器的設(shè)計系統(tǒng)方案制定 2.1 方案提出 卷積碼的譯碼方式有三種:(1)1963 年由梅西(Massey)提出的門限譯碼,這是一種基于碼代數(shù)結(jié)構(gòu)的代數(shù)譯碼,類似于分組碼中的大數(shù)邏輯譯碼;(2) 1963 年由費諾(Fano)改進(jìn)的序列譯碼,這是基于碼的樹狀圖結(jié)構(gòu)上的一種準(zhǔn)最佳的概率譯碼;(3) 1967

18、 年由維特比提出的 Viterbi 算法。這是基于碼的網(wǎng)(trellis)圖基礎(chǔ)上的一種最大似然譯碼算法,是一種最佳的概率譯碼方法12。上。由于計算是用到了信道的統(tǒng)計特性.因而提高了譯碼性能,但這種性能的提高是以增加硬件的復(fù)雜度為代價的。常用的概率譯碼方法有維特比譯碼和序列譯碼。維特比譯碼具有最佳性能,但硬件實現(xiàn)復(fù)雜;門限譯碼性能最差, 但硬件簡單;序列譯碼在性能和硬件方面介于維特比譯碼和門限譯碼之間13。 2.2 方案論證 圖6是卷積碼解碼原理圖,由此圖可見,當(dāng)信息位出現(xiàn)一個錯碼時,僅當(dāng)它位于信息位移存器的第6、3、2和1級時,才使校正子等于“1”。因此,這時校正子序列為;反之,當(dāng)監(jiān)督位出現(xiàn)

19、一個錯碼時,校正子序列將為。由此可見,當(dāng)校正子序列出現(xiàn)第一個“1”時,表示已經(jīng)檢出一個錯碼。此卷積碼除了能夠糾正兩位在約束長度中的隨機錯誤外,還能夠糾正部分多于兩位的錯誤。為了克服突發(fā)錯誤,可以采用更長的約束長度和在約束長度中能糾正更多錯誤的碼14。 6 5 4 3 2 1 門限電路:“1”的個數(shù)3?Y接受監(jiān)督位重算監(jiān)督位計算校正子圖6 (2,1,6)卷積碼解碼器原理方框圖2.3 方案選擇由于維特比解碼算法比較簡單,計算快,故得到廣泛應(yīng)用,特別是衛(wèi)星通信和蜂窩網(wǎng)通信系統(tǒng)中應(yīng)用。所以這里選擇維特比解碼。2.4 硬件實現(xiàn)定時與控制輸入與同步單元支路量度計算路徑量度的更新與存儲判決與輸出單元信息序列

20、的更新與存儲圖7譯碼器硬件實現(xiàn)方框圖3 卷積碼編碼器及Viterbi譯碼器的設(shè)計系統(tǒng)的仿真和調(diào)試 3.1 仿真軟件介紹 Matlab是英文MATrix LABoratory(矩陣實驗室)的縮寫。Matlab自1984年由MathWorks公司推向市場以來,歷經(jīng)20多年的發(fā)展和競爭,現(xiàn)在風(fēng)靡世界??煽康臄?shù)值計算和符號計算功能,強大的繪圖功能、簡單易學(xué)的語言體系以及為數(shù)眾多的應(yīng)用工具箱是Matlab區(qū)別于其他科技應(yīng)用軟件的顯著標(biāo)志6。3.2 系統(tǒng)仿真實現(xiàn)3.2.1 編碼程序%header,后面的寄存器需補零 for i=1:size(G,2)/k-1 input_matrix=coder_inpu

21、t(i*k:-1:1),zeros(1,size(G,2)-i*k); %取輸入序列的前i*k個,其后補0 gg_out=G*input_matrix'%生成矩陣和寄存器單元中的內(nèi)容相乘得到輸出 for l=1:n channel_input (n*(i-1)+l)=rem(gg_out(l),2);%進(jìn)行模二運算得到編碼器輸出 end end %body for i=size(G,2)/k:depth_of_input input_matrix=coder_input(k*i:-1:k*i-G_2+1); %取輸入序列的G-2個,即與寄存器個數(shù)相等 gg_out=G*input_ma

22、trix' for l=1:n channel_input(n*(i-1)+l)=rem(gg_out(l),2); %模二運算 end end %tailer,前面的寄存器需補零 for i=(G_2/k-1):-1:1 input_matrix=zeros(1,G_2-i*k),coder_input(depth_of_input*k:-1:(depth_of_input-i) *k+1);%前G_2-i*k個補0 gg_out=G*input_matrix' for l=1:n channel_input(n*(G_2/k-i-1)+l+depth_of_input*n)

23、=rem(gg_out(l),2); %模二運算 end 3.2.2 解碼程序for j=0:step:number_of_states-1; for l=0:2k-1 branch_metric=0;binary_output=deci2bin(output(j+1,l+1),n); %將理想輸出轉(zhuǎn)化為二進(jìn)制 for ll=1:n %計算漢明距 branch_metric=branch_metric+metric(channel_output_matrix(ll,i),binary_output(ll); end %在AWGN信道下,最大似然估計轉(zhuǎn)化為求最小漢明距 %如果下一狀態(tài)度量距離大于

24、當(dāng)前距離加漢明距,或是下一狀態(tài)未被遍歷過則設(shè)為當(dāng)前狀態(tài)下一狀態(tài)的幸存狀態(tài),當(dāng)前距離加漢明距設(shè)為下一狀態(tài)的距離 if(state_metric(nextstate(j+1,l+1)+1,2)>state_metric(j+1,1)+branch_metric)|flag(next state(j+1,l+1)+1)=0) state_metric(nextstate(j+1,l+1)+1,2)=state_metric(j+1,1)+branch_metric; %更改漢明距 survivor_state(nextstate(j+1,l+1)+1,i+1)=j; %更改幸存路徑 flag(

25、nextstate(j+1,l+1)+1)=1; end end end %開始回溯最佳路徑,從最佳路徑中找出解碼 %state_sequence(1x結(jié)點深度)矩陣, 1dep分別記載各個階段的路徑(即前一狀態(tài)數(shù))。1dep分別記載各個階段的路徑(即前一狀態(tài)數(shù))。 %從最佳路徑中產(chǎn)生解碼 %由后到前得到各級的狀態(tài) state_sequence=zeros(1,depth_of_trellis+1); state_sequence(1,depth_of_trellis)=survivor_state(1,depth_of_trellis+1); %開始回溯最佳路徑 for i=1:depth_

26、of_trellis state_sequence(1,depth_of_trellis-i+1)=survivor_state(state_sequence(1,depth_of_tre llis+2-i)+1),depth_of_trellis-i+2); end 3.3 卷積碼實現(xiàn) (3,1)卷積碼的仿真:隨機輸入一組序列,本仿真實驗中輸入的序列是:1 0 1 1 0 1 0 0。通過卷積編碼程序?qū)λ斎氲男蛄羞M(jìn)行編碼,得到卷積碼輸出,再對這個卷積碼進(jìn)行噪聲干擾,在實際通信系統(tǒng)中即相當(dāng)于在空中傳輸過程中出現(xiàn)傳輸錯誤,出現(xiàn)誤碼, 譯碼器接收到錯誤的碼字進(jìn)行解碼,理論上按照 Viterbi

27、譯碼算法可以回溯到原始的正確碼字,即正確的輸入序列?,F(xiàn)在對于編碼程序在 MATLAB 系統(tǒng)中對該實驗進(jìn)行仿真,驗證譯碼是否正確,以得出是否有差錯控制的功能,即卷積碼可以實現(xiàn)差錯控制7。 設(shè)置編碼器輸入端: 隨機輸入序列: coder_input=1 0 1 1 0 1 0 0 輸入(2,1)卷積碼的生成矩陣: G = 1 0 1 1 0 1 1 1 1;1 1 0 1 1 0 0 1 1;1 1 1 0 0 1 0 0 1 設(shè)置輸入端個數(shù): k=1則通過仿真得到編碼器輸出的卷積碼序列:channel_output= 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1

28、 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 0當(dāng)通信過程中遇到噪聲干擾,出現(xiàn)錯碼時。例如本例中將第一位、第五位、第十位和最后一位更改。得到噪聲之后的序列,之后再將噪聲之后序列送入譯碼程序進(jìn)行譯碼輸出。經(jīng)過維特比譯碼之后輸出的輸出序列理論上是原始的輸入序列,若與輸入序列相同,則驗證成功。 設(shè)置譯碼器輸入端: 編碼器輸出的卷積碼序列: channel_output= 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1

29、0 0 0 0 0 0 加了噪聲之后的序列(被送到譯碼器中進(jìn)行譯碼的序列): channel_output= 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 經(jīng)過譯碼器譯碼之后的輸出序列: decoder_output = 1 0 1 1 0 1 0 0 該序列與原始的輸入序列 coder_input=1 0 1 1 0 1 0 0相同,即還原到了原始的輸入序列,達(dá)到了糾錯的目的。驗證成功8。3.4 數(shù)據(jù)分析 解碼的結(jié)果見圖8和圖9。Here is a

30、n example of how the function step works:Consider a randomly generated stable Transfer Function Model:of the form G(s)=num(s)/den(s):num =0 0 -0.0376 0.0896 -0.0533den =1.0000 2.9737 2.8217 0.9142 0.0908圖8 解碼結(jié)果 圖9解碼仿真結(jié)果圖4 SIMULINK下仿真設(shè)計4.1 卷積碼的仿真圖10卷積碼的編譯譯碼框圖如上圖10的信號流程可以表示為先由Bernoulli Binary Generate

31、r(貝努利二進(jìn)制序列產(chǎn)生器)產(chǎn)生一個0,1等概序列,經(jīng)過Convolutional Ecoder(卷積編碼器)對輸入的二進(jìn)制序列進(jìn)行卷積編碼,并用BPSK解調(diào)制后送人Viterbi Dcoder(viterbi譯碼器)進(jìn)行硬判決譯碼。最后經(jīng)過Error Rate Caculation(誤碼統(tǒng)計)后由Display(顯示輸出)。然后通過Selector(數(shù)據(jù)選通器)將結(jié)果輸出到To workspace(工作區(qū)間)。4.2 SIMULINK模塊仿真參數(shù)設(shè)置及意義在建立如果10所示的仿真模塊后,對各個模塊分別一一進(jìn)行設(shè)置后并運行仿真圖11貝努利二進(jìn)制序列產(chǎn)生器模塊的設(shè)置框圖如上圖11是貝努利二進(jìn)制序

32、列產(chǎn)生器模塊的設(shè)置框圖,其中參數(shù)有三項:第一項probability of a zero取值為0.5,表示0和1出現(xiàn)的概率相等。Initial seed表示隨機種子數(shù),不同的隨機種子數(shù)將產(chǎn)生不同的二進(jìn)制序列,特定的隨機種子數(shù)可以產(chǎn)生特定的二進(jìn)制序列,Sample time=0.0001表示抽樣時間。也就是說輸出序列中每個二進(jìn)制符號的持續(xù)時間是0.0001秒。Samples per frame表示每幀的抽樣數(shù)用來確定每幀的抽樣點的數(shù)目。Output date type是用來確定每幀的輸出格式。圖12卷積編碼器模塊的設(shè)置框圖如上圖12所示是卷積碼編碼器模塊的設(shè)置框圖。其中,Trellis stru

33、cture(Trellis結(jié)構(gòu))中通過poly2trellis()函數(shù)把卷積碼的約束長度,生成多項式以及反饋多項式轉(zhuǎn)換成Trellis結(jié)構(gòu)中的形式。圖13 BPSK調(diào)制器模塊的設(shè)置框圖如上圖13是BPSK調(diào)制器模塊的設(shè)置框圖。Phase offset(rad)(相位偏移),這里設(shè)置為0。圖14誤比特統(tǒng)計模塊的設(shè)置框圖如上圖所示是誤比特統(tǒng)計模塊的設(shè)置框圖。Receive delay表示接收延遲,意思是在通信接收端口需要對接收到的信號進(jìn)行解調(diào),解碼或解交織而帶來一定的延遲使得到達(dá)誤碼統(tǒng)計模塊接收端的信號滯后于發(fā)送端的信號21。為了補償這種延遲,這里設(shè)置為0。Computation delay表示計

34、算延遲,在仿真過程中,有時間需要忽略最初的若干個輸入數(shù)據(jù)就通過計算延遲來實現(xiàn)。這里設(shè)置為0。Computation mode表示計算模式,幀的計算模式(Entire frame),誤碼統(tǒng)計模塊對發(fā)送端和接收端所有輸入數(shù)據(jù)進(jìn)行統(tǒng)計。Output data是輸出數(shù)據(jù),這里設(shè)置為port的意思是表示把統(tǒng)計數(shù)據(jù)從端口中輸出。Workspace表示把統(tǒng)計數(shù)據(jù)輸出到工作區(qū)22。圖15數(shù)據(jù)選通器模塊的設(shè)置框圖如圖15所示是數(shù)據(jù)選通器模塊的設(shè)置框圖。Input port width表示輸入端口的個數(shù)為3。圖16卷積碼譯碼器模塊的設(shè)置框圖如上圖16所示是卷積碼譯碼器模塊的設(shè)置框圖。Decision type是指

35、判決類型,有3種:(1)Unquantized(非量化);(2)Hard Decision(硬判決);(3)Soft Decision(軟判決)。Traceback depth表示反饋深度。它的值會影響譯碼精度和解碼延遲。Operation mode是指操作模式。在Truncated模式下,解碼器在每幀數(shù)據(jù)結(jié)束的時候總會恢復(fù)到全0狀態(tài),它與卷積編碼器的on each frame復(fù)位方式相對應(yīng)23。5 總結(jié)5.1 設(shè)計小結(jié)卷積碼是一種糾錯編碼,糾錯編碼己有五十幾年歷史,早在 1948 年,香農(nóng) (Shannon)在他的開創(chuàng)性論文“通信的數(shù)學(xué)理論”中,首次闡明了在有擾信道中實現(xiàn)可靠通信的方法,提出

36、了著名的有擾信道編碼定理,奠定了糾錯碼的基石24。 以后,糾錯碼受到了越來越多的通信和數(shù)學(xué)工作者,特別是數(shù)學(xué)家的重視,使糾錯碼無論在理論上還是在實際中都得到了飛速發(fā)展。 通過編寫卷積碼的編碼和解碼程序,并且用MATLAB 仿 真軟件對 TD-SCDMA 系統(tǒng)的卷積碼編解碼進(jìn)行仿真,進(jìn)行糾錯驗證可以看出卷積碼編譯碼對差錯控制有很大的應(yīng)用。 通過對譯碼算法的仿真,可以看出,維特比譯碼器設(shè)備比較簡單,計算速度快,因而 Viterbi 譯碼器被廣泛應(yīng)用于各種領(lǐng)域。尤其在衛(wèi)星和深空通信中得到廣泛應(yīng)用,在解決碼間串?dāng)_和數(shù)據(jù)壓縮中也可應(yīng)用25。5.2 收獲體會了解了卷積碼的原理及其編碼和譯碼原理,同時掌握了

37、如何用用MATLAB對其進(jìn)行仿真。卷積碼具有糾錯功能,適合于各種領(lǐng)域。此畢業(yè)設(shè)計對整個通信系統(tǒng)包含的編碼、傳輸和譯碼都進(jìn)行了設(shè)計與仿真,從這些過程中我們看到了通信系統(tǒng)的基本工作原理。通過整個卷積碼系統(tǒng)的設(shè)計與仿真,使我們加深了對卷積碼的理解,掌握維特比譯碼的基本思路,知道如何進(jìn)行誤碼率分析從而選者合適的信道傳輸信號,更重要的是學(xué)會了使用Matlab作為學(xué)習(xí)工具來對我們的通信系統(tǒng)進(jìn)行設(shè)計和仿真等操作,這對我們以后的學(xué)習(xí)和工作有著重要意義26。5.3 展望現(xiàn)代通信中,隨著信號序列的傳輸速率的不斷提高,要求卷積碼譯碼的速度也要不斷提高,Viterbi 譯碼由于充分利用信號序列統(tǒng)計概率的特性而具有最佳

38、性能。信道編碼的應(yīng)用領(lǐng)域主要包括深空通信、衛(wèi)星通信、數(shù)據(jù)傳輸、移動通信、文件傳輸和數(shù)字音頻/視頻傳輸?shù)取>矸e編碼作為信道編碼方式中最重要一種,被廣泛使用于衛(wèi)星通信、無人機測控、深空通信、移動通信、水聲通信等數(shù)字通信系統(tǒng),甚至被采納到某些無線通信的標(biāo)準(zhǔn)之中,如 GSM、IS.95 和 CDMA2000 的標(biāo)準(zhǔn)。在衛(wèi)星通信中,碼率為 1/2 和 1/3 的卷積碼己經(jīng)成為商業(yè)衛(wèi)星通信系統(tǒng)中的標(biāo)準(zhǔn)編碼方法。在無人機測控中,與傳統(tǒng)的信道改善控制指令傳輸誤碼的方式比較,利用卷積碼對無人機遙控信道進(jìn)行編碼,在一定信道條件下,其控制指令傳輸誤碼有明顯下降。在碼速率不增加的條件下,無人機系統(tǒng)控制指令傳輸可靠性得

39、到明顯改善27。參考文獻(xiàn):1. 曹沛先.卷積碼的編碼及其 Viterbi 譯碼的計算機模擬J. 無線電工 程,1994,24(8): 24-28. 2. 張普珩.Viterbi 譯碼算法的研究與實現(xiàn)D.湖南:國防科學(xué)技術(shù)大學(xué)研究生院, 2008.3. 孟夏, 申敏, 王飛.TD-SCDMA 中(2,1,9)卷積編碼及其 VITERBI 譯碼算法的 S IMULINK S-FUNCTION 實現(xiàn)J.通信技術(shù),2008,41(8):26-30. 4. 張傳達(dá) , 李小文 . 卷積碼編碼及其 Viterbi 譯碼的實現(xiàn)J. 無線電工 程,2006,36(7):45-47.5.通信原理(第六版)樊昌信

40、,曹麗娜編著國防工業(yè)出版社;6.MATLAB程序設(shè)計與應(yīng)用(第二版)劉衛(wèi)國主編高等教育出版社7.徐莉, 羅新民, 徐燕紅.卷積碼的 MATLAB 仿真及其性能研究J.現(xiàn)代電子技術(shù),2006,64(11):64-66. 8.肖學(xué)云,信道編碼的研究及其在 TD-SCDMA 中的應(yīng)用與實現(xiàn)D.北京:北 京郵電大學(xué),2006. 9. 宋鏡業(yè),信道編碼識別技術(shù)研究D.西安:西安電子科技大學(xué),2009. Series.IRE10. 龐沁華, 吳偉陵.通信原理M.北京:北京郵電出版社,2008.11.李建東,郭梯云,鄔國揚著 移動通信第四版 出版社:西安電子科技大學(xué)出版社 2006,712 樊昌信,曹麗娜著

41、 通信原理第六版 出版社:國防工業(yè)出版社2011,113 劉衛(wèi)國主編 MATLAB程序設(shè)計與應(yīng)用第二版 出版社:高等教育出版社2011,114 張輝,曹麗娜編著 現(xiàn)代通信原理與技術(shù) 出版社:西安電子科技大學(xué)出版社 200215 曹志剛,錢亞生著 現(xiàn)代通信原理 出版社:清華大學(xué)出版社 199216 王興亮,達(dá)新宇著 數(shù)字通信原理與技術(shù)第二版 出版社:西安電子科技大學(xué)出版社 200417 桑林,郝建軍,劉丹譜著 數(shù)字通信 出版社:北京郵電大學(xué)出版社18 曹興雯,劉乃安,陳健等著 高頻電路原理與分析 出版社:西安電子科技大學(xué)出版社 200119 張圣勤著 MATLAB7.0實用教材 出版社:機械工業(yè)

42、出版社 200620 鄧華著 MATLAB通信仿真及應(yīng)用實例詳解 出版社:人民郵電出版社 200321 C.E.Shannon.A Mathematic Theory of Communications.Bell syst,Tech.J.1948,Vol 27.22 D.J.Costello,J.Hagenauer&H.Imai.Applications of Error-Control Coding,IEEE Trans.On Information Theory,1998,Vol 44.23 M.J.Golay.Complementary Series.IRE Trans.Info

43、.Theory.Vol.IT-7,pp82-87,1981. 24V.D.Goppa.ANewClassofLinearError-correctingCodes.Probl,Inform,Trans,1990.vol.6.pp207-212. 附錄1 編碼程序%header,后面的寄存器需補零 for i=1:size(G,2)/k-1 input_matrix=coder_input(i*k:-1:1),zeros(1,size(G,2)-i*k); %取輸入序列的前i*k個,其后補0 gg_out=G*input_matrix'%生成矩陣和寄存器單元中的內(nèi)容相乘得到輸出 for

44、l=1:n channel_input (n*(i-1)+l)=rem(gg_out(l),2);%進(jìn)行模二運算得到編碼器輸出 end end %body for i=size(G,2)/k:depth_of_input input_matrix=coder_input(k*i:-1:k*i-G_2+1); %取輸入序列的G-2個,即與寄存器個數(shù)相等 gg_out=G*input_matrix' for l=1:n channel_input(n*(i-1)+l)=rem(gg_out(l),2); %模二運算 end end %tailer,前面的寄存器需補零 for i=(G_2/k-1):-1:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論