版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)論文(設(shè)計(jì))題目:卷積碼編碼器及Viterbi譯碼器的設(shè)計(jì)學(xué)生姓名: 琳 學(xué) 號(hào): 所在系別: 電氣信息工程學(xué)院 專業(yè)名稱: 通信工程 屆 次: 指導(dǎo)教師: 目 錄前言21 卷積碼31.1卷積碼基本概念31.2 卷積碼的編碼41.3 卷積碼的譯碼41.4 卷積碼的 Viterbi 譯碼52.卷積碼編碼器及Viterbi譯碼器的設(shè)計(jì)系統(tǒng)方案制定82.1 方案提出82.2 方案論證82.3方案選擇92.4硬件實(shí)現(xiàn)103.卷積碼編碼器及Viterbi譯碼器的設(shè)計(jì)系統(tǒng)的仿真和調(diào)試103.1仿真軟件介紹103.2 系統(tǒng)仿真實(shí)現(xiàn)103.3 卷積碼實(shí)現(xiàn)123.4 數(shù)據(jù)分析144 SIMULINK下仿真設(shè)
2、計(jì)154.1卷積碼的仿真154.2 SIMULINK模塊仿真參數(shù)設(shè)置及意義165總結(jié)205.1 設(shè)計(jì)小結(jié)205.2收獲體會(huì)205.3 展望216參考文獻(xiàn):21淮南師范學(xué)院2013屆本科畢業(yè)論文卷積碼編碼器及Viterbi譯碼器的設(shè)計(jì)學(xué)生:陳琳(指導(dǎo)老師:王千春)(淮南師范學(xué)院電氣信息工程學(xué)院)摘要:本畢業(yè)設(shè)計(jì)主要解決對(duì)一個(gè)卷積碼序列進(jìn)行維特比(Viterbi)譯碼輸出,并通過Matlab軟件進(jìn)行設(shè)計(jì)與仿真,并進(jìn)行誤碼率分析。在畢業(yè)設(shè)計(jì)中,系統(tǒng)開發(fā)平臺(tái)為Windows Vista Ultimate,程序設(shè)計(jì)與仿真均采用Matlab R2007a(7.4),最后仿真詳單與理論分析一致。關(guān)鍵詞:畢業(yè)
3、論文;卷積碼譯碼器;Matlab;設(shè)計(jì)與仿真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 Viterbi Viterbi
4、 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 consisten
5、t with theoretical analysis.Key words :graduation thesis; Convolutional code decoder; Matlab; Design and simulation前 言本畢業(yè)設(shè)計(jì)主要解決對(duì)一個(gè)卷積碼序列進(jìn)行維特比(Viterbi)譯碼輸出,并通過Matlab軟件進(jìn)行設(shè)計(jì)與仿真。卷積碼的譯碼有兩種方法軟判決和硬判決,此畢業(yè)設(shè)計(jì)采用硬判決的維特比譯碼。隨著現(xiàn)代通信的發(fā)展,高速信息傳輸和高可靠性傳輸成為信息傳輸?shù)膬蓚€(gè)主要方面,而可靠性尤其重要。卷積碼以其高速性和可靠性在實(shí)際應(yīng)用中越來越廣泛。1967年Viterbi譯碼算法的提出,使
6、卷積碼成為信道編碼中最重要的編碼方式之一1。在對(duì)卷積碼的研究中,其中編碼器較簡單,模式也很統(tǒng)一。主要是研究提高卷積碼的譯碼速度和可靠度。譯碼算法中最重要的卷積碼的Viterbi算法問世以來,軟件仿真和實(shí)現(xiàn)都得到了迅速發(fā)展。目前,利用計(jì)算機(jī)仿真Viterbi算法,模擬在各種不同情況下(使用不同碼率、不同約束度等)卷積編碼時(shí)的譯碼性能,尋找Viterbi算法的最佳適用信道和不同要求(如誤碼率)下最優(yōu)編碼。在卷積碼中,因?yàn)閂iterbi算法效率高,速度快,結(jié)構(gòu)相對(duì)簡單等特點(diǎn),被廣泛應(yīng)用于各種數(shù)據(jù)傳輸系統(tǒng)。特別是深空通信、衛(wèi)星通信系統(tǒng)中。在現(xiàn)代信息處理系統(tǒng)中,需要處理的信息量越來越大,實(shí)時(shí)性要求越來越
7、高。為減少對(duì)主處理器各種資源的占用,要求通信模塊方面的大部分工作能獨(dú)立完成。因此采用Viterbi譯碼算法具有非常現(xiàn)實(shí)的意義2。由于卷積碼的優(yōu)良特性,被廣泛的應(yīng)用于深邃通信,衛(wèi)星通信和2G及3G移動(dòng)通信中,卷積碼有三種譯碼方法:門限譯碼,概率譯碼和Viterbi算法,其中Viterbi算法是一種基于網(wǎng)格圖的最大似然譯碼算法,是卷積碼的最佳譯碼方式,具有效率高、速度快等優(yōu)點(diǎn)。Viterbi譯碼充分發(fā)揮了卷積碼的特點(diǎn),使譯碼錯(cuò)誤概率達(dá)到最小,在碼的約束度教小時(shí),它有譯碼算法效率高,速度快,譯碼也簡單的特點(diǎn)3。這次畢業(yè)設(shè)計(jì)研究卷積碼的編碼方法和解碼方式。編寫卷積碼的編碼和解碼程序。掌握卷積碼編碼及V
8、iterbi譯碼的基本原理。分析卷積碼編碼及Viterbi譯碼的關(guān)鍵技術(shù)。對(duì)卷積碼編碼器及Viterbi譯碼器進(jìn)行設(shè)計(jì)。用卷積碼編碼器及Viterbi譯碼器進(jìn)行仿真,并進(jìn)行性能分析。理解卷積碼的編碼和解碼原理和過程,會(huì)通過編碼和解碼程序?qū)σ恍┚矸e碼進(jìn)行仿真。對(duì)卷積碼編碼器及Viterbi譯碼器進(jìn)行仿真驗(yàn)證,并分析性能。盡可能對(duì)系統(tǒng)進(jìn)行優(yōu)化。能運(yùn)用MATLAB軟件進(jìn)行仿真4。1 卷積碼1.1 卷積碼基本概念 卷積碼是一種性能優(yōu)越的信道編碼。(n ,k ,N) 表示把 k 個(gè)信息比特編成 n 個(gè)比特,N 為編碼約束長度,說明編碼過程中互相約束的碼段個(gè)數(shù)。卷積碼編碼后的 n 個(gè)碼元不僅與當(dāng)前組的 k
9、 個(gè)信息比特有關(guān),而且與前 N - 1 個(gè)輸入組的信息比特有關(guān)。編碼過程中相互關(guān)聯(lián)的碼元有 N ×n 個(gè)。R = k/ n 是卷積碼 的碼率,碼率和約束長度是衡量卷積碼的兩個(gè)重要參數(shù)。 卷積碼的編碼描述方式有很多種:沖激響應(yīng)描述法、生成矩陣描述法、多項(xiàng)式乘積描述法、狀態(tài)圖描述,樹圖描述,網(wǎng)格圖描述等。卷積碼的糾錯(cuò)能力隨著 N 的增加而增大,而差錯(cuò)率隨著 N 的增加而指數(shù)下降。在編碼器復(fù)雜性相同的情況下,卷積碼的性能優(yōu)于分組碼。分組碼的譯碼算法可以由其代數(shù)特性得到。卷積碼雖然可以采用適用于分組碼的門限譯碼(即大數(shù)邏輯譯碼),但性能不如維特比譯碼和序列譯碼5。1.2 卷積碼的編碼編碼輸出
10、輸入圖1 一種卷積碼編碼器方框圖圖 1卷積碼的編碼器一般都比較簡單。下圖1是一般情況下的卷積碼編碼器框圖。它包括:一個(gè)由 N 段組成的輸入移位寄存器,每段有 k 級(jí),共 Nk 位寄存器; 一組 n 個(gè)模 2 和相加器;一個(gè)由 n 級(jí)組成的輸出移位寄存器。對(duì)應(yīng)于每段 k 個(gè)比特的輸入序列,輸出 n 個(gè)比特。由圖可知,n 個(gè)輸出比特不但與當(dāng)前 k 個(gè)比特的輸入比特有關(guān),而且與以前的(N-1)k 個(gè)輸入信息有關(guān)。整個(gè)編碼過程可以看成是輸入信息序列與由移位寄存器和模 2 加法器的連接方式所決定的另一個(gè)序列的卷積,卷積碼由此得名。1.3 卷積碼的譯碼 卷積碼的譯碼方式有三種:(1)1963 年由梅西(M
11、assey)提出的門限譯碼,這 是一種基于碼代數(shù)結(jié)構(gòu)的代數(shù)譯碼,類似于分組碼中的大數(shù)邏輯譯碼;(2) 1963 年由費(fèi)諾(Fano)改進(jìn)的序列譯碼, 這是基于碼的樹狀圖結(jié)構(gòu)上的一種準(zhǔn)最佳的概 率譯碼;(3) 1967 年由維特比提出的 Viterbi 算法。這是基于碼的網(wǎng)(trellis) 圖基礎(chǔ)上的一種最大似然譯碼算法,是一種最佳的概率譯碼方法。其中,代數(shù)譯 碼,利用編碼本身的代數(shù)結(jié)構(gòu)進(jìn)行譯碼,不考慮信道本身的統(tǒng)計(jì)特性。該方法的硬件實(shí)現(xiàn)簡單,但性能較差,其中具有典型意義的是門限譯碼。另一類是概率譯碼,這種譯碼通常建立在最大似然準(zhǔn)則的基礎(chǔ)上。由于計(jì)算是用到了信道的統(tǒng)計(jì)特性.因而提高了譯碼性能,
12、但這種性能的提高是以增加硬件的復(fù)雜度為代價(jià)的。常用的概率譯碼方法有維特比譯碼和序列譯碼。維特比譯碼具有最佳性能,但硬件實(shí)現(xiàn)復(fù)雜;門限譯碼性能最差,但硬件簡單;序列譯碼在性能和硬件方面介于維特比譯碼和門限譯碼之間6。1.4 卷積碼的 Viterbi 譯碼 卷積碼概率譯碼的基本思路是:以接收碼流為基礎(chǔ),逐個(gè)計(jì)算它與其他所有可能出現(xiàn)的、連續(xù)的網(wǎng)格圖路徑的距離,選出其中可能性最大的一條作為譯碼估值輸出。概率最大在大多數(shù)場(chǎng)合可解釋為距離最小,這種最小距離譯碼體現(xiàn)的正是最大似然的準(zhǔn)則。 卷積碼的最大似然譯碼與分組碼的最大似然譯碼在原理上是一樣的,但實(shí)現(xiàn)方法上略有不同。主要區(qū)別在于:分組碼是孤立地求解單個(gè)碼
13、組的相似度,而卷積碼是求碼字序列之間的相似度?;诰W(wǎng)格圖搜索的譯碼是實(shí)現(xiàn)最大似然判決的重要方法和途徑。用格圖描述時(shí),由于路徑的匯聚消除了樹狀圖中的多余度,譯碼過程中只需考慮整個(gè)路徑集合中那些使似然函數(shù)最大的路徑。如果在某一點(diǎn)上發(fā)現(xiàn)某條路徑已不可能獲得最大對(duì)數(shù)似然函數(shù),就放棄這條路徑,然后在剩下的“幸存”路徑中重新選擇路徑。這樣一直進(jìn)行到最后第L級(jí)(L為發(fā)送序列的長度)。由于這種方法較早地丟棄了那些不可能的路徑7。1.4.1 維特比譯碼原理采用概率譯碼的基本思想是:把已接收序列與所有可能的發(fā)送序列做比較,選擇其中碼距最小的一個(gè)序列作為發(fā)送序列。如果發(fā)送L組信息比特,那么對(duì)于(n,k)卷積碼來說,
14、可能發(fā)送的序列有2kL個(gè),計(jì)算機(jī)或譯碼器需存儲(chǔ)這些序列并進(jìn)行比較,以找到碼距最小的那個(gè)序列。當(dāng)傳信率和信息組數(shù)L較大時(shí),使得譯碼器難以實(shí)現(xiàn)。維特比算法則對(duì)上述概率譯碼做了簡化,以至成為了一種實(shí)用化的概率算法。它并不是在網(wǎng)格圖上一次比較所有可能的2kL條路徑(序列),而是接收一段,計(jì)算和比較一段,選擇一段最大似然可能的碼段,從而達(dá)到整個(gè)碼序列是一個(gè)最大似然值得序列8。下面以圖2(a)的(2,1,3)卷積碼編碼器所編出的碼為例,來說明維特比解碼的方法和運(yùn)作過程。為了能說明解碼過程,這里給出該碼的狀態(tài)圖,如圖2(b)所mjmj-1mj-2輸出序列m1,m2,mj,y1jy2j輸入序列00adcb11
15、0011010110 圖2(a) (2,1,3)卷積碼編碼器 圖2(b) (2,1,3)卷積碼狀圖示。維特比譯碼需要利用圖來說明移碼過程。根據(jù)卷積碼畫網(wǎng)格的方法,我們可以畫出該碼的網(wǎng)格圖,如圖3所示。該圖設(shè)輸入信息數(shù)目L=5,所以畫L+N=8個(gè)時(shí)間單位,圖中分別標(biāo)以0至7。這里設(shè)編碼器從a狀態(tài)開始運(yùn)作。該網(wǎng)格圖的每一條路徑都對(duì)應(yīng)著不同的輸入信息序列。由于所有可能輸入信息序列共有2kL個(gè),因而網(wǎng)格圖中所有可能的路徑也為2kL條。這里節(jié)點(diǎn)a=00,b=01,c=10,d=11。abcd節(jié)點(diǎn)號(hào)012345670000000000000011111111111111110000010101010101
16、0101010101111110101010圖3 (2,1,3)卷積碼網(wǎng)格圖設(shè)輸入編碼器的信息序列為(11011000),則由編碼器對(duì)應(yīng)輸出的序列為Y=(1101010001011100),編碼器的狀態(tài)轉(zhuǎn)移路線為abdcbdca。若收到的序列R=(0101011001011100),對(duì)照網(wǎng)格圖來說明維特比譯碼的方法9。由于該卷積碼的約束長度為6位,因此先選擇接收序列的前6位序列R1=(010101)同到達(dá)第3時(shí)刻的可能的8個(gè)碼序列(即8條路徑)進(jìn)行比較,并計(jì)算出碼距。該例中到達(dá)第3時(shí)刻a點(diǎn)的路徑序列是(000000)和(111011),他們與R1的距離分別為3和4;到達(dá)第3時(shí)刻b點(diǎn)的路徑序列是
17、(000011)和(111000),他們與R1的距離分別為3和4;到達(dá)第3時(shí)刻c點(diǎn)的路徑序列是(001110)和(110101),他們與R1的距離分別為4和1;到達(dá)第3時(shí)刻d點(diǎn)的路徑序列是(001101)和(110110),他們與R1的距離分別為2和3。上述每個(gè)節(jié)點(diǎn)都保留碼距較小的路徑作為幸存路徑,所以幸存路徑碼序列是(000000)、(000011)、(1101001)和(001101),如圖4所示。用于上面類似的方法可以得到第4、5、6、7時(shí)刻的幸存路徑10。abcd節(jié)點(diǎn)號(hào)0123000000111111010101圖4 維特比譯碼第3時(shí)刻幸存路徑需要指出的是,對(duì)于某個(gè)節(jié)點(diǎn),如果比較兩條路
18、徑與接收序列的累計(jì)碼距值相等時(shí),則可以任意選者一條路徑作為幸存路徑,吃時(shí)不會(huì)影響最終的譯碼結(jié)果。在碼的終了時(shí)刻a狀態(tài),得到一條幸存路徑。如果5所示。由此可看到譯碼器輸出是R=(1101010001011100),即可變換成序列(11011000),恢復(fù)了發(fā)端原始信息。比較R和R序列,可以看到在譯碼過程中已糾正了在碼序列第1和第7位上的差錯(cuò)。當(dāng)然如果差錯(cuò)出現(xiàn)太頻繁,以致超出卷積碼的糾錯(cuò)能力,還是會(huì)發(fā)生糾誤的11。abcd節(jié)點(diǎn)號(hào)0123110101456780001011100圖5 第8時(shí)刻幸存路徑2.卷積碼編碼器及Viterbi譯碼器的設(shè)計(jì)系統(tǒng)方案制定 2.1 方案提出 卷積碼的譯碼方式有三種:
19、(1)1963 年由梅西(Massey)提出的門限譯碼,這是一種基于碼代數(shù)結(jié)構(gòu)的代數(shù)譯碼,類似于分組碼中的大數(shù)邏輯譯碼;(2) 1963 年由費(fèi)諾(Fano)改進(jìn)的序列譯碼,這是基于碼的樹狀圖結(jié)構(gòu)上的一種準(zhǔn)最佳的概率譯碼;(3) 1967 年由維特比提出的 Viterbi 算法。這是基于碼的網(wǎng)(trellis)圖基礎(chǔ)上的一種最大似然譯碼算法,是一種最佳的概率譯碼方法12。上。由于計(jì)算是用到了信道的統(tǒng)計(jì)特性.因而提高了譯碼性能,但這種性能的提高是以增加硬件的復(fù)雜度為代價(jià)的。常用的概率譯碼方法有維特比譯碼和序列譯碼。維特比譯碼具有最佳性能,但硬件實(shí)現(xiàn)復(fù)雜;門限譯碼性能最差, 但硬件簡單;序列譯碼在
20、性能和硬件方面介于維特比譯碼和門限譯碼之間13。 2.2 方案論證 圖6是卷積碼解碼原理圖,由此圖可見,當(dāng)信息位出現(xiàn)一個(gè)錯(cuò)碼時(shí),僅當(dāng)它位于信息位移存器的第6、3、2和1級(jí)時(shí),才使校正子等于“1”。因此,這時(shí)校正子序列為100111;反之,當(dāng)監(jiān)督位出現(xiàn)一個(gè)錯(cuò)碼時(shí),校正子序列將為100000。由此可見,當(dāng)校正子序列出現(xiàn)第一個(gè)“1”時(shí),表示已經(jīng)檢出一個(gè)錯(cuò)碼。此卷積碼除了能夠糾正兩位在約束長度中的隨機(jī)錯(cuò)誤外,還能夠糾正部分多于兩位的錯(cuò)誤。為了克服突發(fā)錯(cuò)誤,可以采用更長的約束長度和在約束長度中能糾正更多錯(cuò)誤的碼14。 6 5 4 3 2 1 門限電路:“1”的個(gè)數(shù)3?Y接受監(jiān)督位重算監(jiān)督位計(jì)算校正子圖6
21、 (2,1,6)卷積碼解碼器原理方框圖2.3 方案選擇由于維特比解碼算法比較簡單,計(jì)算快,故得到廣泛應(yīng)用,特別是衛(wèi)星通信和蜂窩網(wǎng)通信系統(tǒng)中應(yīng)用。所以這里選擇維特比解碼。2.4 硬件實(shí)現(xiàn)定時(shí)與控制輸入與同步單元支路量度計(jì)算路徑量度的更新與存儲(chǔ)判決與輸出單元信息序列的更新與存儲(chǔ)圖7譯碼器硬件實(shí)現(xiàn)方框圖3 卷積碼編碼器及Viterbi譯碼器的設(shè)計(jì)系統(tǒng)的仿真和調(diào)試 3.1 仿真軟件介紹 Matlab是英文MATrix LABoratory(矩陣實(shí)驗(yàn)室)的縮寫。Matlab自1984年由MathWorks公司推向市場(chǎng)以來,歷經(jīng)20多年的發(fā)展和競(jìng)爭(zhēng),現(xiàn)在風(fēng)靡世界??煽康臄?shù)值計(jì)算和符號(hào)計(jì)算功能,強(qiáng)大的繪圖功
22、能、簡單易學(xué)的語言體系以及為數(shù)眾多的應(yīng)用工具箱是Matlab區(qū)別于其他科技應(yīng)用軟件的顯著標(biāo)志6。3.2 系統(tǒng)仿真實(shí)現(xiàn)3.2.1 編碼程序%header,后面的寄存器需補(bǔ)零 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個(gè),其后補(bǔ)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)行模二運(yùn)算得到編碼器輸出
23、 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個(gè),即與寄存器個(gè)數(shù)相等 gg_out=G*input_matrix' for l=1:n channel_input(n*(i-1)+l)=rem(gg_out(l),2); %模二運(yùn)算 end end %tailer,前面的寄存器需補(bǔ)零 for i=(G_2/k-1):-1:1 input_matrix=zeros(1,G_2-i*k),coder_input(depth_of_in
24、put*k:-1:(depth_of_input-i) *k+1);%前G_2-i*k個(gè)補(bǔ)0 gg_out=G*input_matrix' for l=1:n channel_input(n*(G_2/k-i-1)+l+depth_of_input*n)=rem(gg_out(l),2); %模二運(yùn)算 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 %
25、計(jì)算漢明距 branch_metric=branch_metric+metric(channel_output_matrix(ll,i),binary_output(ll); end %在AWGN信道下,最大似然估計(jì)轉(zhuǎn)化為求最小漢明距 %如果下一狀態(tài)度量距離大于當(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
26、_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(nextstate(j+1,l+1)+1)=1; end end end %開始回溯最佳路徑,從最佳路徑中找出解碼 %state_sequence(1x結(jié)點(diǎn)深度)矩陣, 1dep分別記載各個(gè)階段的路徑(即前一狀態(tài)數(shù))。1dep分別記載各個(gè)階段的路徑(即前一狀態(tài)數(shù))。 %從最佳路徑中產(chǎn)生解碼 %由后到前得到各級(jí)的狀態(tài) state_sequ
27、ence=zeros(1,depth_of_trellis+1); state_sequence(1,depth_of_trellis)=survivor_state(1,depth_of_trellis+1); %開始回溯最佳路徑 for i=1:depth_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 卷積碼實(shí)現(xiàn) (3,1)卷積碼的仿真:隨機(jī)輸入一組序列,本仿真
28、實(shí)驗(yàn)中輸入的序列是:1 0 1 1 0 1 0 0。通過卷積編碼程序?qū)λ斎氲男蛄羞M(jìn)行編碼,得到卷積碼輸出,再對(duì)這個(gè)卷積碼進(jìn)行噪聲干擾,在實(shí)際通信系統(tǒng)中即相當(dāng)于在空中傳輸過程中出現(xiàn)傳輸錯(cuò)誤,出現(xiàn)誤碼, 譯碼器接收到錯(cuò)誤的碼字進(jìn)行解碼,理論上按照 Viterbi 譯碼算法可以回溯到原始的正確碼字,即正確的輸入序列。現(xiàn)在對(duì)于編碼程序在 MATLAB 系統(tǒng)中對(duì)該實(shí)驗(yàn)進(jìn)行仿真,驗(yàn)證譯碼是否正確,以得出是否有差錯(cuò)控制的功能,即卷積碼可以實(shí)現(xiàn)差錯(cuò)控制7。 設(shè)置編碼器輸入端: 隨機(jī)輸入序列: coder_input=1 0 1 1 0 1 0 0 輸入(2,1)卷積碼的生成矩陣: G = 1 0 1 1 0
29、 1 1 1 1;1 1 0 1 1 0 0 1 1;1 1 1 0 0 1 0 0 1 設(shè)置輸入端個(gè)數(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 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)錯(cuò)碼時(shí)。例如本例中將第一位、第五位、第十位和最后一位更改。得到噪聲之后的序列,之后再將噪聲之后序列送入譯碼程序進(jìn)行譯碼輸出。經(jīng)過維特比譯碼之后輸出的輸出序列理論上是原始的輸入序列,若與輸入序列相同
30、,則驗(yàn)證成功。 設(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 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)過譯碼器譯碼之后的輸出序列: de
31、coder_output = 1 0 1 1 0 1 0 0 該序列與原始的輸入序列 coder_input=1 0 1 1 0 1 0 0相同,即還原到了原始的輸入序列,達(dá)到了糾錯(cuò)的目的。驗(yàn)證成功8。3.4 數(shù)據(jù)分析 解碼的結(jié)果見圖8和圖9。Here is an 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 =
32、1.0000 2.9737 2.8217 0.9142 0.0908圖8 解碼結(jié)果 圖9解碼仿真結(jié)果圖4 SIMULINK下仿真設(shè)計(jì)4.1 卷積碼的仿真圖10卷積碼的編譯譯碼框圖如上圖10的信號(hào)流程可以表示為先由Bernoulli Binary Generater(貝努利二進(jìn)制序列產(chǎn)生器)產(chǎn)生一個(gè)0,1等概序列,經(jīng)過Convolutional Ecoder(卷積編碼器)對(duì)輸入的二進(jìn)制序列進(jìn)行卷積編碼,并用BPSK解調(diào)制后送人Viterbi Dcoder(viterbi譯碼器)進(jìn)行硬判決譯碼。最后經(jīng)過Error Rate Caculation(誤碼統(tǒng)計(jì))后由Display(顯示輸出)。然后通過S
33、elector(數(shù)據(jù)選通器)將結(jié)果輸出到To workspace(工作區(qū)間)。4.2 SIMULINK模塊仿真參數(shù)設(shè)置及意義在建立如果10所示的仿真模塊后,對(duì)各個(gè)模塊分別一一進(jìn)行設(shè)置后并運(yùn)行仿真圖11貝努利二進(jìn)制序列產(chǎn)生器模塊的設(shè)置框圖如上圖11是貝努利二進(jìn)制序列產(chǎn)生器模塊的設(shè)置框圖,其中參數(shù)有三項(xiàng):第一項(xiàng)probability of a zero取值為0.5,表示0和1出現(xiàn)的概率相等。Initial seed表示隨機(jī)種子數(shù),不同的隨機(jī)種子數(shù)將產(chǎn)生不同的二進(jìn)制序列,特定的隨機(jī)種子數(shù)可以產(chǎn)生特定的二進(jìn)制序列,Sample time=0.0001表示抽樣時(shí)間。也就是說輸出序列中每個(gè)二進(jìn)制符號(hào)的持續(xù)
34、時(shí)間是0.0001秒。Samples per frame表示每幀的抽樣數(shù)用來確定每幀的抽樣點(diǎn)的數(shù)目。Output date type是用來確定每幀的輸出格式。圖12卷積編碼器模塊的設(shè)置框圖如上圖12所示是卷積碼編碼器模塊的設(shè)置框圖。其中,Trellis structure(Trellis結(jié)構(gòu))中通過poly2trellis()函數(shù)把卷積碼的約束長度,生成多項(xiàng)式以及反饋多項(xiàng)式轉(zhuǎn)換成Trellis結(jié)構(gòu)中的形式。圖13 BPSK調(diào)制器模塊的設(shè)置框圖如上圖13是BPSK調(diào)制器模塊的設(shè)置框圖。Phase offset(rad)(相位偏移),這里設(shè)置為0。圖14誤比特統(tǒng)計(jì)模塊的設(shè)置框圖如上圖所示是誤比特統(tǒng)
35、計(jì)模塊的設(shè)置框圖。Receive delay表示接收延遲,意思是在通信接收端口需要對(duì)接收到的信號(hào)進(jìn)行解調(diào),解碼或解交織而帶來一定的延遲使得到達(dá)誤碼統(tǒng)計(jì)模塊接收端的信號(hào)滯后于發(fā)送端的信號(hào)21。為了補(bǔ)償這種延遲,這里設(shè)置為0。Computation delay表示計(jì)算延遲,在仿真過程中,有時(shí)間需要忽略最初的若干個(gè)輸入數(shù)據(jù)就通過計(jì)算延遲來實(shí)現(xiàn)。這里設(shè)置為0。Computation mode表示計(jì)算模式,幀的計(jì)算模式(Entire frame),誤碼統(tǒng)計(jì)模塊對(duì)發(fā)送端和接收端所有輸入數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。Output data是輸出數(shù)據(jù),這里設(shè)置為port的意思是表示把統(tǒng)計(jì)數(shù)據(jù)從端口中輸出。Workspace表
36、示把統(tǒng)計(jì)數(shù)據(jù)輸出到工作區(qū)22。圖15數(shù)據(jù)選通器模塊的設(shè)置框圖如圖15所示是數(shù)據(jù)選通器模塊的設(shè)置框圖。Input port width表示輸入端口的個(gè)數(shù)為3。圖16卷積碼譯碼器模塊的設(shè)置框圖如上圖16所示是卷積碼譯碼器模塊的設(shè)置框圖。Decision type是指判決類型,有3種:(1)Unquantized(非量化);(2)Hard Decision(硬判決);(3)Soft Decision(軟判決)。Traceback depth表示反饋深度。它的值會(huì)影響譯碼精度和解碼延遲。Operation mode是指操作模式。在Truncated模式下,解碼器在每幀數(shù)據(jù)結(jié)束的時(shí)候總會(huì)恢復(fù)到全0狀態(tài),
37、它與卷積編碼器的on each frame復(fù)位方式相對(duì)應(yīng)23。5 總結(jié)5.1 設(shè)計(jì)小結(jié)卷積碼是一種糾錯(cuò)編碼,糾錯(cuò)編碼己有五十幾年歷史,早在 1948 年,香農(nóng) (Shannon)在他的開創(chuàng)性論文“通信的數(shù)學(xué)理論”中,首次闡明了在有擾信道中實(shí)現(xiàn)可靠通信的方法,提出了著名的有擾信道編碼定理,奠定了糾錯(cuò)碼的基石24。 以后,糾錯(cuò)碼受到了越來越多的通信和數(shù)學(xué)工作者,特別是數(shù)學(xué)家的重視,使糾錯(cuò)碼無論在理論上還是在實(shí)際中都得到了飛速發(fā)展。 通過編寫卷積碼的編碼和解碼程序,并且用MATLAB 仿 真軟件對(duì) TD-SCDMA 系統(tǒng)的卷積碼編解碼進(jìn)行仿真,進(jìn)行糾錯(cuò)驗(yàn)證可以看出卷積碼編譯碼對(duì)差錯(cuò)控制有很大的應(yīng)用。
38、 通過對(duì)譯碼算法的仿真,可以看出,維特比譯碼器設(shè)備比較簡單,計(jì)算速度快,因而 Viterbi 譯碼器被廣泛應(yīng)用于各種領(lǐng)域。尤其在衛(wèi)星和深空通信中得到廣泛應(yīng)用,在解決碼間串?dāng)_和數(shù)據(jù)壓縮中也可應(yīng)用25。5.2 收獲體會(huì)了解了卷積碼的原理及其編碼和譯碼原理,同時(shí)掌握了如何用用MATLAB對(duì)其進(jìn)行仿真。卷積碼具有糾錯(cuò)功能,適合于各種領(lǐng)域。此畢業(yè)設(shè)計(jì)對(duì)整個(gè)通信系統(tǒng)包含的編碼、傳輸和譯碼都進(jìn)行了設(shè)計(jì)與仿真,從這些過程中我們看到了通信系統(tǒng)的基本工作原理。通過整個(gè)卷積碼系統(tǒng)的設(shè)計(jì)與仿真,使我們加深了對(duì)卷積碼的理解,掌握維特比譯碼的基本思路,知道如何進(jìn)行誤碼率分析從而選者合適的信道傳輸信號(hào),更重要的是學(xué)會(huì)了使用
39、Matlab作為學(xué)習(xí)工具來對(duì)我們的通信系統(tǒng)進(jìn)行設(shè)計(jì)和仿真等操作,這對(duì)我們以后的學(xué)習(xí)和工作有著重要意義26。5.3 展望現(xiàn)代通信中,隨著信號(hào)序列的傳輸速率的不斷提高,要求卷積碼譯碼的速度也要不斷提高,Viterbi 譯碼由于充分利用信號(hào)序列統(tǒng)計(jì)概率的特性而具有最佳性能。信道編碼的應(yīng)用領(lǐng)域主要包括深空通信、衛(wèi)星通信、數(shù)據(jù)傳輸、移動(dòng)通信、文件傳輸和數(shù)字音頻/視頻傳輸?shù)?。卷積編碼作為信道編碼方式中最重要一種,被廣泛使用于衛(wèi)星通信、無人機(jī)測(cè)控、深空通信、移動(dòng)通信、水聲通信等數(shù)字通信系統(tǒng),甚至被采納到某些無線通信的標(biāo)準(zhǔn)之中,如 GSM、IS.95 和 CDMA2000 的標(biāo)準(zhǔn)。在衛(wèi)星通信中,碼率為 1/2
40、 和 1/3 的卷積碼己經(jīng)成為商業(yè)衛(wèi)星通信系統(tǒng)中的標(biāo)準(zhǔn)編碼方法。在無人機(jī)測(cè)控中,與傳統(tǒng)的信道改善控制指令傳輸誤碼的方式比較,利用卷積碼對(duì)無人機(jī)遙控信道進(jìn)行編碼,在一定信道條件下,其控制指令傳輸誤碼有明顯下降。在碼速率不增加的條件下,無人機(jī)系統(tǒng)控制指令傳輸可靠性得到明顯改善27。參考文獻(xiàn):1. 曹沛先.卷積碼的編碼及其 Viterbi 譯碼的計(jì)算機(jī)模擬J. 無線電工 程,1994,24(8): 24-28. 2. 張普珩.Viterbi 譯碼算法的研究與實(shí)現(xiàn)D.湖南:國防科學(xué)技術(shù)大學(xué)研究生院, 2008.3. 孟夏, 申敏, 王飛.TD-SCDMA 中(2,1,9)卷積編碼及其 VITERBI
41、譯碼算法的 S IMULINK S-FUNCTION 實(shí)現(xiàn)J.通信技術(shù),2008,41(8):26-30. 4. 張傳達(dá) , 李小文 . 卷積碼編碼及其 Viterbi 譯碼的實(shí)現(xiàn)J. 無線電工 程,2006,36(7):45-47.5.通信原理(第六版)樊昌信,曹麗娜編著國防工業(yè)出版社;6.MATLAB程序設(shè)計(jì)與應(yīng)用(第二版)劉衛(wèi)國主編高等教育出版社7.徐莉, 羅新民, 徐燕紅.卷積碼的 MATLAB 仿真及其性能研究J.現(xiàn)代電子技術(shù),2006,64(11):64-66. 8.肖學(xué)云,信道編碼的研究及其在 TD-SCDMA 中的應(yīng)用與實(shí)現(xiàn)D.北京:北 京郵電大學(xué),2006. 9. 宋鏡業(yè),信
42、道編碼識(shí)別技術(shù)研究D.西安:西安電子科技大學(xué),2009. Series.IRE10. 龐沁華, 吳偉陵.通信原理M.北京:北京郵電出版社,2008.11.李建東,郭梯云,鄔國揚(yáng)著 移動(dòng)通信第四版 出版社:西安電子科技大學(xué)出版社 2006,712 樊昌信,曹麗娜著 通信原理第六版 出版社:國防工業(yè)出版社2011,113 劉衛(wèi)國主編 MATLAB程序設(shè)計(jì)與應(yīng)用第二版 出版社:高等教育出版社2011,114 張輝,曹麗娜編著 現(xiàn)代通信原理與技術(shù) 出版社:西安電子科技大學(xué)出版社 200215 曹志剛,錢亞生著 現(xiàn)代通信原理 出版社:清華大學(xué)出版社 199216 王興亮,達(dá)新宇著 數(shù)字通信原理與技術(shù)第二
43、版 出版社:西安電子科技大學(xué)出版社 200417 桑林,郝建軍,劉丹譜著 數(shù)字通信 出版社:北京郵電大學(xué)出版社18 曹興雯,劉乃安,陳健等著 高頻電路原理與分析 出版社:西安電子科技大學(xué)出版社 200119 張圣勤著 MATLAB7.0實(shí)用教材 出版社:機(jī)械工業(yè)出版社 200620 鄧華著 MATLAB通信仿真及應(yīng)用實(shí)例詳解 出版社:人民郵電出版社 200321 C.E.Shannon.A Mathematic Theory of Communications.Bell syst,Tech.J.1948,Vol 27.22 D.J.Costello,J.Hagenauer&H.Imai
44、.Applications of Error-Control Coding,IEEE Trans.On Information Theory,1998,Vol 44.23 M.J.Golay.Complementary Series.IRE Trans.Info.Theory.Vol.IT-7,pp82-87,1981. 24V.D.Goppa.ANewClassofLinearError-correctingCodes.Probl,Inform,Trans,1990.vol.6.pp207-212. 21附錄1 編碼程序%header,后面的寄存器需補(bǔ)零 for i=1:size(G,2)/
45、k-1 input_matrix=coder_input(i*k:-1:1),zeros(1,size(G,2)-i*k); %取輸入序列的前i*k個(gè),其后補(bǔ)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)行模二運(yù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個(gè),即與寄存器個(gè)數(shù)相等 gg_out=G*input_matrix' for l=1:n channel_input(n*(i-1)+l)=rem(gg_out(l),2); %模二運(yùn)算 en
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- “雙減”政策下我國中小學(xué)課后延時(shí)體育服務(wù)的演進(jìn)歷程、機(jī)遇挑戰(zhàn)及實(shí)現(xiàn)路徑
- “雙減”背景下的小學(xué)語文大單元作業(yè)設(shè)計(jì)策略
- 臨床CT識(shí)別肺炎支原體肺炎影像學(xué)特征
- 專題一第2課二、《文檔的編輯》說課稿 2023-2024學(xué)年青島版(2018)初中信息技術(shù)七年級(jí)下冊(cè)
- Unit 7 have用法小結(jié)(說課稿)-2024-2025學(xué)年人教新目標(biāo)Go For It!英語八年級(jí)上冊(cè)
- 購物袋、30萬套帳篷、收納盒及防塵罩項(xiàng)目可行性研究報(bào)告寫作模板-備案審批
- 二零二五年度安全生產(chǎn)責(zé)任追究制度合同2篇
- Unit 2 My week Part A Lets spell大單元整體說課稿表格式-2024-2025學(xué)年人教PEP版英語五年級(jí)上冊(cè)
- 全國人教版信息技術(shù)八年級(jí)上冊(cè)第三單元第12課三、《制作按鈕并設(shè)置動(dòng)作腳本》說課稿設(shè)計(jì)
- 貴州商學(xué)院《機(jī)器學(xué)習(xí)與深度學(xué)習(xí)理論雙語教學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 物流公司安全生產(chǎn)監(jiān)督檢查管理制度
- DB22T 277-2011 建筑電氣防火檢驗(yàn)規(guī)程
- DB52T 1696-2022 口腔綜合治療臺(tái)用水衛(wèi)生管理規(guī)范
- 2025屆上海市復(fù)旦附中浦東分校物理高二上期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 快樂讀書吧:童年(專項(xiàng)訓(xùn)練)-2023-2024學(xué)年六年級(jí)語文上冊(cè)(統(tǒng)編版)(含答案)
- 2023-2024學(xué)年廣東省廣州市海珠區(qū)九年級(jí)(上)期末英語試卷
- 紅色蛇年大吉年終總結(jié)匯報(bào)
- 農(nóng)業(yè)機(jī)械培訓(xùn)課件
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試英語試題 附答案
- 2024年度心理輔導(dǎo)合作協(xié)議模板版
- GB/T 22723-2024天然氣能量的測(cè)定
評(píng)論
0/150
提交評(píng)論