卷積碼編譯碼課設(shè) (2)_第1頁
卷積碼編譯碼課設(shè) (2)_第2頁
卷積碼編譯碼課設(shè) (2)_第3頁
卷積碼編譯碼課設(shè) (2)_第4頁
卷積碼編譯碼課設(shè) (2)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘 要卷積碼是一種性能優(yōu)越的信道編碼。它的編碼器和譯碼器都比較容易實(shí)現(xiàn),同時(shí)它具有較強(qiáng)的糾錯(cuò)能力。隨著糾錯(cuò)編碼理論研究的不斷深入,卷積碼的實(shí)際應(yīng)用越來越廣泛。本文對(duì)卷積碼和卷積碼的編譯碼有一個(gè)簡單的介紹且給出了信道編碼的發(fā)展歷史及研究狀況,然后詳細(xì)討論了(2,1,2)卷積碼的編碼過程和譯碼過程,通過狀態(tài)轉(zhuǎn)移方程和輸出方程得出狀態(tài)轉(zhuǎn)移表和狀態(tài)轉(zhuǎn)移圖,然后通過維特比譯碼器研究,總結(jié)出了維特比譯碼算法,最后通過Matlab軟件進(jìn)行設(shè)計(jì)與仿真,得到了編碼程序和譯碼程序,其運(yùn)行結(jié)果與理論分析一致。關(guān)鍵字 卷積碼編碼、信道編碼、Viterbi譯碼、MATLAB仿真目錄摘要1一、引言31.1發(fā)展歷史及研究狀

2、況31.2設(shè)計(jì)目的和意義31.3設(shè)計(jì)方法4二、卷積碼編譯碼原理52.1 卷積碼編碼原理52.2編碼器62.3 卷積碼譯碼原理72.4 VITEBI 譯碼的關(guān)鍵步驟82.4.1 輸入與同步單元82.4.2 支路量度計(jì)算82.4.3 路徑量度的存儲(chǔ)與更新82.4.4 信息序列的存儲(chǔ)與更新82.4.5 判決與輸出單元8三、卷積碼編碼實(shí)現(xiàn)93.1 編碼原理分析93.2 卷積碼編碼流程圖10四、卷積碼譯碼實(shí)現(xiàn)114.1 譯碼編程思路114.2 卷積碼譯碼流程圖11五、卷積碼編譯碼程序的編譯及仿真波形115.1 卷積碼編碼仿真125.2卷積碼譯碼仿真135.3卷積碼糾錯(cuò)碼仿真14六、總結(jié)15七、參考文獻(xiàn)1

3、6附錄17一、引言1.1發(fā)展歷史及研究狀況1948年,Bell實(shí)驗(yàn)室的C.E.Shannon發(fā)表的通信的數(shù)學(xué)理論,是關(guān)于現(xiàn)代信息理論的奠基性論文,它的發(fā)表標(biāo)志著信息與編碼理論這一學(xué)科的創(chuàng)立。20世紀(jì)40年代,R.Hamming和M.Golay提出了第一個(gè)實(shí)用的差錯(cuò)控制編碼方案,使編碼理論這個(gè)應(yīng)用數(shù)學(xué)分支的發(fā)展得到了極大的推動(dòng)。分組碼所存在的固有缺點(diǎn)可以通過采用其他的編碼方法來改善,這種編碼方法就是卷積碼。卷積碼是Elias等人在1955年提出的。卷積碼與分組碼的不同在于:它充分利用了各個(gè)信息塊之間的相關(guān)性。通常卷積碼記為(n,k,N)碼。卷積碼的編碼過程是連續(xù)進(jìn)行的,依次連續(xù)將每k個(gè)信息元輸入

4、編碼器,得到n個(gè)碼元,得到的碼元中的檢驗(yàn)元不僅與本碼的信息元有關(guān),還與以前時(shí)刻輸入到編碼器的信息元(反映在編碼寄存器的內(nèi)容上)有關(guān)。同樣,在卷積碼的譯碼過程中,不僅要從本碼中提取譯碼信息,還要充分利用以前和以后時(shí)刻收到的碼組從這些碼組中提取譯碼相關(guān)信息,而且譯碼也是可以連續(xù)進(jìn)行的,這樣可以保證卷積碼的譯碼延時(shí)相對(duì)比較小。通常,在系統(tǒng)條件相同的條件下,在達(dá)到相同譯碼性能時(shí),卷積碼的信息塊長度和碼字長度都要比分組碼的信息塊長度和碼字長度小,相應(yīng)譯碼復(fù)雜性也小一些。卷積碼的譯碼通常有如下幾個(gè)比較流行的譯碼算法: 由Wozencraft和Reiffen在1961年提出,F(xiàn)ano和Jelinek分別在1

5、963年和1969年進(jìn)行改進(jìn)了的序貫譯碼算法。該算法是基于碼字樹圖結(jié)構(gòu)的一種次最優(yōu)概率譯碼算法。 由Massey在1963年提出的門限譯碼算法。這個(gè)算法利用碼字的代數(shù)結(jié)構(gòu)進(jìn)行代數(shù)譯碼。 由Viterbi在1967 年提出的Viterbi算法是基于碼字格圖結(jié)構(gòu)的一種最大似然譯碼算法,是一種最優(yōu)譯碼算法。 在Viterbi譯碼算法提出之后,卷積碼在通信系統(tǒng)中得到了極為廣泛的應(yīng)用。如GSM、3G、商業(yè)衛(wèi)星通信系統(tǒng)等。1.2設(shè)計(jì)目的和意義因?yàn)樾诺乐行盘?hào)不可避免會(huì)受到干擾而出錯(cuò)。為實(shí)現(xiàn)可靠性通信,主要有兩種途徑:一種是增加發(fā)送信號(hào)的功率,提高接收端的信號(hào)噪聲比;另一種是采用編碼的方法對(duì)信道差錯(cuò)進(jìn)行控制。

6、前者常常受條件限制,不是所有情況都能采用。而編碼理論可以解決這個(gè)問題,使得成本降低,實(shí)用性增強(qiáng)。隨著現(xiàn)代通信的發(fā)展,卷積碼以其高速性和可靠性在實(shí)際應(yīng)用中越來越廣泛。1967年Viterbi譯碼算法的提出,使卷積碼成為信道編碼中最重要的編碼方式之一。在卷積碼中,因?yàn)閂iterbi算法效率高,速度快,結(jié)構(gòu)相對(duì)簡單等特點(diǎn),被廣泛應(yīng)用于各種數(shù)據(jù)傳輸系統(tǒng)。特別是深空通信、衛(wèi)星通信系統(tǒng)中。因此采用Viterbi譯碼算法具有非?,F(xiàn)實(shí)的意義。1.3設(shè)計(jì)方法本文在分析卷積碼編譯碼器原理的基礎(chǔ)上,通過基于MATLAB對(duì)卷積編碼,解碼進(jìn)行仿真。通過仿真可以更清楚的認(rèn)識(shí)到卷積碼的編碼,解碼的各個(gè)環(huán)節(jié),并對(duì)仿真結(jié)果進(jìn)行

7、了分析。得出卷積碼Viterbi譯碼的誤比特性能和回溯長度,碼率,約束長度的關(guān)系。二、卷積碼編譯碼原理2.1 卷積碼編碼原理2.1.1卷積碼簡介 卷積碼,又稱連環(huán)碼,是由伊萊亞斯(P.elias)于1955年提出來的一種非分組碼。若以(n,k,m)來描述卷積碼,其中k為每次輸入到卷積編碼器的bit數(shù),n為每個(gè)k元組碼字對(duì)應(yīng)的卷積碼輸出n元組碼字,m為編碼存儲(chǔ)度,也就是卷積編碼器的k元組的級(jí)數(shù),稱m+1= K為編碼約束度m稱為約束長度。卷積碼將k元組輸入碼元編成n元組輸出碼元,但k和n通常很小,特別適合以串行形式進(jìn)行 傳輸,時(shí)延小。與分組碼不同,卷積碼編碼生成的n元組元不僅與當(dāng)前輸入的k元組有關(guān)

8、,還與前面m-1個(gè)輸入的k元組有關(guān),編碼過程中互相關(guān)聯(lián)的碼元個(gè)數(shù)為n*m。卷積碼的糾錯(cuò)性能隨m的增加而增大,而差錯(cuò)率隨N的增加而指數(shù)下降。在編碼器復(fù)雜性相同的情況下,卷積碼的性能優(yōu)于分組碼。卷積碼編碼的當(dāng)前輸出v(l)不僅與當(dāng)前輸入消息u(l)相關(guān),還與此去前輸入的m個(gè)消息u(l-1),u(l-m) 相關(guān),即v(l)=f(u(l),u(l-1),u(l-m), l=0,1,2 卷積編碼電路中移位寄存器初態(tài)可設(shè)定為全0,電路為按段工作方式,即對(duì)每段k比特輸出入,產(chǎn)生一段n比特輸出。任意一輸入段u(l-h)與輸出v(l)的關(guān)系都是一個(gè)特殊的(n,k)線性分組碼的編碼關(guān)系,即存在k*n的二元矩陣 ,

9、使得 , h=0,1,2,m ·因此對(duì)于消息段序列u=(u(0),u(1),,u(m),u(m+1),),相應(yīng)的輸出端序列為v=(v(0),v(1),v(m),v(m+1),),并滿足卷積編碼電路在按段工作方式下只需存儲(chǔ)或者記憶m段的消息輸入,電路中輸入移位寄存器最多只有個(gè)有效的寄存器單元,而輸出移位寄存器僅起一個(gè)并串轉(zhuǎn)換作用。因此稱參量m為卷積碼的記憶長度(段)。 二元(n,k,m)卷積碼共有個(gè)不同的狀態(tài),記為 當(dāng)狀態(tài)為(或)時(shí),輸入段(或u)產(chǎn)生編碼輸出端(或v) 并使該狀態(tài)改變(或稱為轉(zhuǎn)移)到新的狀態(tài)(或)。到的轉(zhuǎn)移過程稱為一個(gè)轉(zhuǎn)移分支,記為(,)或(,)并標(biāo)記轉(zhuǎn)移過程為或v/

10、u。以狀態(tài)為結(jié)點(diǎn),轉(zhuǎn)移分支為有向邊描述卷積碼的所有不同狀態(tài)轉(zhuǎn)移的有向圖,稱為卷積碼的狀態(tài)轉(zhuǎn)移圖。2.2編碼器 22.1編碼器的一般結(jié)構(gòu)卷積碼的編碼器一般都比較簡單。圖2-1是一般情況下的卷積碼編碼器框圖。它包括NK級(jí)的輸入移位器,一組n個(gè)模2和加法器和n級(jí)的輸出移位寄存器 6。對(duì)應(yīng)于每段k比特的輸入序列,輸出n個(gè)比特。由圖可知,n個(gè)輸出比特不但與當(dāng)前的k個(gè)輸入比特有關(guān),而且與以前的(N-1)k個(gè)輸入信息比特有關(guān)。整個(gè)編碼過程可以看成是輸入信息序列與由移位寄存器和模2加法器的連接方式所決定的另一個(gè)序列的卷積,卷積碼由此得名。本文采用的是沖擊響應(yīng)描述法編碼思想。2.22編碼器的參數(shù) 有k個(gè)輸入信息

11、端,n 個(gè)輸出端(k<n),K-1節(jié)移位寄存器(共需k(K-1)個(gè)寄存器單元),稱做(n,k,K)卷積碼。 通常稱K為約束長度(一般來說,約束長度越大,則碼字糾錯(cuò)性能越好)。 碼的效率:k/n 編碼前,k(K-1)個(gè)寄存器單元全部復(fù)位清零。 由于一段消息不僅影響當(dāng)前段的編碼輸出,還影響其后m 段的編碼輸出,所以稱參量為卷積嗎的約束比特長度為注意進(jìn)入卷積編碼器的最后m段消息仍是要編碼輸出的消息,對(duì)這最后m段消息的編碼處理,稱作卷積編碼的結(jié)尾處理。一種常見的結(jié)尾處理方法是額外輸入m段無效的0數(shù)據(jù)比特,一方面將存儲(chǔ)的m 段消息編碼全部推出,另一方面保證編碼器回到全0的初態(tài)。 2.3 卷積碼譯碼

12、原理維特比算法的基本思想是把接收到的矢量,和網(wǎng)格圖上諸種可能的路徑比較,刪去距離大的路徑,保留距離小的路徑,以距離最小路徑作為發(fā)碼的估值。它的原理是將接收到的信號(hào)序列和所有可能的發(fā)送信號(hào)序列作比較,選擇其中漢明距離最小的序列作為現(xiàn)在的發(fā)送信號(hào)序列。為簡便起 見 ,討論(n,k,N)卷積碼當(dāng)k=1的情形,從全0狀態(tài)起始點(diǎn)開始討論。由卷積碼網(wǎng)格圖的前N-1級(jí)中支路構(gòu)成的路徑互不相交,即最初的2N-r條路徑各不相同;當(dāng)?shù)竭_(dá)第N級(jí)時(shí),每條路徑都有2N-1條支路延伸到第N級(jí)上;而第N級(jí)上的每2條支路又都匯聚在一個(gè)節(jié)點(diǎn)上。第N級(jí)以后的網(wǎng)格圖圖形完全是重復(fù)第N級(jí)的圖形。在維特比算法中,把匯聚在每個(gè)節(jié)點(diǎn)上的2

13、條路徑的對(duì)數(shù)似然函數(shù)累加值進(jìn)行比較;然后把具有較大對(duì)數(shù)似然函數(shù)累加值的路徑保存下來,稱此部分路徑為幸存路徑,而丟棄另一條路徑;經(jīng)挑選后,第N級(jí)只留下2N-r條幸存路徑,選出的路徑連同它們的對(duì)數(shù)似然函數(shù)累加值一起被存儲(chǔ)起來。因每個(gè)節(jié)點(diǎn)引出2N-1條支路,因此以后各級(jí)中路徑的延伸都增大一倍;但比較它們的似然函數(shù)累加值后,丟棄一半,結(jié)果留存下來的路徑總數(shù)保持常數(shù)(等于其狀態(tài)數(shù))。由此可見,上述譯碼過程中的基本操作是“加比選”。即每級(jí)求出對(duì)數(shù)似然函數(shù)累加值,然后兩兩比較并做出選擇。有時(shí)會(huì)出現(xiàn)2條路徑的對(duì)數(shù)似然函數(shù)累加值相等的情形,此時(shí)可任意選擇其中一條作為“幸存路徑”。每一級(jí)都有條幸存路徑,則當(dāng)序列發(fā)

14、送完畢后,為判斷其最后結(jié)果,通常要在網(wǎng)格圖的終結(jié)處加上一些結(jié)束信息。通常結(jié)束信息為N-1個(gè)已知信息,當(dāng)然結(jié)束信息大于N-1也可以。在此信息到來時(shí),因每一個(gè)狀態(tài)只有與已知發(fā)送信息相符的那條支路被延伸,因而在每級(jí)比較后,幸存路徑減少一半。因此,在接收到N-1個(gè)已知信息后,整個(gè)網(wǎng)格圖中只有惟一的一條幸存路徑保留下來。這就是譯碼所得到的路徑,這條譯碼路徑和發(fā)送序列是最相似的。從上述卷積碼的譯碼過程可以看出:約束長度為N時(shí),需要存儲(chǔ)和計(jì)算條路徑的參量。由此可見,維特比算法的復(fù)雜度隨約束長度N按指數(shù)形式增長2N。故維特比算法適合約束長度較小(N10)的編碼。當(dāng)編碼約束度不太大(10)或者誤碼率要求不太高(

15、>)時(shí),它的設(shè)備比較簡單,用硬件譯碼計(jì)算速度快。Viterbi譯碼的缺點(diǎn)是隨著約束長度的增加算法的復(fù)雜度增加很快。約束長度N為7時(shí)要比較的路徑就有64條,為8時(shí)路徑變?yōu)?28條。 (2<<(N-1)。所以Viterbi 譯碼一般應(yīng)用在約束長度小于10 的場合中。2.4 VITEBI 譯碼的關(guān)鍵步驟2.4.1 輸入與同步單元輸入同步單元為譯碼器提供正確的支路同步,每次正確地輸出屬于一條支路的n個(gè)比特。顯然,當(dāng)支路定時(shí)失步時(shí),譯碼過程中將會(huì)出現(xiàn)大量的差錯(cuò),只要能檢測出這種狀態(tài),即能有效地調(diào)整支路同步。一種方法是監(jiān)視路徑量度的增長率;另一種方法是檢查網(wǎng)格圖的路徑合并性質(zhì)。當(dāng)譯碼器出

16、現(xiàn)失步時(shí),網(wǎng)格圖中幸存路徑合并的速率比同步時(shí)慢得多2。2.4.2 支路量度計(jì)算每當(dāng)接收到一條新支路的一組n個(gè)量度值(硬判決時(shí)為n比特),支路量度計(jì)算單元就對(duì)網(wǎng)格圖中每一條不同的支路確定一新的量度值。對(duì)R=k/n碼來說,每次將有2個(gè)不同的量度值。在軟判決Viterbi譯碼時(shí),支路量度值不但隨支路不同而異,而且還與接收信號(hào)的量化值有關(guān)2。2.4.3 路徑量度的存儲(chǔ)與更新在此單元中,支路量度與以前所存儲(chǔ)的路徑量度相加,然后對(duì)匯聚到同一節(jié)點(diǎn)處的支路進(jìn)行路徑量度比較,選擇一條路徑量度最小的路徑保留下來。2.4.4 信息序列的存儲(chǔ)與更新一種最佳的也是最常用的方法是基于最大似然譯碼。對(duì)于R=1/n卷積碼而言

17、,每接收一組新的支路信息,在各個(gè)狀態(tài)的路徑存儲(chǔ)器中存入經(jīng)“加一比一選”電路選出的一位假想信息比特,同時(shí)將最先存入路徑存儲(chǔ)器的一位比特輸出給判決單元。因此,每接收到一條新支路,路徑存儲(chǔ)器就更新一次它所存儲(chǔ)的假想信息序列。2.4.5 判決與輸出單元在R=1/n卷積碼最佳譯碼時(shí),應(yīng)選擇具有最小路徑量度的假想信息序列中最早存入的一個(gè)比特做譯碼輸出。 三、卷積碼編碼實(shí)現(xiàn)3.1 編碼原理分析以(2,1,2)卷積碼為例,其生成多項(xiàng)式為: 狀態(tài)轉(zhuǎn)移方程為:下面以圖2.1的編碼器所編出的碼為例,來說明卷積碼編碼的方法和過程。為了使過程更加清晰,這里給出該碼的狀態(tài)圖,如圖2.2所示。圖3.1 (2,1,2)卷積碼

18、編碼器 圖3.2 (2,1,2)卷積碼狀態(tài)轉(zhuǎn)移圖由上面狀態(tài)轉(zhuǎn)移圖得到狀態(tài)轉(zhuǎn)移的4個(gè)狀態(tài),每一個(gè)狀態(tài)的轉(zhuǎn)移都與當(dāng)前輸入消息的狀態(tài)有關(guān)。而每一個(gè)對(duì)應(yīng)的輸出不僅與當(dāng)前輸入的m 個(gè)消息有關(guān),還與此前輸入的相關(guān), 即 根據(jù)該碼的狀態(tài)轉(zhuǎn)移圖可以列出其狀態(tài)轉(zhuǎn)移表,如表3.1所示。u()()()()()()()()(00)(01)(10)(11)0(00)(00)(10)(11)(00)(10)(10)(01)1(01)(11)(11)(00)(01)(01)(11)(10) 表3.1 (2,1,2)卷積碼狀態(tài)轉(zhuǎn)移表3.2 卷積碼編碼流程圖開始輸入n位信息序列依據(jù)前兩位輸入信息及當(dāng)前信息計(jì)算輸出序列輸出2n位

19、信息編碼結(jié)束四、卷積碼譯碼實(shí)現(xiàn)4.1 譯碼編程思路譯碼總體上是先通過“加-比-選”來得到最優(yōu)路徑,然后根據(jù)狀態(tài)轉(zhuǎn)移圖來得到解碼后的碼字。 用D(i)= hamming_distance(W(i,:),word(1:chip*2)實(shí)現(xiàn)與出錯(cuò)碼字對(duì)比得到漢明距,用val,index = sort(D)來實(shí)現(xiàn)val中存漢明距從小到大排列,index中存對(duì)應(yīng)val數(shù)據(jù)所在位置。首先初始化選前n時(shí)刻來比較漢明距,選出最小的48條路徑,而后每條被選出的路徑每次加一時(shí)刻進(jìn)行迭代運(yùn)算,選出新的漢明距最小的48條路徑,依次循環(huán),直至迭代至碼組結(jié)束。最后選出48條路徑中最小的一條來進(jìn)行譯碼。4.2 卷積碼譯碼流程

20、圖開始輸入2m位編碼序列計(jì)算到達(dá)各個(gè)狀態(tài)的累計(jì)最小漢明距離及路徑初始化前n時(shí)刻比較漢明距選出最小的6條路徑迭代至碼組結(jié)束?加一時(shí)刻迭代運(yùn)算選出漢明距最小的一條路徑進(jìn)行譯碼結(jié)束五、卷積碼編譯碼程序的編譯及仿真波形5.1 卷積碼編碼仿真 5.2卷積碼譯碼仿真 5.3卷積碼糾錯(cuò)碼仿真六、總結(jié)此課程設(shè)計(jì)對(duì)整個(gè)通信系統(tǒng)包含的編碼、傳輸和譯碼都進(jìn)行了設(shè)計(jì)與仿真,從這些過程中我們看到了通信系統(tǒng)的基本工作原理。通過整個(gè)卷積碼系統(tǒng)的設(shè)計(jì)與仿真,使我們加深了對(duì)卷積碼的理解,掌握維特比譯碼的基本思路,知道如何進(jìn)行誤碼率分析從而選者合適的信道傳輸信號(hào),更重要的是學(xué)會(huì)了使用Matlab作為學(xué)習(xí)工具來對(duì)我們的通信系統(tǒng)進(jìn)行

21、設(shè)計(jì)和仿真等操作,這對(duì)我們以后的學(xué)習(xí)和工作有著重要意義。通過課程設(shè)計(jì),讓我知道了許多的生活道理,在剛剛收到老師發(fā)給我們的題目之后,感覺很是簡單,但在真正的著手開始做的時(shí)候,才發(fā)現(xiàn)問題很多,而最重要的問題是在程序編譯中,還有其中的原理有許多的地方不明白,對(duì)很多的名詞不知道什么意思,之后,通過在圖書館借書,上網(wǎng)查資料,在課堂上問老師,和團(tuán)隊(duì)的同學(xué)進(jìn)行討論等等,我的問題終于一點(diǎn)點(diǎn)的解決,程序也一點(diǎn)點(diǎn)的編譯了出來,仿真圖像也很好的顯示出來。這讓我明白了幾個(gè)道理,首先,我們不能小看一件小事情,所有的大事情都是在一件件的小事上建立起來的。其二,那些看是簡單的事情,當(dāng)我們真正開始做的時(shí)候,就會(huì)發(fā)現(xiàn)不是輕而易

22、舉就可以完成的,告訴我們更重要的是注重我們的動(dòng)手能力。其三,我們都知道的是眾人拾柴火焰高的道理,這次,讓我更加的明白了它的含義,尤其是在這個(gè)競爭異常激烈的今天,我們更應(yīng)該注重團(tuán)隊(duì)的力量,一個(gè)人單槍匹馬,最終會(huì)被社會(huì)淘汰,而只有那些懂得團(tuán)隊(duì)的人才能立足??傊鐾暾麄€(gè)課程設(shè)計(jì),獲益良多。在課程設(shè)計(jì)的過程中,我對(duì)于程序的仿真有很多的不明白地方。但是,在老師和同學(xué)的幫助下,我認(rèn)真學(xué)習(xí),努力的做到最好。在過程中,我漸漸地學(xué)會(huì)了很多程序仿真的內(nèi)容。終于,在最后的幾天,我成功地仿真出我想要的程序內(nèi)容??偟膩碚f,我們無論遇到什么問題都不要放棄,而要努力認(rèn)真地去對(duì)待它,從而解決它。 最后,非常感謝鄭玉峰老師的幫

23、助,讓我順利的完成了這次課程設(shè)計(jì)。七、參考文獻(xiàn)1.李建新.現(xiàn)代通信系統(tǒng)分析與仿真-MATLAB通信工具箱.西安:西安電子科技大學(xué)出版社,2000.2.樊昌信.通信原理.北京:國防工業(yè)出版社,2002.3.劉敏.MATLAB通信仿真與應(yīng)用.北京:國防工業(yè)出版社.4.吳偉陵等著.移動(dòng)通信原理.北京:電子工業(yè)出版社,2005. 5 鄧華. Matlab通信仿真及應(yīng)用實(shí)例詳解. 北京:人民郵電出版社,2003.921附錄:decode.mclear;clc; word = input('請(qǐng)輸入收到的編碼:');wordmsg = decode_conv212(word);wordr =

24、 encode_conv212(msg);c=1;for i=1:1:length(word) if word(i)=wordr(i) c=0; s=i; endendif c=0 fprintf('錯(cuò)誤出現(xiàn)在第%1.0f位n',s); wordrelse fprintf('信息編碼無錯(cuò)誤');endmsga=length(msg);x=.01:.01:a;m,n=size(msg'*ones(1,100);y=reshape(msg'*ones(1,100)',1,m*n);subplot(2,1,2)plot(x,y)title(&#

25、39;信息碼序列')xlabel('t')ylabel('msg')axis(0 length(msg) -0.5 1.5)b=length(word);x=.01:.01:b;m,n=size(word'*ones(1,100);y=reshape(word'*ones(1,100)',1,m*n);subplot(2,1,1)plot(x,y)hold onif c=0 z=reshape(wordr'*ones(1,100)',1,m*n); plot(x,z,'-r')endtitle(&#

26、39;編碼序列')xlabel('t')ylabel('word')axis(0 length(word) -0.5 1.5) decode_conv212.mfunction msg = decode_conv212(word)chip = 5; for i = 1:2chip M(i,:) = de2bi(i-1,chip); W(i,:) = encode_conv212(M(i,:); D(i) = hamming_distance(W(i,:),word(1:chip*2);endval,index = sort(D); ret_msg = z

27、eros(1,length(word)/2); for i = 1:6 ret_msg(i,1:chip) = M(index(i),:); ret_dis(i) = D(index(i); enditer = (length(word)-chip*2)/2; for i=1:iter for j=1:6 msg_temp1 = ret_msg(j,1:chip+i-1) 0; msg_temp2 = ret_msg(j,1:chip+i-1) 1; word_temp1 = encode_conv212(msg_temp1); word_temp2 = encode_conv212(msg_

28、temp2); dis_temp1 = hamming_distance(word_temp1,word(1:chip*2+2*i); dis_temp2 = hamming_distance(word_temp2,word(1:chip*2+2*i); if (dis_temp1<dis_temp2) ret_msg(j,1:chip+i) = msg_temp1; ret_dis(j) = dis_temp1; else ret_msg(j,1:chip+i) = msg_temp2; ret_dis(j) = dis_temp2; end endendval,index = sort(ret_dis);msg =ret_msg(index(1),:); encode.mclear;clc; msg = input('請(qǐng)輸入信息碼序列:');msga=length(msg);x=.01:.01:a;m,n=size(msg'*ones(1,100);y=reshape(msg&#

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論