![基于MATLAB的卷積碼編譯碼器設(shè)計_第1頁](http://file4.renrendoc.com/view/81fd8b9a4ed8fef786904f6e32961651/81fd8b9a4ed8fef786904f6e329616511.gif)
![基于MATLAB的卷積碼編譯碼器設(shè)計_第2頁](http://file4.renrendoc.com/view/81fd8b9a4ed8fef786904f6e32961651/81fd8b9a4ed8fef786904f6e329616512.gif)
![基于MATLAB的卷積碼編譯碼器設(shè)計_第3頁](http://file4.renrendoc.com/view/81fd8b9a4ed8fef786904f6e32961651/81fd8b9a4ed8fef786904f6e329616513.gif)
![基于MATLAB的卷積碼編譯碼器設(shè)計_第4頁](http://file4.renrendoc.com/view/81fd8b9a4ed8fef786904f6e32961651/81fd8b9a4ed8fef786904f6e329616514.gif)
![基于MATLAB的卷積碼編譯碼器設(shè)計_第5頁](http://file4.renrendoc.com/view/81fd8b9a4ed8fef786904f6e32961651/81fd8b9a4ed8fef786904f6e329616515.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊基于MATLAB的卷積碼編譯碼器設(shè)計基于MATLAB的卷積碼編譯碼器設(shè)計第第頁第一章緒論1.1引言1.1.1卷積碼發(fā)展背景概述卷積碼又稱連環(huán)碼,最早于1955年由Elias等人提出。而后1957年Wozencraft提出了一種有效的譯碼方法即序列譯碼。1963年Messey提出了一種性能稍差但比較實用的大數(shù)邏輯譯碼即門限譯碼,使卷積碼開始應(yīng)用與實際。1967年Viterbi提出了最大似然譯碼算法,被稱為Viterbi譯碼。Viterbi譯碼作為最優(yōu)譯碼算法,有如下特點:(1)維特比算法是最大似然的序列譯碼算法(2)譯碼復(fù)雜度與信道質(zhì)量無關(guān)(3)運算量與碼長呈線性關(guān)系(4)存貯量與碼長呈線性關(guān)系(5)運算量和存貯量都與狀態(tài)數(shù)呈線性關(guān)系(6)狀態(tài)數(shù)隨分組大小k及編碼深度m呈指數(shù)關(guān)系卷積碼在現(xiàn)代通信中已被廣泛應(yīng)用。1.1.2本課題意義在移動通信系統(tǒng)中,數(shù)字信號在無線信道中傳輸時,由于信道自身條件特性的不理想,會受到諸多噪聲干擾的影響,因而產(chǎn)生誤碼。為了在已知信噪比的情況下達到一定的誤碼率指標(biāo),除在合理設(shè)計基帶信號,選擇調(diào)制解調(diào)方式,并采用信道均衡,分集等措施的基礎(chǔ)上,還應(yīng)使用信道編碼與交織,使誤碼率進一步的降低。差錯控制編碼已經(jīng)十分成熟的應(yīng)用于信道編碼技術(shù)之中。卷積碼和分組碼是差錯控制編碼的兩種主要形式,在編碼器復(fù)雜度相同的情況下,卷積碼的性能優(yōu)于分組碼,因此卷積碼幾乎被應(yīng)用在所有無線通信的標(biāo)準(zhǔn)之中。如:(1)低碼率卷積碼應(yīng)用于擴頻通信系統(tǒng)(2)VD及VLSI的實現(xiàn)(3)卷積碼UEP方案用于分等級傳輸(4)語音壓縮(5)卷積碼糾錯用于多媒體廣播系統(tǒng)1.2本課題主要研究內(nèi)容熟練掌握卷積碼的編碼及Viterbi譯碼原理:編碼原理:卷積碼在編碼時將k比特的信息段編成n個比特的碼組,監(jiān)督碼元不僅和當(dāng)前的k比特信息段有關(guān),而且還同前面m=(N-1)個信息段有關(guān)。通常將N稱為編碼約束長度,表示編碼過程中相互約束的碼段個數(shù)。編碼過程中相互關(guān)聯(lián)的碼元有n*N個。R=k/n為編碼效率。約束長度和編碼效率是衡量卷積碼的兩個重要參數(shù)。一般來說,卷積碼中k和n的值是比較小的整數(shù),而N可取較大。將卷積碼記作(n,k,N)。維特比譯碼算法基本原理是:將接收到的信號序列和所有可能的發(fā)送信號序列比較,選擇其中漢明距離最小的序列認為是當(dāng)前發(fā)送序列。在此基礎(chǔ)上運用MATLAB對卷積碼的編譯碼進行仿真并分析其性能。卷積碼的相關(guān)概念2.1信道編碼2.1.1信道編碼的原理信道編碼是為了與信道的統(tǒng)計特性相匹配,并區(qū)分通路和提高通信的可靠性,而在信源編碼的基礎(chǔ)上,按一定規(guī)律加入一些新的監(jiān)督碼元,以實現(xiàn)糾錯的編碼。信道編碼大致分為兩類:①信道編碼定理,從理論上解決理想編碼器、譯碼器的存在性問題,也就是解決信道能傳送的最大信息率的可能性和超過這個最大值時的傳輸問題。②構(gòu)造性的編碼方法以及這些方法能達到的性能界限。編碼定理的證明,從離散信道發(fā)展到連續(xù)信道,從無記憶信道到有記憶信道,從單用戶信道到多用戶信道,從證明差錯概率可接近于零到以指數(shù)規(guī)律逼近于零,正在不斷完善。編碼方法,在離散信道中一般用代數(shù)碼形式,其類型有較大發(fā)展,各種界限也不斷有人提出,但尚未達到編碼定理所啟示的限度,尤其是關(guān)于多用戶信道,更顯得不足。在連續(xù)信道中常采用正交函數(shù)系來代表消息,這在極限情況下可達到編碼定理的限度。不是所有信道的編碼定理都已被證明。只有無記憶單用戶信道和多用戶信道中的特殊情況的編碼定理已有嚴格的證明;其他信道也有一些結(jié)果,但尚不完善。信道編碼還有以下幾類方式:按字碼的功能分為糾錯碼和檢錯碼;按監(jiān)督碼元與信息碼元分為線性碼和非線性碼;按照對信息碼元和監(jiān)督碼元的約束關(guān)系的不同又分為分組碼和卷積碼,按照信息碼元在編碼后是否保持原來的形式分類,有系統(tǒng)碼和非系統(tǒng)碼。線性分組碼是差錯控制碼,由于認識此種碼的思路與概念直觀而條理清晰,并對編碼中的一些重要參量和糾錯能力提供一系列明確的概念,從而也為介紹其它差控碼奠定有力基礎(chǔ)。分組碼是一組固定長度的碼組,可表示為(n,k),通常它用于前向糾錯。在分組碼中,監(jiān)督位被加到信息位之后,形成新的碼。在編碼時,k個信息位被編為n位碼組長度,而n-k個監(jiān)督位的作用就是實現(xiàn)檢錯與糾錯。當(dāng)分組碼的信息碼元與監(jiān)督碼元之間的關(guān)系為線性關(guān)系時,這種分組碼就稱為線性分組碼。對于長度為n的二進制線性分組碼,它有種可能的碼組,從種碼組中,可以選擇M=個碼組(k<n)組成一種碼。這樣,一個k比特信息的線性分組碼可以映射到一個長度為n碼組上,該碼組是從M=個碼組構(gòu)成的碼集中選出來的,這樣剩下的碼組就可以對這個分組碼進行檢錯或糾錯。線性分組碼是建立在代數(shù)群論基礎(chǔ)之上的,各許用碼的集合構(gòu)成了代數(shù)學(xué)中的群,它們的主要性質(zhì)如下:(1)任意兩許用碼之和(對于二進制碼這個和的含義是模二和)仍為一許用碼,也就是說,線性分組碼具有封閉性;(2)碼組間的最小碼距等于非零碼的最小碼重。RS碼即里德-所羅門碼,它是能夠糾正多個錯誤的糾錯碼。前向糾錯碼(FEC)的碼字是具有一定糾錯能力的碼型,它在接收端解碼后,不僅可以發(fā)現(xiàn)錯誤,而且能夠判斷錯誤碼元所在的位置,并自動糾錯。這種糾錯碼信息不需要儲存,不需要反饋,實時性好。所以在廣播系統(tǒng)(單向傳輸系統(tǒng))都采用這種信道編碼方式。RS碼為(204,188,t=8),其中t是可抗長度字節(jié)數(shù),對應(yīng)的188符號,監(jiān)督段為16字節(jié)(開銷字節(jié)段)。實際中實施(255,239,t=8)的RS編碼,即在204字節(jié)(包括同步字節(jié))前添加51個全“0”字節(jié),產(chǎn)生RS碼后丟棄前面51個空字節(jié),形成截短的(204,188)RS碼。RS的編碼效率是:188/204。卷積碼非常適用于糾正隨機錯誤,但是,解碼算法本身的特性卻是:如果在解碼過程中發(fā)生錯誤,解碼器可能會導(dǎo)致突發(fā)性錯誤。為此在卷積碼的上部采用RS碼塊,RS碼適用于檢測和校正那些由解碼器產(chǎn)生的突發(fā)性錯誤。所以卷積碼和RS碼結(jié)合在一起可以起到相互補償?shù)淖饔?。卷積碼分為兩種:(1)基本卷積碼:基本卷積碼編碼效率為,η=1/2,編碼效率較低,優(yōu)點是糾錯能力強。(2)收縮卷積碼:如果傳輸信道質(zhì)量較好,為提高編碼效率,可以采樣收縮截短卷積碼。有編碼效率為:η=1/2、2/3、3/4、5/6、7/8這幾種編碼效率的收縮卷積碼。編碼效率高,一定帶寬內(nèi)可傳輸?shù)挠行П忍芈试龃?但糾錯能力越減弱。1993年誕生的Turbo碼,單片Turbo碼的編碼/解碼器,運行速率達40Mb/s。該芯片集成了一個32×32交織器,其性能和傳統(tǒng)的RS外碼和卷積內(nèi)碼的級聯(lián)一樣好。所以Turbo碼是一種先進的信道編碼技術(shù),由于其不需要進行兩次編碼,所以其編碼效率比傳統(tǒng)的RS+卷積碼要好。2.1.2信道編碼的分類信道編碼有多種分類方式,主要有按照關(guān)系、范圍及用途三種。(1)根據(jù)糾錯碼各碼組信息元和監(jiān)督元的函數(shù)關(guān)系,可分為線性碼和非線性碼。如果函數(shù)關(guān)系是線性的,即滿足一組線性方程式,則稱為線性碼,否則為非線性碼。(2)根據(jù)上述關(guān)系涉及的范圍,可分為分組碼和卷積碼。分組碼的各碼元僅與本組的信息元有關(guān);卷積碼中的碼元不僅與本組的信息元有關(guān),而且還與前面若干組的信息元有關(guān)。(3)根據(jù)碼的用途,可分為檢錯碼和糾錯碼。檢錯碼以檢錯為目的,不一定能糾錯;而糾錯碼以糾錯為目的,一定能檢錯。2.2差錯控制編碼2.2.1差錯控制碼的基本概念和分類在實際信道上傳輸數(shù)字信號時,由于信道傳輸特性不理想和噪聲的影響,所收到的數(shù)字信號不可避免地會發(fā)生錯誤??梢酝ㄟ^合理設(shè)計基帶信號、加大發(fā)送功率、選擇合適的調(diào)制解調(diào)方式、采用均衡等措施,來降低碼元的誤碼率。若仍難以滿足要求,則需考慮采用差錯控制編碼技術(shù)。差錯控制編碼屬于信道編碼,其目的是用信道編碼的方法檢測和糾正誤碼,降低誤碼率。從差錯控制角度來看,根據(jù)加性干擾引起的錯碼分布規(guī)律的不同,信道可以分為隨機信道、突發(fā)信道和混合信道三類。隨機信道:信道中錯碼的出現(xiàn)是隨機的,且錯碼之間是統(tǒng)計獨立的。突發(fā)信道:信道中錯碼是成串集中出現(xiàn)的?;旌闲诺溃盒诺乐屑却嬖陔S機錯碼、又存在突發(fā)錯碼。對于不同類型的信道,應(yīng)采用不同的差錯控制技術(shù)。常用的差錯控制方式:1、檢錯重發(fā)(ARQ)接收端按一定規(guī)則對收到的碼組進行有無錯誤的判別。若發(fā)現(xiàn)有錯,則通知發(fā)送端重發(fā),直到正確收到為止。2、前向糾錯(FEC)發(fā)送端將信息序列編碼成能夠糾正錯誤的碼,接收端根據(jù)編碼規(guī)則進行檢查,如果有錯自動糾正。3、混合糾錯檢錯(HEC)是檢錯重發(fā)和前向糾錯的結(jié)合。發(fā)端發(fā)出同時具有檢錯和糾錯能力的碼,收端收到后,檢查錯誤情況:如果錯誤在糾錯能力之內(nèi),則自動糾正;若超出糾錯能力,但在檢錯能力之內(nèi),則經(jīng)反向信道要求重發(fā)。4、信息反饋(IRQ)又叫反饋校驗方式。收端把收到的數(shù)據(jù)序列全部經(jīng)反向信道送回發(fā)端,發(fā)端比較發(fā)出和送回的數(shù)據(jù)序列,從而發(fā)現(xiàn)有否錯誤,并把有錯誤的數(shù)據(jù)序列再次傳送,直到發(fā)端沒有發(fā)現(xiàn)錯誤。差錯控制編碼分類:根據(jù)分類依據(jù)的不同,差錯控制編碼可劃分如下:按監(jiān)督碼元和信息碼元關(guān)系:線性碼、非線性碼按監(jiān)督碼元和信息碼元之間的約束關(guān)系:分組碼、卷積碼按差錯控制編碼的功能:檢錯碼、糾錯碼、糾刪碼按糾正錯誤的類型:糾隨機錯誤的碼、糾突發(fā)錯誤的碼按編碼的數(shù)學(xué)方式不同:代數(shù)碼、幾何碼、算術(shù)碼2.2.2線性分組碼及循環(huán)碼的簡單介紹線性分組碼線性分組碼中的線性是指碼組中碼元間的約束關(guān)系是線性的,而分組則是對編碼方法而言,即編碼時將每k個信息位分為一組進行獨立處理,變換成長度為n(n>k)的二進制碼組。線性分組碼的編碼過程可以簡單描述成一個矢量和一個矩陣相乘的結(jié)果,即C=mG,其中C是經(jīng)過編碼后得到的n維編碼輸出{c0,c1,…,cn-1},m是信息序列分組{m0,m1,…,mk-1},G是由k個n維矢量{g0,g1,…,gk-1}構(gòu)成的矩陣。線性分組碼編碼問題的核心就是如何在n維線性空間Vn中找出滿足一定要求的、由2k個矢量組成的k維線性子空間,也就是說,在滿足給定碼字最小距離或編碼速率的前提下,如何根據(jù)已知的k個信息比特求得r=n-k個校驗比特。通過對碼字生成矩陣G的初等變換,可以得到惟一的行簡化梯形矩陣,再經(jīng)過列交換可以得到如下形式的生成矩陣。(2.1)其中P是k×(n-k)的矩陣。這種形式的生成矩陣G稱為標(biāo)準(zhǔn)生成矩陣,按照標(biāo)準(zhǔn)矩陣生成的碼字為(2.2)其中前n-k-1個比特為校驗比特,其值為(2.3)后面k個比特就是信息比特。這種在生成碼字中包含信息序列的編碼碼字稱為線性系統(tǒng)分組碼,簡稱為系統(tǒng)碼。系統(tǒng)碼的編碼結(jié)構(gòu)相當(dāng)簡單,以系統(tǒng)(7,4)為例,其生成矩陣為:(2.4)系統(tǒng)碼的編碼結(jié)構(gòu)非常簡單,比如對系統(tǒng)(7,4)碼,根據(jù)上面的生成矩陣G,只要在輸入編碼器的每組k個數(shù)字的后面,附加上(n-k)個監(jiān)督碼元就可得到所編出的n個碼字。系統(tǒng)(7,4)碼對應(yīng)的監(jiān)督矩陣為(2.5)假如發(fā)送的碼字為c=(1001011),而接收到的碼字為Y=(1001001),信道傳輸中產(chǎn)生的錯誤為e=(0000010)。由S=y·HT可求出S=(1,1,1)。循環(huán)碼循環(huán)碼是線性分組碼中最重要的一類,循環(huán)碼是指碼集合中的任一碼字經(jīng)過循環(huán)移位后得到的碼字仍然是碼集合中的碼字。循環(huán)碼的碼字可以用矢量的形式表示,即:(2.6)也可用碼多項式表示,即:(2.7)循環(huán)碼c向右移一位的碼字可由下式得出(2.8)循環(huán)碼可由它的生成多項式(2.9)唯一確定。信息序列也可以表示成多項式(2.10)那么生成碼字可表示成(2.11)由于多項式乘法等價于多項式系數(shù)的卷積,故(2.12)循環(huán)碼編碼則可以通過移位寄存器組成的乘法電路結(jié)構(gòu)實現(xiàn)。由數(shù)論知識可知,(n,k)循環(huán)碼的生成多項式g(x)一定是xn-1的n-k次因式:(2.13)反之,若g(x)為n-k次多項式,且xn-1能被g(x)整除,則g(x)一定能生成一個(n,k)循環(huán)碼。以g(x)為生成多項式所構(gòu)成的(n,k)循環(huán)碼中g(shù)(x),xg(x),…,xk-1g(x)(2.14)等七個多項式必定是線性無關(guān),則循環(huán)碼的生成矩陣G為(2.15)循環(huán)碼的編碼也可以通過移位寄存器組成的除法電路結(jié)構(gòu)實現(xiàn)。以(7,4)循環(huán)碼為例,選(7,4)碼生成矩陣g(x)=g3(x)=1+x+x3(2.16)它除盡1+x7,若輸入信息碼元為m(x)=1+x3則由(2.17)因此,碼多項式為(2.18)對應(yīng)的碼字為C=(0111001)其中最右邊的4位是信息元,詳細的編碼過程如下:三級移位寄存器初始狀態(tài)為000,此時門打開,信息組以(2.19)即1001次序分兩路進入編碼器:一路直接輸出;另一路送入g(x)除法電路。經(jīng)4次移位后,信息組1001全部輸出,它就是系統(tǒng)碼的4個信息元;另一路則將全部信息元送入g(x)除法電路,并完成除法運算,這時移位寄存器中的狀態(tài)就是余式r(x)系數(shù),即為碼的監(jiān)督元(c0c1c2)。輸出開關(guān)倒向上面2,經(jīng)3次移位,移位器由監(jiān)督元(c0c1c2),跟在信息元(c3c4c5c6)后面依次輸出為C=(c0c1c2c3c4c5c6)=(0111001)。送入第二組信息元,重復(fù)上述過程。該碼最小距離為3,它能糾正7個碼元一組中任何單個錯誤,這7種錯誤圖樣和全零矢量一起組成譯碼表的陪集首,它組成了所有可能糾正的圖樣?,F(xiàn)假設(shè)接收的多項式為(2.20)即Y=(1111001)。譯碼器工作步驟如下:將移位寄存器清零。(2)輸入Y分兩路進入譯碼器:一路進入緩存器;另一路經(jīng)門1進入伴隨式計算電路與寄存器,并分別計算S0、S1、S2值。(3)在輸出Y的同時,S0、S1、S2依次循環(huán)移位。無錯誤時,錯誤檢測電路無輸出,最后輸出的碼字C的碼元與Y相對應(yīng)碼元一致,有錯誤時,S0=S2=1,S1=0,錯誤檢測電路輸出為“1”,它正好與Y中錯誤位在輸出端的模2加中相遇,并予以糾正后再輸出。2.3卷積碼2.3.1卷積碼的基本概念卷積碼(convolutionalcode)是由伊利亞斯(P·Elias)發(fā)明的一種非分組碼。它與前面一節(jié)所討論的分組碼不同,是一種非分組碼。通常它更適用于前向糾錯,因為對于許多實際情況它的性能優(yōu)于分組碼,而且運算簡單。在分組碼中,編譯器產(chǎn)生的n個碼元的一個碼組,完全取決于這段時間中k比特輸入信息。這個碼組中的監(jiān)督位僅監(jiān)督本碼組中的k個信息位。卷積碼則不同。卷積碼在編碼時雖然也是把k個比特的信息段編成n個比特的碼組,但是監(jiān)督碼元不僅和當(dāng)前的k比特信息段有關(guān),還與前面m=(N-1)個信息段有關(guān)。所以一個碼組中的監(jiān)督碼元監(jiān)督著N個信息段。通常將N稱為編碼約束度,并將nN稱為編碼約束長度。一般說來,對于卷積碼,k和n的值是比較小的整數(shù)。我們將卷積碼記作(n,k,N)。碼率則仍定義為k/n。卷積碼是一種性能優(yōu)越的信道編碼,它的編碼器和解碼器都比較易于實現(xiàn),同時還具有較強的糾錯能力,這使得它的使用越來越廣泛。我們在一些資料上可以找到關(guān)于分組碼的一些介紹,分組碼的實現(xiàn)是將編碼信息分組單獨進行編碼,因此無論是在編碼還是譯碼的過程中不同碼組之間的碼元無關(guān)。卷積碼和分組碼的根本區(qū)別在于,它不是把信息序列分組后再進行單獨編碼,而是由連續(xù)輸入的信息序列得到連續(xù)輸出的已編碼序列。即進行分組編碼時,其本組中的n-k個校驗元僅與本組的k個信息元有關(guān),而與其它各組信息無關(guān);但在卷積碼中,其編碼器將k個信息碼元編為n個碼元時,這n個碼元不僅與當(dāng)前段的k個信息有關(guān),而且與前面的(N-1)段信息有關(guān)(N為編碼的約束長度)。同樣,在卷積碼譯碼過程中,不僅從此時刻收到的碼組中提取譯碼信息,而且還要利用以前或以后各時刻收到的碼組中提取有關(guān)信息。而且卷積碼的糾錯能力隨約束長度的增加而增強,差錯率則隨著約束長度增加而呈指數(shù)下降。卷積碼(n,k,N)主要用來糾隨機錯誤,它的碼元與前后碼元有一定的約束關(guān)系,編碼復(fù)雜度可用編碼約束長度N*n來表示。一般地,最小距離d表明了卷積碼在連續(xù)N段以內(nèi)的距離特性,該碼可以在N個連續(xù)碼流內(nèi)糾正(d-1)/2個錯誤。卷積碼的糾錯能力不僅與約束長度有關(guān),還與采用的譯碼方式有關(guān)??傊?,由于n,k較小,且利用了各組之間的相關(guān)性,在同樣的碼率和設(shè)備的復(fù)雜性條件下,無論理論上還是實踐上都證明:卷積碼的性能至少不比分組碼差。以二元碼為例,輸入信息序列為u=(u0,u1,…),其多項式表示為u(x)=u0+u1x+…+ulxl+…。編碼器的連接可用多項式表示為g(1,1)(x)=1+x+x2和g(1,2)(x)=1+x2,稱為碼的子生成多項式。它們的系數(shù)矢量g(1,1)=(111)和g(1,2)=(101)稱作碼的子生成元。以子生成多項式為陣元構(gòu)成的多項式矩陣G(x)=[g(1,1)(x),g(1,2)(x)],稱為碼的生成多項式矩陣。由生成元構(gòu)成的半無限矩陣稱為碼的生成矩陣。其中(11,10,11)是由g(1,1)和g(1,2)交叉連接構(gòu)成。編碼器輸出序列為c=u·G,稱為碼序列,其多項式表示為c(x),它可看作是兩個子碼序列c(1)(x)和c(2)(x)經(jīng)過合路開關(guān)S合成的,其中c(1)(x)=u(x)g(1,1)(x)和c(2)(x)=u(x)g(1,2)(x),它們分別是信息序列和相應(yīng)子生成元的卷積,卷積碼由此得名。在一般情況下,輸入信息序列經(jīng)過一個時分開關(guān)被分成k0個子序列,分別以u(x)表示,其中i=1,2,…k0,即u(x)=[u(x),…,u(x)]。編碼器的結(jié)構(gòu)由k0×n0階生成多項式矩陣給定。輸出碼序列由n0個子序列組成,即c(x)=[c(x),c(x),…,c(x)],且c(x)=u(x)·G(x)。若m是所有子生成多項式g(x)中最高次式的次數(shù),稱這種碼為(n0,k0,N)卷積碼。卷積碼中編碼后的n個碼元不僅與當(dāng)前段的k個信息有關(guān),而且也與前面(N-1)段的信息有關(guān),編碼過程中相互關(guān)聯(lián)的碼元為nN個。因此,這N時間內(nèi)的碼元數(shù)目nN通常被稱為這種碼的約束長度。卷積碼的糾錯能力隨著N的增加而增大,在編碼器復(fù)雜程度相同的情況下,卷段積碼的性能優(yōu)于分組碼。卷積碼也是分組的,但它的監(jiān)督元不僅與本組的信息元有關(guān),而且還與前若干組的信息元有關(guān)。卷積碼根據(jù)需要,有不同的結(jié)構(gòu)及相應(yīng)的糾錯能力,但都有類似的編碼規(guī)律。值得指出的是一種(2,1,N)卷積碼,其碼率為1/2,它的監(jiān)督位只有1位,編碼效率較高,也比較簡單。如使用較長的約束長度,則既可以糾正突發(fā)差錯,也可以糾正隨機差錯。2.3.2卷積碼的基本原理卷積碼的圖形描述圖2-1卷積碼編碼器以圖2-1的(3,1,3)卷積碼編碼器為例說明卷積碼編碼器的工作過程:圖2-1卷積碼編碼器S輸出序列m1,m2,…mj,…y1,jy2,j輸入序列y3,j3觸點轉(zhuǎn)換開關(guān)和一組3位移存器及模2加法器組成每輸入一個信息比特,經(jīng)該編碼器后產(chǎn)生3個輸出比特。為方便起見,先假設(shè)該移位寄存器的起始狀態(tài)全為零,當(dāng)?shù)谝粋€輸人比特為”0”時,輸出比特為OO0;若第一個輸人比特為I時,則輸出比特為111當(dāng)輸人第二比特時,第一比特右移一位。此時的輸出比特顯然與“當(dāng)前輸人比特和前一輸人比特”有關(guān)當(dāng)輸人第成比特時,第一和第二比特皆右移一位,可看到此時的輸出比特與“當(dāng)前輸入比特和前二位愉人比特”有關(guān)。當(dāng)?shù)谒谋忍剌斎藭r,原第一輸人比特已移出移位寄存器而消失,即第一輸人比特已不再影響當(dāng)前的輸人比特,如圖2-2所示,以上編碼器在移位過程中可能產(chǎn)生的各種序列,可用樹狀圖、網(wǎng)格圖或狀態(tài)圖來描述。tt輸出輸入t圖2-2編碼器輸入-輸出關(guān)系碼樹圖圖2-3給出了(3,1,3)卷積碼的樹狀圖。按照習(xí)慣的做法。碼樹的起始節(jié)點位于左邊;移位寄存器的初始狀態(tài)取00,取M1M2=00,用a來表示,并把該a標(biāo)注于起始節(jié)點處。當(dāng)輸人碼元是0時,則由節(jié)點出發(fā)走上支路;當(dāng)輸人碼元是1時.則由節(jié)點出發(fā)走下支路。例如,當(dāng)該編碼器第一輸入比特為0時,則走上支路,此時移存器的輸出碼“000”就寫在上支杈ddcbbaa000a011110001110001000111000111111000100101010ababccddadcbbaa111a01111010110001001110000111100011100101010ababccdd圖2-3(3,1,3)卷積碼的樹狀圖的上方;當(dāng)該編碼器第一輸人比特為1時,則走下支路,此時移存器的輸出碼“111”就寫在圖中下支杈的上方。在輸人第二比特時,移位寄存器右移一位,此時上支路情況下的移位寄存器的狀態(tài)為00,即a,并標(biāo)注于上支路節(jié)點處;此時下支路情況下的移位寄存器狀態(tài)為O1,即b,并標(biāo)注于下支路節(jié)點處;同時上下支路都將分兩杈。以后每一個新輸人比特都會使上下支路各分兩杈。經(jīng)過4個輸人比特后,得到的該編碼器的樹狀圖如圖2-3所示。樹狀圖中,節(jié)點上標(biāo)注的a表示M1M2=00,b表示M1M2=O1,。C表示M1M2=10,d表示M1M2=11。狀態(tài)圖當(dāng)網(wǎng)格圖達到穩(wěn)定狀態(tài)后,取出兩個節(jié)點間的一段網(wǎng)格圖,即得到圖2-4(a)的狀態(tài)轉(zhuǎn)移圖。此后,再把目前狀態(tài)與下一節(jié)拍狀態(tài)合并起來,即可得到圖2-4(b)的最簡的狀態(tài)轉(zhuǎn)移圖,稱之為卷積碼狀態(tài)圖。bbdcabdca100011110001010101111000a000adcb111100011010110110101b圖2-4(3,1,3)卷積碼狀態(tài)圖3)網(wǎng)格圖由樹狀圖看到,對于第j個輸人信息比特,相應(yīng)出現(xiàn)有條支路,且在時樹狀圖出現(xiàn)節(jié)點,自上而下重復(fù)取4種狀態(tài)。又看到,當(dāng)j變大時,圖的縱向尺寸越來越大。于是提出一種網(wǎng)格圖,注意到碼樹狀態(tài)的重復(fù)性,使圖形變得緊湊。上例(3,1,3)碼的網(wǎng)格圖示于圖2-5。網(wǎng)格圖中,把碼樹中具有相同狀態(tài)的節(jié)點合并在一起;碼樹中的上支路用實線表示,下支路用虛線表示;支路上標(biāo)注的碼元為輸出比特;自上而下的4行節(jié)點分別表示a,b,c,d的四種狀態(tài)。網(wǎng)格圖中的狀態(tài),通常有種狀態(tài)。從第N個節(jié)點開始.圖形開始重復(fù),且完全相同。aabcd000000000000000111111111111111011001001110010010010010010010110110110011011011011100圖2-5(3,1,3)卷積碼網(wǎng)格圖卷積碼的解析表述一個二元(2,1,4)卷積碼的編碼器,它是由k=1,即一個輸入位(端),n=2,即兩個輸出位(端),K=4,m=3即三級移位寄存器所組成的有限狀態(tài)的有記憶系統(tǒng)。(1)離散卷積若輸入信息序列為(這里的卷積碼是u0首先輸入)(2.21)則對應(yīng)輸出為兩個碼字序列(2.22)其相應(yīng)編碼方程可寫為(2.23)其中“*”表示卷積運算,g①、g②表示編碼器的兩個脈沖沖擊響應(yīng),即編碼可由輸入信息序列u和編碼器的兩個沖擊響應(yīng)的卷積得到,故稱為卷積碼[7]。這里的脈沖沖擊響應(yīng)是指,當(dāng)輸入信息為u=(100…)時,所觀察到的兩個輸出序列值。由于編碼器有m=3級寄存器,故沖激響應(yīng)至多可持續(xù)到K=m+1=3+1=4位,且可寫成:(2.24)在一般情況下有:(2.25)經(jīng)編碼器后,兩個輸出序列合并為一個輸出碼字序列為:(2.26)若輸入信息序列為:(2.27)則有:(2.28)(2.29)最后輸出的碼字為:(2.30)(2)生成矩陣上述沖激響應(yīng)g①g②又稱為生成序列,若將該生成序列g(shù)①g②按如下方法排列,構(gòu)成如下生成矩陣(當(dāng)K=4,m=3時):(2.31)上述矩陣中,其中空白部分均為0。則上述編碼方程可改為矩陣形式(2.32)G為卷積碼的生成矩陣,若輸入信息序列為一無限序列時,即u=(10111…),生成矩陣則為一個半無限矩陣,即有起點無終點,因此稱它為半無限。若:(2.33)則:(2.34)(3)碼多項式若將生成序列表達成多項式形式,有(2.35)輸入信息序列也可表達為多項式形式(2.36)則卷積碼可以用下列碼多項式形式表達(2.37)(2.38)2.3.3卷積碼的譯碼卷積碼的譯碼方式可以分為兩類:代數(shù)譯碼和概率譯碼。代數(shù)譯碼是利用編碼本身的代數(shù)結(jié)構(gòu)進行譯碼,不考慮信道的統(tǒng)計特性。大數(shù)邏輯譯碼,又稱門限譯碼,是卷積碼代數(shù)譯碼的最主要一種方法,也可以應(yīng)用于循環(huán)碼的譯碼。大數(shù)邏輯譯碼對于約束長度較短的卷積碼最為有效,而且設(shè)備較簡單。概率譯碼(又稱最大似然譯碼)則是基于信道的統(tǒng)計特性和卷積碼的特點進行計算。首先由沃曾克拉夫特針對無記憶信道提出的序貫譯碼就是概率譯碼方法之一;另一種概率譯碼方法是維特比(Viterbi)算法。當(dāng)碼的約束長度較短時,它比序貫譯碼算法的效率更高、速度更快,目前得到廣泛的應(yīng)用。維特比譯碼算法是維特比于1967年提出的。這種算法的基本原理是將接收到的信號序列和所有可能的發(fā)送信號序列比較,選擇其中漢明距離最小的序列認為是當(dāng)前發(fā)送信號序列。若發(fā)送一個k位序列,則有2k種可能的發(fā)送序列。當(dāng)K較大時,存儲量太大,使實用受到限制。維特比算法對此作了簡化,使之能夠?qū)嵱?。設(shè)發(fā)送信息位為:1101,為了使圖2-1中移存器的信息位全部移出,需要在信息位后面加入三個“0”,故經(jīng)過編碼后的發(fā)送序列為111110010100001011000,并且假設(shè)接收序列為111010010110001011000,其中第4和第11個碼元為錯碼。由于這是一個(n,k,N)=(3,1,3)卷積碼,發(fā)送序列的約束度N=3,所以首先需要考察nN=9。第一步考察接收序列前9位“111010010”。由此碼的網(wǎng)格圖2-6可見,沿路徑每一級有4種狀態(tài)a,b,c,d。每種狀態(tài)只有兩條路徑可以到達。故4種狀態(tài)有8條到達路徑?,F(xiàn)在比較網(wǎng)格圖中的這8條路徑和接收序列之間的漢明距離。例如,由出發(fā)點狀態(tài)a經(jīng)過三級路徑后到達狀態(tài)a的兩條路徑中上面一條為“000000000”。它和接收序列“111010010”的漢明距離等于5;下面一條為“111001011”,它和接收序列的漢明距離等于3。同樣,由出發(fā)點狀態(tài)a經(jīng)過三級路徑后到達狀態(tài)b,c,d的路徑分別都有兩條,故總共有8條路徑。在表2.1中列出了這8條路徑和漢明距離。a111a111001100b110c010d圖2-6(3,1,3)卷積碼編碼路徑舉例序號路徑對應(yīng)序列漢明距離幸存否1aaaa0000000005否2abca1110010113是3aaab0000001116否4abcb1110011004是5aabc0001110017否6abdc1111100101是7aabd0001111106否8abdd1111101014是表2.1現(xiàn)在將到達每個狀態(tài)的兩條路徑的漢明距離作比較,將距離小的一條路徑保留,稱為幸存路徑。若兩條路徑的漢明距離相同,則可以任意保存一條。這樣就剩下4條路徑了,即表中第2,4,6和8條路徑。第二步將繼續(xù)考察接收序列中的后繼3位“110”?,F(xiàn)在計算4條幸存路徑上增加一級后的8條可能路徑的漢明距離。計算結(jié)果列于表2.2中。序號路徑原幸存路徑的距離新增路徑段新增距離總距離幸存否1abca+a3aa25否2abdc+a1ca23是3abca+b3ab14否4abdc+b1cb12是5abcb+c4bc37否6abdd+c4dc15是7abcb+d4bd04是8abdd+d4dd26否表2.2維特比算法解碼第二步計算結(jié)果表2.2中最小的總距離等于2,其路徑是abdc+b,相應(yīng)序列為111110010100。它和發(fā)送序列相同,故對應(yīng)發(fā)送信息位1101。按照表2.2中的幸存路徑畫出的網(wǎng)格圖示于圖2-7中。圖中粗線路徑是漢明距離最小(等于2)的路徑。aa111b100011100001c110010110d010101010圖2-7對應(yīng)信息位“1101”的幸存路徑網(wǎng)格圖為了使輸入的信息位全部通過編碼器的移存器,使移存器回到初始狀態(tài),在信息位1101后面加了三個“0”。若把這三個“0”仍看作是信息位,則可以按照上述算法繼續(xù)解碼。這樣得到的幸存路徑網(wǎng)格圖示于圖2-8中,圖中的粗線仍然是漢明距離最小的路徑,但是,若已知這三個碼元是(為結(jié)尾而補充的)“0”。則在解碼計算時就預(yù)先知道在接收這三個“0”碼元后,路徑必然應(yīng)該回到狀態(tài)a。而由圖可見,只有兩條路徑可以回到a狀態(tài)。所以,這時圖2-8可以簡化成圖2-9。aa000000111011011011001100100001001110010010101101101b000000111011011011001100100001001110010010101101101bccdd圖2-8對應(yīng)信息位“1101000”的幸存路徑網(wǎng)格圖000000000000111011011011001100100001001110010010101101abcd圖2-9對應(yīng)信息位“1101”及以“000”結(jié)束的幸存路徑網(wǎng)格圖MATLAB基礎(chǔ)與其在通信系統(tǒng)中的應(yīng)用3.1MATLAB簡介MATLAB是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室)。MATLAB工作界面是由美國mathworks公司發(fā)布的主要面對科學(xué)計算、可視化以及交互式程序設(shè)計的高科技計算環(huán)境。它將數(shù)值分析、矩陣計算、科學(xué)數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計以及必須進行有效數(shù)值計算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計語言(如C、Fortran)的編輯模式,代表了當(dāng)今國際科學(xué)計算軟件的先進水平。MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計算、控制設(shè)計、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計與分析等領(lǐng)域。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點,使MATLAB成為一個強大的數(shù)學(xué)軟件。在新的版本中也加入了對C,F(xiàn)ORTRAN,C++,JAVA的支持。可以直接調(diào)用,用戶也可以將自己編寫的實用程序?qū)氲組ATLAB函數(shù)庫中方便自己以后調(diào)用,此外許多的MATLAB愛好者都編寫了一些經(jīng)典的程序,用戶直接進行下載就可以用。MATLAB主要功能有:數(shù)值分析、數(shù)值和符號計算、工程與科學(xué)繪圖、控制系統(tǒng)的設(shè)計與仿真、數(shù)字圖像處理、數(shù)字信號處理、通訊系統(tǒng)設(shè)計與仿真、財務(wù)與金融工程等。3.2MATLAB程序設(shè)計隨機計算技術(shù)的發(fā)展,各種各樣的應(yīng)用軟件越來越多,比如能夠支持數(shù)學(xué)計算的軟件就有多種:MATLAB、Mathmatica、Scilab等。MATLAB以其強大的矩陣計算能力使它在科學(xué)計算與工程設(shè)計中更具備競爭力,MATLAB集成了眾多基本的數(shù)據(jù)處理功能,可以完美支持數(shù)值與非數(shù)值運算,本小節(jié)學(xué)習(xí)基于MATLAB的基本編程語法。由MATLAB語句構(gòu)成的程序通常作為文件保存在后綴為.m的文件中,稱為M文件,可以使用任何一種文本編輯器來編寫M文件。M文件的文件名不能用漢字,也不能用數(shù)字開頭,只能用英文字符開頭,后綴數(shù)字等,長度可達255個字符。M文件一般有兩種類型:script文件(稱為正本文件)與function文件(稱為函數(shù)文件)。正本文件: 正本文件是由用戶編寫的一個包含一系列MATLAB正本的文本文件,在MATLAB工作空間的命令行提示符“>>”后敲入這個M文件的文件名就可以依次執(zhí)行這個M文件中的每條語句。當(dāng)需要從命令行中執(zhí)行多條命令時可以使用script文件,為此你只需要將希望執(zhí)行的命令逐行寫入script文件中,并保存在MATLAB工作目錄下。概括起來正本文件有如下特點:不需要任何實參代入,也不能返回任何輸出參數(shù);其中的變量作用于整個工作空間;使用工作空間中的數(shù)據(jù);不需要用到任何MATLAB關(guān)鍵字,直接在其中寫可以執(zhí)行的MATLAB語句;可以利用百分號作注釋。不能包含任何自定義函數(shù)。函數(shù)文件 可以利用MATLAB系統(tǒng)中的關(guān)鍵字與內(nèi)部函數(shù)來構(gòu)造用戶自己的函數(shù)即自定義函數(shù),并將這個函數(shù)保存在一個function文件中,它也以.m為擴展名,但要求文件名與函數(shù)名相同。概括起來function文件有如下特點:(1)文件第一行必須由關(guān)鍵字function開頭,后面緊跟函數(shù)原型:function[返回變量表]=函數(shù)名(形式參數(shù)表)比如二分法求非線性方程根,函數(shù)定義語句為function[x,abx]=cbisectionrule(f,interval,epsilon,N)其中function是關(guān)鍵字,返回變量多于兩個時要用方括號,這里有兩個返回變量x,abx;函數(shù)名為cbisection_rule;形式參數(shù)為:f,interval,epsilon,N共四個。(2)函數(shù)體可以由任何MATLAB語句構(gòu)成;(3)被包括在函數(shù)文件中的變量只能作用在這個函數(shù)文件內(nèi)部,不能被外部訪問,在MATLAB工作空間中用whos命令無法顯示函數(shù)文件中的變量,這與scripts文件不同。(4)同一個function文件中可以定義多個自定義函數(shù),第一個function定義的函數(shù)稱為主函數(shù),它的名字應(yīng)當(dāng)和文件同名,第二個function及以后各個function定義的函數(shù)稱為子函數(shù),它們只能被主函數(shù)調(diào)用,不能從文件外部訪問,但主函數(shù)可以被外部訪問。(5)有些函數(shù)文件可以直接在MATLAB命令行中通過敲入文件名來直接執(zhí)行;但是一些只包含形式參數(shù)的函數(shù)文件只能被其它函數(shù)文件調(diào)用。變量 MATLAB編程過程中必然要用到變量,使用MATLAB變量時要注意如下特點:(1)使用時不必預(yù)先聲明它的類型,而是直接對它進行賦值,這與C語言不同。變量的類型由表達式運算結(jié)果類型決定。(2)變量名必須以字母開頭,后綴任何字母、數(shù)字、下畫線,長度最多可達63個字符。(3)變量名中大小寫是有區(qū)別的,比如:Ab、aB,AB,ab是完全不同的四個變量。(4)用戶可以使用函數(shù)isvarname()來確定用戶給出的變量名是否合法,如果合法就返回1否則返回0。比如:8th_column就不是一個合法的函數(shù)名。(5)不要用MATLAB內(nèi)部的名字來命名自定義變量,比如MATLAB的缺省變量名、內(nèi)部函數(shù)名、關(guān)鍵字等。(6)每一個變量都有自己的作用域范圍,因此就有局部變量與全局變量之分,但是要盡量少用或不用全局變量,將每個變量的作用域限制在較小范圍之內(nèi),變量之間的數(shù)據(jù)交換使用子函數(shù)來進行,這樣也使得程序的模塊性更強,便于閱讀與分析。(7)MATLAB中的幾個特殊變量可以返回幾個重要特殊數(shù)值,可以直接在MATLAB語句中調(diào)用它們。3.3通信系統(tǒng)仿真3.3.1通信仿真的概念現(xiàn)代的通信系統(tǒng)越來越復(fù)雜,對這個系統(tǒng)做出的任何改變,如改變某個參數(shù)的設(shè)置或系統(tǒng)結(jié)構(gòu)等都可能影響整個系統(tǒng)的性能和穩(wěn)定。因此,在對原有的通信系統(tǒng)做出改進或建立一個新系統(tǒng)前,通常需要對這個系統(tǒng)進行建模和仿真,通過仿真結(jié)果衡量方案的可行性,從中選擇最合理的系統(tǒng)配置和參數(shù)設(shè)置,然后再應(yīng)用于實際系統(tǒng)中。這個過程就是通信仿真。通信系統(tǒng)的仿真往往涉及較多的研究領(lǐng)域,包括通信原理、數(shù)字信號處理、概率論、信號檢測與估計、隨機過程理論、信號系統(tǒng)理論等等。掌握通信原理是通信系統(tǒng)仿真的關(guān)鍵,而數(shù)字信號處理是用于開發(fā)構(gòu)成通信系統(tǒng)仿真模型的算法,現(xiàn)代通信系統(tǒng)的許多新技術(shù)都涉及算法,如多天線系統(tǒng)中波束成形算法、信道均衡中的算法等。通信系統(tǒng)的性能指標(biāo)通常以概率形式表示,如比特差錯概率。在許多情況下,仿真要處理的信號和噪聲均是隨機過程的一個樣本,而且,對于無線信道的描述也需要隨機過程理論。3.3.2通信仿真的基本方法從本質(zhì)上講,仿真方法論是很難系統(tǒng)化的,但除了最簡單的情況外,所有仿真問題都要涉及一些基本步驟:將給定問題映射為仿真模型;把整個問題分解為一組子問題;選擇合適的建模、仿真和估計方法,并將其用于解決這些子問題;綜合各子問題的解決結(jié)果以提供對整個問題的解決方案。對整個通信系統(tǒng)的仿真是一個復(fù)雜的問題,往往需要把問題進行分層,不同層次的仿真,其方法與目的不同??梢园逊抡娣譃樗膫€層次:系統(tǒng)級仿真、子系統(tǒng)級仿真、原件級仿真和電路級仿真。越高層次的仿真,抽象越多,涉及的模型細節(jié)越少;越低層次的仿真,越與實際硬件相近,涉及的硬件細節(jié)和參數(shù)越多。對于電路級仿真,人們更多的使用硬件原型來進行驗證和測試,在通信系統(tǒng)波形級仿真,很少涉及這一層次。通常情況下,人們盡可能高的抽象程度來仿真。因為越高的抽象意味著越少的參數(shù)和越高效的仿真。3.3.3仿真通信系統(tǒng)模型為了模擬實際通信系統(tǒng),需要建立通信系統(tǒng)模型,仿真通信系統(tǒng)框圖如圖3-1所示,其中序列為隨機輸入的二進制碼元,卷積編碼即是通過MATLAB仿真的部分。信道為簡單的加性高斯白噪聲信道,即產(chǎn)生誤碼的原因。調(diào)制方式為BPSK調(diào)制,譯碼方式采用了Viterbi算法的卷積碼譯碼,也是通過MATLAB仿真的部分。最終的信息輸出即為接收端。序列序列產(chǎn)生信道編碼BPSK
調(diào)制AWGN信道傳輸BPSK
解調(diào)Viterbi譯碼信息輸出圖3-1仿真通信系統(tǒng)框圖模型第四章卷積碼編譯碼的MATLAB仿真4.1卷積碼的編碼仿真在程序設(shè)計中,我們沒有采用MATLAB自帶的編碼函數(shù)而是采用了自己的編碼函數(shù)codec對(2,1,3)卷積碼編碼,其參數(shù)m為輸入信息序列,g1,g2為兩個輸出端口的沖激響應(yīng)序列。編碼程序如下:functioncod=codec(m,g1,g2)%g1,g2為兩輸出端口的沖激響應(yīng)序列。m1=conv(m,g1);%端口一輸出 m2=conv(m,g2);%端口二輸出l=length(m1);fori=1:l;cod([2*i-1])=rem(m1([i]),2);%將端口一編碼輸出賦給cod奇數(shù)位置cod([2*i])=rem(m2([i]),2);%將端口二編碼輸出賦給cod偶數(shù)位置end試運行編碼:clearallg1=[111];g2=[101];msg=[1101];cod=codec(msg,g1,g2)輸出為:cod=[110101001011]仿真結(jié)果如圖4-1圖4-1(2,1,3)卷積碼編碼4.2卷積碼的譯碼仿真Viterbi算法是通過加-比較-選擇來實現(xiàn)的,狀態(tài)量度的計算方法如下:將前兩個狀態(tài)點上的狀態(tài)量度和相應(yīng)分支量度相加,得到的兩個可能路徑量度作為新的狀態(tài)量度的候選項,送入邏輯單元中進行比較,將其中似然性最大(距離最小)的一個作為狀態(tài)的新狀態(tài)量度存儲,同時存儲的還有狀態(tài)新的路徑記錄,主要算法步驟為:(1)將接收到的序列分成每段長為n0的m組子序列。(2)對所研究的碼畫出深度為m級的網(wǎng)格圖。對該網(wǎng)格圖的最后(L-1)級僅畫出對應(yīng)于全0輸入序列的路徑。(3)置s=1,并置初始全0狀態(tài)的度量等于0。(4)對網(wǎng)格圖中全部連接第s級狀態(tài)到(s+1)級狀態(tài)的支路求出該接收序列中的第s個子序列的距離。(5)將這些距離加到第s級各狀態(tài)的度量上去,得到對第(s+1)級狀態(tài)的度量候選者。對于第(s+1)級的每一狀態(tài),有QUOTE個候選度量,其中每一個都對應(yīng)終止在那個狀態(tài)的一條支路。(6)對在第(s+1)級的每一狀態(tài),挑選出最小的候選度量,并將對應(yīng)于這個最小值的支路標(biāo)以留存支路,同時指定之歌候選度量的最小值作為第(s+1)級狀態(tài)的度量值。(7)若s=m,轉(zhuǎn)到下一步;否則將s增加1并轉(zhuǎn)到第4步。(8)在第(m+1)級以全0狀態(tài)開始,沿著留存支路通過網(wǎng)格圖往會到達初始全0狀態(tài),這條路徑就是最佳路徑,并且對應(yīng)于這條路徑的輸入比特序列是最大似然解碼序列。為了得到有關(guān)這個輸入比特序列最好的推測,將最后(L-1)k0個0從該序列中除掉。根據(jù)算法繪出程序流程圖如圖4-2示:程序初始化,將路徑信息和當(dāng)前累計度量值清零,統(tǒng)計碼長程序初始化,將路徑信息和當(dāng)前累計度量值清零,統(tǒng)計碼長對前兩步進行漢明距度量并保存路徑信息是否解碼完成計算能到達當(dāng)前狀態(tài)的兩條路徑將兩條路徑a,b輸出與輸入比較漢明距,并累加到路徑度量a路徑累計度量是否小于b選a為當(dāng)前點的最優(yōu)到達路徑選b為當(dāng)前點的最優(yōu)到達路徑選取度量值最小路徑輸出是否否是圖4-2Viterbi譯碼流程圖從Viterbi算法中可以看到,對于一個長信息序列解碼時,解碼延時和所需要的存儲量都是無法接受的。直到整個序列全被接收,解碼才能開始,而且還不得不將總的留存路徑存儲起來。實際上,不會引起這些問題的次優(yōu)解倒是很希望的。一種稱為路徑存儲截斷的辦法是:在每一級編碼器在網(wǎng)格圖中僅往會搜索w級,而不回到網(wǎng)格圖的出發(fā)點。用這種辦法在第(w+1)級解碼器對相應(yīng)于網(wǎng)格圖第1級的輸入比特作出判決,并且未來的接收比特不改變這個判決。這意味著解碼延時是k0w比特,需要保存的路徑只相應(yīng)于最后W級的路徑。計算機仿真已經(jīng)表明,如果W>5n,由于路徑存儲截斷造成的性能下降可忽略不計。Viterbi譯碼主程序如下:forj=0:number_of_states-1form=0:M-1[next_state,memory_contents]=nxt_stat(j,m,N,k);%調(diào)用nxt_stat函數(shù)input(j+1,next_state+1)=m;branch_output=rem(memory_contents*G',2);% nextstate數(shù)組記錄了當(dāng)前狀態(tài)j下輸入l時的下一個狀態(tài)nextstate(j+1,m+1)=next_state;% output數(shù)組記錄了當(dāng)前狀態(tài)j下輸入l時的輸出(十進制)output(j+1,m+1)=bin2deci(branch_output);endendstate_metric=zeros(number_of_states,2);depth_of_trellis=length(channel_output)/n;channel_output_matrix=reshape(channel_output,n,depth_of_trellis);survivor_state=zeros(number_of_states,depth_of_trellis+1);fori=1:depth_of_trellis-N+1flag=zeros(1,number_of_states);if(i<=N)step=2^(k*(N-i));elsestep=1;endforj=0:step:number_of_states-1form=0:M-1branch_metric=0;binary_output=deci2bin(output(j+1,m+1),n);forll=1:nbranch_metric=branch_metric+metric(channel_output_matrix(ll,i),binary_output(ll));end%選擇碼間距較小的路徑,即當(dāng)下一個狀態(tài)沒有被訪問時就直接賦值,否則,用比它小的將其覆蓋if((state_metric(nextstate(j+1,m+1)+1,2)>state_metric(j+1,1)+branch_metric)|flag(nextstate(j+1,m+1)+1)==0)state_metric(nextstate(j+1,m+1)+1,2)=state_metric(j+1,1)+branch_metric;survivor_state(nextstate(j+1,m+1)+1,i+1)=j;flag(nextstate(j+1,m+1)+1)=1;endendendstate_metric=state_metric(:,2:-1:1);endfori=depth_of_trellis-N+2:depth_of_trellisflag=zeros(1,number_of_states);last_stop=number_of_states/(2^(k*(i-depth_of_trellis+N-2)));forj=0:last_stop-1branch_metric=0;binary_output=deci2bin(output(j+1,1),n);forll=1:nbranch_metric=branch_metric+metric(channel_output_matrix(ll,i),binary_output(ll));endif((state_metric(nextstate(j+1,1)+1,2)>state_metric(j+1,1)+branch_metric)|flag(nextstate(j+1,1)+1)==0)state_metric(nextstate(j+1,1)+1,2)=state_metric(j+1,1)+branch_metric;survivor_state(nextstate(j+1,1)+1,i+1)=j;flag(nextstate(j+1,1)+1)=1;endendstate_metric=state_metric(:,2:-1:1);end%從最佳路徑中產(chǎn)生解碼,譯碼過程可從數(shù)組survivor_state的最后一個位置向前逐級譯碼state_sequence=zeros(1,depth_of_trellis+1);state_sequence(1,depth_of_trellis)=survivor_state(1,depth_of_trellis+1);fori=1:depth_of_trellisstate_sequence(1,depth_of_trellis-i+1)=survivor_state((state_sequence(1,depth_of_trellis+2-i)+1),depth_of_trellis-i+2);enddecoder_output_matrix=zeros(k,depth_of_trellis-N+1);fori=1:depth_of_trellis-N+1dec_output_deci=input(state_sequence(1,i)+1,state_sequence(1,i+1)+1);dec_output_bin=deci2bin(dec_output_deci,k);%將一次譯碼存入譯碼輸出矩陣decoder_output_matrix相應(yīng)的位置decoder_output_matrix(:,i)=dec_output_bin(k:-1:1)';enddecoder_output=reshape(decoder_output_matrix,1,k*(depth_of_trellis-N+1));cumulated_metric=state_metric(1,1);將程序在matlab中進行仿真,對于(2,1,3)譯碼,G=[111;101],channel_output=recv,此時令信噪比snr_db=12,得到仿真圖形如圖4-3所示:圖4-3viterbi譯碼輸出的是正確結(jié)果[1101],由理論分析知,信道編碼經(jīng)過bpsk調(diào)制,由于信道噪聲的干擾,在信號解調(diào)后會產(chǎn)生一定的差錯,維特比譯碼雖然有具有糾錯功能,但是畢竟是有限的,所以信噪比對viterbi譯碼性能將產(chǎn)生影響,且信噪比越大,維特比譯碼越準(zhǔn)確。為了驗證上述推論,將信噪比減小,令SNR=6。MATLAB仿真結(jié)果如圖4-4所示:當(dāng)信噪比降低到SNR=6時,譯碼輸出變?yōu)閇0111],產(chǎn)生了差錯。驗證了上述推論。圖4-4調(diào)整信噪比后的譯碼結(jié)果卷積碼的性能分析5.1信噪比對卷積碼譯碼性能的影響上述過程只是可以看出信噪比會影響維特比譯碼的性能,為了進一步得到兩者更加直觀的聯(lián)系,我們可以通過編程得到信噪比與誤碼率之間的函數(shù)關(guān)系,同時將沒有進行卷積碼的信號也計算其誤碼率。代碼如下:clearall;clc;snr_db=0:10;%信息源msg=randint(1,1e3);ber0=zeros(1,length(snr_db));ber1=zeros(1,length(snr_db));%Trellisestrel=poly2trellis(3,[75]);%Definetrellisforrate1/2code.forn=1:length(msg)/2;forx=1:length(snr_db)%Codewordscode=convenc(msg,trel);%Encode.state=20;inter=randintrlv(code,state);%BPSK調(diào)制s0=sign(msg-0.5);s1=sign(inter-0.5);%AWGNChanneladd_noise0=awgn(s0,snr_db(x),'measured');add_noise1=awgn(s1,snr_db(x),'measured');%Deinterleaverwithnoiseforsoftdecodingdeinter_noise=randdeintrlv(add_noise1,state);%解調(diào)r_0=0.5*sign(add_noise0)+0.5;r_1=0.5*sign(add_noise1)+0.5;%Deinterleaverdeinter_1=randdeintrlv(r_1,state);%Tracebacklengthtblen=5;%vitdec判決decoded1=vitdec(deinter_1,trel,tblen,'cont','hard');%vitdec判決%比較誤碼率[num0,rat0]=biterr(r_0,msg);[num1,rat1]=biterr(double(decoded1(tblen+1:end)),msg(1:end-tblen));ber0(n,x)=rat0;ber1(n,x)=rat1;endendber0=mean(ber0);ber1=mean(ber1);程序在matlab中運行,得到仿真圖如圖5-1所示,該圖直觀的反映了經(jīng)過卷積碼編碼和沒有經(jīng)過卷積碼編碼的誤碼率之間的區(qū)別。從圖中可以看出,當(dāng)信噪比較小時,未編碼的誤碼率反而比采用編碼的誤碼率低,這是因為誤比特太多導(dǎo)致接收到的信息幾乎無效。但是當(dāng)信噪比稍高后卷積碼編碼譯碼的誤碼率就大大降低了。圖5-1信噪比對誤碼率的影響5.2碼率對卷積碼譯碼性能的影響卷積碼的碼率R=k/n,它是卷積碼的一個重要參數(shù),當(dāng)改變卷積碼的碼率時,系統(tǒng)的誤碼性能也將隨之發(fā)生變化,為了研究碼率對卷積碼誤碼性能的影響,我們以碼率為1/2的(2,1,3)卷積碼和碼率為1/3的(3,1,3)卷積碼作為仿真碼字。(2,1,3)卷積碼的trellis結(jié)構(gòu)為poly2trellis(3,[75]),(3,1,3)卷積碼的trellis結(jié)構(gòu)為poly2trellis(3,[165])。從圖5-2中的誤比特率曲線可以看出,當(dāng)碼率一定時,隨著信道噪聲的逐漸減小,系統(tǒng)的誤比特率也逐漸減小,對比兩條曲線可清楚地得出(3,1,3)卷積碼的性能要比(2,1,3)卷積碼要好。于是可以得出如下結(jié)論:當(dāng)改變系統(tǒng)碼率時,隨著卷積碼碼率的逐漸提高,系統(tǒng)的誤比特率也呈現(xiàn)出增大的趨勢,也就是說,碼率越低,系統(tǒng)的誤比特率就越小,誤碼性能就越好。圖5-2碼率對卷積碼性能的影響5.3約束長度對卷積碼性能的影響對于碼率一定的卷積碼,當(dāng)約束長度N發(fā)生變化時,系統(tǒng)的誤碼性能也會隨之發(fā)生變化,我們以碼率R=1/2的(2,1,3)和(2,1,7)卷積碼為例展開分析。(2,1,7)卷積碼只需將trellis結(jié)構(gòu)改成poly2trellis(7,[171133])即可。從下圖5-3中的誤比特率曲線可以清楚地看到,在低信噪比時,(2,1,3)卷積碼的的性能要好于(2,1,7)卷積碼的性能。然而當(dāng)信噪比高于一定值后,(2,1,7)卷積碼的的性能要好于(2,1,3)卷積碼的性能,隨著約束長度的逐漸增加,系統(tǒng)的誤比特率明顯降低,所以說當(dāng)碼率一定,信噪比高于一定值時,增加約束長度可以降低系統(tǒng)的誤比特率,但是隨著約束長度的增加,譯碼設(shè)備的復(fù)雜性也會隨之增加,所以對于碼率為1/2的卷積碼,我們在選取約束長度時一般為3~9。圖5-3約束長度對卷積碼性能的影響5.4回溯長度對卷積碼性能的影響回溯長度是在Viterbi譯碼過程中一個很重要的參數(shù),它決定了維特比譯碼的精度,同時也影響著譯碼延遲(即在輸出第一個解碼數(shù)據(jù)之前輸出的0的個數(shù)),隨著它的不斷變化誤碼性能也隨之改變。這里采用(2,1,3)卷積碼為例,將反饋深度分別取值為5,15和35。仿真結(jié)果如圖5-4。圖5-4回溯長度對卷積碼性能的影響從圖中的誤比特率曲線可以清楚地看到,當(dāng)回溯長度一定時,隨著信道噪聲的逐漸減小,系統(tǒng)的誤比特率逐漸降低;當(dāng)回溯長度逐漸增加,系統(tǒng)的誤比特率隨之逐漸降低,但是當(dāng)回溯程度增加到5N時(N為編碼的約束長度),誤比特率數(shù)值趨于穩(wěn)定,這里的(2,1,3)卷積碼在回溯長度達到15左右基本趨于穩(wěn)定。因此在確定回溯長度時既要考慮到隨著信噪比增加誤比特率隨之降低的趨勢,也要考慮到譯碼延遲會變大,在選取回溯長度時,通常取回溯長度為5N。5.5判決方式對卷積碼性能的影響采用軟判決即將信道輸出的編碼先不立即判決,而是進行量化,量化程序如下:functiono=quantization(s,l);o=0;ifs>1;o=2^l;elseifs<-1;o=-2^l;elsec=abs(s);fori=1:2^l;ifc>1/2^(l+1)+(i-1)/2^l;o=o+1;endendifs<0;o=-o;endendo=(o+2^l)/2^(l+1);再進行維特比軟判決譯碼。從圖5-5可知,采用軟判決的誤碼率明顯低于硬判決,實際上軟判決譯碼算法的路徑度量采用“軟距離”而不是漢明距離。最常采用的是歐幾里德距離,也就是接收波形與可能的發(fā)送波形之間的幾何距離。在采用軟距離的情況下,路徑度量的值是模擬量,需要經(jīng)過一些處理以便于相加和比較。因此,使計算復(fù)雜度有所提高。除了路徑度量以外,軟判決算法與硬判決算法在結(jié)構(gòu)和過程上完全相同。一般而言,由于硬判決譯碼的判決過程損失了信道信息,軟判決譯碼比硬判決譯碼性能上要好約2dB。圖5-5判決方式對卷積碼性能的影響結(jié)論卷積碼是一種糾錯編碼,糾錯編碼己有五十幾年歷史,早在1948年,香農(nóng)(Shannon)在他的開創(chuàng)性論文“通信的數(shù)學(xué)理論”中,首次闡明了在有擾信道中實現(xiàn)可靠通信的方法,提出了著名的有擾信道編碼定理,奠定了糾錯碼的基石。以后,糾錯碼受到了越來越多的通信和數(shù)學(xué)工作者,特別是數(shù)學(xué)家的重視,使糾錯碼無論在理論上還是在實際中都得到了飛速發(fā)展。本文首先從數(shù)字通信的一些基本概念和差錯控制編碼理論出發(fā),引入卷積碼的一些基本理論,接著討論了卷積碼的編譯碼基本原理,對卷積碼的表示方法和編譯碼算法做了簡單的介紹,再通過編寫卷積碼的編碼和解碼程序,并且用MATLAB仿真軟件進行仿真和糾錯驗證,并通過對不同碼率、不同約束長度、不同回溯長度,以及不同判決方式情況下誤碼率的分析,得出以下結(jié)論:(1)當(dāng)編碼約束長度不大,當(dāng)碼率一定時,隨著信道噪聲的逐漸減小,系統(tǒng)的誤比特率也逐漸減小。(2)當(dāng)改變系統(tǒng)碼率時,隨著卷積碼碼率的逐漸提高,系統(tǒng)的誤比特率也呈現(xiàn)出增大的趨勢,也就是說碼率越低,系統(tǒng)的誤比特率就越小,誤碼性能就越好。對于二進制對稱信道,當(dāng)采用BPSK調(diào)制方式時,通常選取的碼率為1/2。(3)對于碼率一定的卷積碼,當(dāng)約束長度N發(fā)生變化時,系統(tǒng)的誤碼性能也會隨之發(fā)生變化,隨著約束長度的逐漸增加,系統(tǒng)的誤比特率明顯降低,所以說當(dāng)碼率一定時,增加約束長度可以降低系統(tǒng)的誤比特率,但是,隨著約束長度的增加,譯碼設(shè)備的復(fù)雜性也會隨之增加。所以對于碼率為1/2的卷積碼,在選取約束長度時一般為3~9。(4)對于碼率一定的卷積碼,當(dāng)反饋深度發(fā)生變化時,系統(tǒng)的誤碼率也會發(fā)生一定的變化,隨著反饋深度的增加,系統(tǒng)的誤碼率呈下降趨勢,但是通常在反饋深度大于或者等于約束長度的五倍時,誤碼率幾乎不再發(fā)生變化,故常常取回溯長度為5N。(5)對于碼率一定的卷積碼,采用的譯碼判決方式不同,也會對系統(tǒng)的誤碼率產(chǎn)生影響,一般來說,軟判決譯碼性能要優(yōu)于硬判決譯碼性能,但這是以提高設(shè)備復(fù)雜性為代價的。在本次卷積碼編譯碼算法研究過程中,我學(xué)到了許多關(guān)于卷積碼的知識,對卷積碼的糾錯性能有了較為深刻的認識。但是由于時間和個人能力等方面的不足,課題研究中還有些地方做的不到位,也有些領(lǐng)域沒有研究,值得進一步完善。如在信道傳輸過程中,本文只是考慮了BPSK信道編碼,而沒有采用較為復(fù)雜的QPSK編碼,所以沒能研究不同的信道編碼方式對卷積碼誤碼性能的影響。卷積碼的譯碼方法眾多,本文只對Viterbi譯碼算法做了初步的研究,對其它的譯碼方式,如代數(shù)譯碼和序貫譯碼,沒有進行詳細的研究和比較,所以沒能研究不同譯碼方式對卷積碼誤碼性能的影響。卷積碼自提出以來就受到人們的重視,并顯現(xiàn)出了巨大的優(yōu)越性,隨著通信技術(shù)的進步,卷積碼也將得到更大的發(fā)展,將提出更多形式的新型卷積碼,進一步優(yōu)化通信系統(tǒng)的性能。致謝時間如梭,轉(zhuǎn)眼畢業(yè)在即。回想在大學(xué)求學(xué)的四年,心中充滿無限感激和留戀之情。感謝母校為我們提供的良好學(xué)習(xí)環(huán)境,使我們能夠在此專心學(xué)習(xí),陶冶情操。謹向我的論文指導(dǎo)老師王副教授致以最誠摯的謝意!王老師不僅在學(xué)業(yè)上言傳身教,而且以其高尚的品格給我以情操上的熏陶。本文的寫作更是直接得益于他的悉心指點,從論文的選題到體系的安排,從觀點推敲到字句斟酌,無不凝聚著他的心血。滴水之恩,當(dāng)以涌泉相報,師恩重于山,師恩難報。我只有在今后的學(xué)習(xí)、工作中,以鍥而不舍的精神,努力做出點成績,以博恩師一笑。
另外,我必須感謝我的父母。焉得諼草,言樹之背,養(yǎng)育之恩,無以回報。作為他們的孩子,我秉承了他們樸實、堅韌的性格,也因此我有足夠的信心和能力戰(zhàn)勝前進路上的艱難險阻;也因為他們的日夜辛勞,我才有機會如愿完成自己的大學(xué)學(xué)業(yè),進而取得進一步發(fā)展的機會。
最后,我必須感謝我的朋友們,四年時光有如白駒過隙,剛?cè)雽W(xué)時的情景仿佛發(fā)生在昨天,歷歷在目。感謝四年中有他們的陪伴,并且在學(xué)習(xí)與生活中幫助我,與我分享喜悅,承擔(dān)痛苦。參考書目[1]郝建軍,桑林,劉丹譜,羅濤編著,《數(shù)字通信(第2版)》.北京郵電大學(xué)出版社.2010[2]張忠培,史治平,王傳丹編著.《現(xiàn)代編碼理論與應(yīng)用》.北京:人民郵電出版社.2007[3]傅祖蕓,趙建中編著,《信息論與編碼》,電子工業(yè)出版社,2010[4]樊昌信,曹麗娜編著,《通信原理(第6版)》,國防工業(yè)出版社,2011[5]鄧華.Matlab通信仿真及應(yīng)用[M].北京:人民郵電出版社,2000.[6]王新梅,肖國鎮(zhèn).糾錯碼一原理與方法.西安,西安電子科技大學(xué)出版社,2001,4[7]孟夏,申敏,王飛.TD-SCDMA中(2,1,9)卷積編碼及其VITERBI譯碼算法的SIMULINKS-FUNCTION實現(xiàn)[J].通信技術(shù),2008,41(8):26-30.[8]徐文燕.通信原理[M].北京:北京郵電學(xué)院出版社,2008[9]張忠培,史治平,王傳丹編著.現(xiàn)代編碼理論與應(yīng)用.北京:人民郵電出版社.2007[10](美)S.LinandD.J.Costello著.晏堅,何元智,潘亞漢等譯.差錯控制編碼.[11]張忠培,史治平,王傳丹編著.現(xiàn)代編碼理論與應(yīng)用.北京:人民郵電出版社.2007[12]仇佩亮.《信息論與編碼》高等教育出版社.[13]徐文燕.通信原理[M].北京:北京郵電學(xué)院出版社,2008[14]C.E.Shannon.“Amathematicaltheoryofcommunication”.BellSystemsTechnicalJournal,vol.27,pp.379-423,July1948.[15]C.Berrou,A.Glavieux,andP.Thitimajshima.“Nearshannonlimiterr
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國光纖光柵式溫度在線監(jiān)測系統(tǒng)市場調(diào)查研究報告
- 2025至2031年中國非可視對講門鈴行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國退菌特可濕性粉劑行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國羊毛球拋光輪行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國電鍍粘合劑行業(yè)投資前景及策略咨詢研究報告
- 2025年汽車斷油氣缸裝置項目可行性研究報告
- 2025年日用玻璃制品項目可行性研究報告
- 2025年投幣按摩椅項目可行性研究報告
- 2025年大規(guī)格圓塊孔石墨換熱器項目可行性研究報告
- 2025年卡通保溫袋項目可行性研究報告
- 初中英語人教版 八年級上冊 單詞默寫表 漢譯英
- 后印象派繪畫
- pcs-9611d-x說明書國內(nèi)中文標(biāo)準(zhǔn)版
- GB/T 1634.1-2004塑料負荷變形溫度的測定第1部分:通用試驗方法
- 數(shù)據(jù)結(jié)構(gòu)英文教學(xué)課件:chapter4 Stacks and Queues
- 無人機航拍技術(shù)理論考核試題題庫及答案
- T∕CMATB 9002-2021 兒童肉類制品通用要求
- 工序勞務(wù)分包管理課件
- 暖通空調(diào)(陸亞俊編)課件
- 工藝評審報告
- 自動化腹膜透析(APD)的臨床應(yīng)用課件
評論
0/150
提交評論