版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于MATLAB的卷積碼的分析與應(yīng)用</p><p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p> 畢業(yè)設(shè)計(jì)(論文)題目:基于MATLAB的卷積碼的分析與應(yīng)用</p><p> 設(shè)計(jì)(論文)的基本內(nèi)容:介紹糾錯(cuò)控制編碼的相關(guān)理論,重點(diǎn)分析卷積碼的相關(guān)編碼和解碼理論。在MATLAB中編寫卷積碼的編碼和解碼程序,模擬通信系統(tǒng),針對(duì)TD-SCDMA系
2、統(tǒng)中的卷積碼進(jìn)行仿真。(3) 進(jìn)行糾錯(cuò)譯碼驗(yàn)證,糾錯(cuò)比較及誤碼率相關(guān)因素分析。</p><p> 畢業(yè)設(shè)計(jì)(論文)專題部分:題目: 設(shè)計(jì)或論文專題的基本內(nèi)容:</p><p> 學(xué)生接受畢業(yè)設(shè)計(jì)(論文)題目日期第2周指導(dǎo)教師簽字:2010年3月8日</p><p> 基于MATLAB的卷積碼的分析與應(yīng)
3、用</p><p><b> 摘 要</b></p><p> 隨著現(xiàn)代通信的發(fā)展,特別是在未來(lái)4G通信網(wǎng)絡(luò)中,高速信息傳輸和高可靠性傳輸成為信息傳輸?shù)膬蓚€(gè)主要方面,而可靠性尤其重要。因?yàn)樾诺罓顩r的惡劣,信號(hào)不可避免會(huì)受到干擾而出錯(cuò)。為實(shí)現(xiàn)可靠性通信,主要有兩種途徑:一種是增加發(fā)送信號(hào)的功率,提高接收端的信號(hào)噪聲比;另一種是采用編碼的方法對(duì)信道差錯(cuò)進(jìn)行控制。前者
4、常常受條件限制,不是所有情況都能采用。因此差錯(cuò)控制編碼得到了廣泛應(yīng)用。</p><p> 介紹了多種信道編碼方式,著重介紹了卷積碼的編碼方法和解碼方式。介紹了MATLAB的使用方法、編程方法、語(yǔ)句、變量、函數(shù)、矩陣等。介紹了TD-SCDMA通信系統(tǒng)和該系統(tǒng)下的卷積碼,搭建了系統(tǒng)通信模型。編寫卷積碼的編碼和解碼程序。用MATLAB仿真軟件對(duì)TD-SCDMA系統(tǒng)的卷積碼編解碼進(jìn)行仿真。對(duì)其糾正錯(cuò)碼性能進(jìn)行驗(yàn)證,并且
5、對(duì)誤碼率進(jìn)行仿真和分析。卷積碼的編碼解碼方式有很多,重點(diǎn)仿真Viterbi算法。Viterbi算法就是利用卷積碼編碼器的格圖來(lái)計(jì)算路徑度量,選擇從起始時(shí)刻到終止時(shí)刻的惟一幸存路徑作為最大似然路徑。沿著最大似然路徑回溯到開(kāi)始時(shí)刻,所走過(guò)的路徑對(duì)應(yīng)的編碼輸出就是最大似然譯碼輸出序列。它是一種最大似然譯碼方法,當(dāng)編碼約束長(zhǎng)度不大、或者誤碼率要求不是很高的情況下,Viterbi譯碼器設(shè)備比較簡(jiǎn)單,計(jì)算速度快,因而Viterbi譯碼器被廣泛應(yīng)用于
6、各種領(lǐng)域。</p><p> 關(guān)鍵詞:卷積碼;信道編碼;TD-SCDMA;MATLAB</p><p><b> 目 錄</b></p><p> 畢業(yè)設(shè)計(jì)(論文)任務(wù)書I</p><p><b> 摘 要II</b></p><p> AbstractI
7、II</p><p> 第1章 緒 論1</p><p> 1.1 課題研究的背景和來(lái)源1</p><p> 1.2 主要內(nèi)容2</p><p> 第2章 相關(guān)理論介紹3</p><p> 2.1 信道編碼3</p><p> 2.1.1 信道編碼的分類3</p&
8、gt;<p> 2.1.2 編碼效率3</p><p> 2.2 線性分組碼3</p><p><b> 2.3 循環(huán)碼5</b></p><p><b> 2.4 卷積碼6</b></p><p> 2.4.1 卷積碼簡(jiǎn)介7</p><p>
9、; 2.4.2 卷積碼的編碼7</p><p> 2.4.3 卷積碼的解碼13</p><p> 第3章 MATLAB應(yīng)用21</p><p> 3.1 數(shù)和算術(shù)的表示方法21</p><p> 3.2 向量與矩陣運(yùn)算21</p><p> 3.2.1 通過(guò)語(yǔ)句和函數(shù)產(chǎn)生21</p>
10、<p> 3.2.2 矩陣操作22</p><p> 3.3 矩陣的基本運(yùn)算22</p><p> 3.3.1 矩陣乘法22</p><p> 3.3.2 矩陣除法23</p><p> 3.4 MATLAB編程23</p><p> 3.4.1 關(guān)系運(yùn)算23</p>
11、<p> 3.4.2 控制流25</p><p> 第4章 卷積碼的設(shè)計(jì)與仿真27</p><p> 4.1 TD-SCDMA系統(tǒng)27</p><p> 4.1.1 系統(tǒng)簡(jiǎn)介27</p><p> 4.1.2 仿真通信系統(tǒng)模型27</p><p> 4.2 卷積編碼設(shè)計(jì)28</
12、p><p> 4.3 編解碼程序?qū)崿F(xiàn)29</p><p> 4.3.1 卷積碼編解碼設(shè)計(jì)29</p><p> 4.3.2 卷積碼編解碼程序設(shè)計(jì)32</p><p> 4.4 卷積碼實(shí)現(xiàn)34</p><p> 4.4.1 (2,1)卷積碼的仿真研究34</p><p> 4.4
13、.2 (3,1)卷積碼的仿真研究36</p><p> 4.5 卷積碼誤碼率38</p><p> 第5章 結(jié) 論41</p><p><b> 5.1 總結(jié)41</b></p><p><b> 5.2 展望41</b></p><p><b>
14、; 參考文獻(xiàn)43</b></p><p><b> 致 謝45</b></p><p><b> 緒 論</b></p><p> 課題研究的背景和來(lái)源</p><p> 糾錯(cuò)編碼己有五十幾年歷史,早在1948年,香農(nóng)(Shannon)在他的開(kāi)創(chuàng)性論文“通信的數(shù)學(xué)理論”
15、中,首次闡明了在有擾信道中實(shí)現(xiàn)可靠通信的方法,提出了著名的有擾信道編碼定理,奠定了糾錯(cuò)碼的基石。以后,糾錯(cuò)碼受到了越來(lái)越多的通信和數(shù)學(xué)工作者,特別是數(shù)學(xué)家的重視,使糾錯(cuò)碼無(wú)論在理論上還是在實(shí)際中都得到了飛速發(fā)展[1]。</p><p> 隨著現(xiàn)代通信的發(fā)展,特別是在未來(lái)4G通信網(wǎng)絡(luò)中,高速信息傳輸和高可靠性傳輸成為信息傳輸?shù)膬蓚€(gè)主要方面,而可靠性尤其重要。因?yàn)樾诺罓顩r的惡劣,信號(hào)不可避免會(huì)受到干擾而出錯(cuò)。為實(shí)現(xiàn)
16、可靠性通信,主要有兩種途徑:一種是增加發(fā)送信號(hào)的功率,提高接收端的信號(hào)噪聲比;另一種是采用編碼的方法對(duì)信道差錯(cuò)進(jìn)行控制。前者常常受條件限制,不是所有情況都能采用。例如衛(wèi)星通信系統(tǒng)以很遠(yuǎn)的距離傳送數(shù)據(jù),由于衰落、噪聲和干擾等的影響,信號(hào)在傳輸過(guò)程中將產(chǎn)生嚴(yán)重的畸變。如果要求信號(hào)具有盡可能大的能量,衛(wèi)星體積和載重就會(huì)大大增加,使成本相對(duì)于原來(lái)大大增加,所以不可能給信號(hào)提供太大的能量,而建立在香農(nóng)基礎(chǔ)上的編碼理論正可以解決這個(gè)問(wèn)題,使得成本降
17、低,實(shí)用性增強(qiáng)。前向糾錯(cuò)技術(shù)(FEC)特別是卷積編碼是當(dāng)今無(wú)線數(shù)字通信系統(tǒng)的一個(gè)十分重要的組成部分。它是一種有效的信道編碼方法,在實(shí)際中廣泛應(yīng)用。目前無(wú)線數(shù)字通信系統(tǒng)都采用某一形式的卷積編碼如在W-CDMA、DVB-S、DVB-T、IEE802.11系統(tǒng)中都使用了卷積編碼。由于其出色的糾錯(cuò)性能,一般在級(jí)聯(lián)碼中作為內(nèi)碼使用,從而保證外碼有效地工作,大大提高了整個(gè)系統(tǒng)的糾錯(cuò)能力。而Vi</p><p> CDMA系
18、統(tǒng)以其容量大、抗干擾能力強(qiáng)的特點(diǎn)成為第三代移動(dòng)通信系統(tǒng)的標(biāo)準(zhǔn)。CDMA系統(tǒng)的信道編碼大多采用卷積編碼,這是因?yàn)榫矸e碼的糾錯(cuò)能力強(qiáng),不僅能糾隨機(jī)差錯(cuò),還可以糾突發(fā)差錯(cuò)。在CDMA系統(tǒng)中,對(duì)卷積碼的譯碼采用Viterbi算法,它是一種最大似然譯碼方法,當(dāng)編碼約束長(zhǎng)度不大、或者誤碼率要求不是很高的情況下,Viterbi譯碼器設(shè)備比較簡(jiǎn)單,計(jì)算速度快,因而Viterbi譯碼器被廣泛應(yīng)用于各種領(lǐng)域。</p><p> 現(xiàn)
19、代通信中,隨著信號(hào)序列的傳輸速率的不斷提高,要求卷積碼譯碼的速度也要不斷提高,Viterbi譯碼由于充分利用信號(hào)序列統(tǒng)計(jì)概率的特性而具有最佳性能。信道編碼的應(yīng)用領(lǐng)域主要包括深空通信、衛(wèi)星通信、數(shù)據(jù)傳輸、移動(dòng)通信、文件傳輸和數(shù)字音頻/視頻傳輸?shù)取>矸e編碼作為信道編碼方式中最重要一種,被廣泛使用于衛(wèi)星通信、無(wú)人機(jī)測(cè)控、深空通信、移動(dòng)通信、水聲通信等數(shù)字通信系統(tǒng),甚至被采納到某些無(wú)線通信的標(biāo)準(zhǔn)之中,如GSM、IS.95和CDMA2000的標(biāo)準(zhǔn)
20、。在衛(wèi)星通信中,碼率為1/2和1/3的卷積碼己經(jīng)成為商業(yè)衛(wèi)星通信系統(tǒng)中的標(biāo)準(zhǔn)編碼方法。在無(wú)人機(jī)測(cè)控中,與傳統(tǒng)的信道改善控制指令傳輸誤碼的方式比較,利用卷積碼對(duì)無(wú)人機(jī)遙控信道進(jìn)行編碼,在一定信道條件下,其控制指令傳輸誤碼有明顯下降。在碼速率不增加的條件下,無(wú)人機(jī)系統(tǒng)控制指令傳輸可靠性得到明顯改善[3]。</p><p> 隨著數(shù)字通信系統(tǒng)業(yè)務(wù)的不斷拓展,隨著卷積編碼理論的不斷發(fā)展和完善,卷積碼的應(yīng)用必將越來(lái)越廣泛
21、,卷積碼在現(xiàn)在通信系統(tǒng)中的作用必將越來(lái)越大。</p><p><b> 主要內(nèi)容</b></p><p> 論文框架:第一章介紹了卷積碼的研究背景,第二章介紹了卷積碼的相關(guān)理論,信道編碼、線性分組碼、循環(huán)碼及卷積碼的表示方式、編碼方式、解碼方式,第三章介紹了實(shí)現(xiàn)卷積碼仿真所需要的軟件方式,第四章進(jìn)行卷積碼設(shè)計(jì)與仿真,介紹了TD-SCDMA系統(tǒng)下的卷積碼,對(duì)卷積碼性
22、能進(jìn)行了研究。</p><p> 主要內(nèi)容:介紹了信道編碼方式。著重研究列舉了卷積碼的編碼方法和解碼方式,介紹了MATLAB的使用方法和TD-SCDMA系統(tǒng)。編寫卷積碼的編碼和解碼程序。并且用MATLAB仿真軟件對(duì)TD-SCDMA系統(tǒng)的卷積碼編解碼進(jìn)行仿真,Viterbi算法就是利用卷積碼編碼器的格圖來(lái)計(jì)算路徑度量,選擇從起始時(shí)刻到終止時(shí)刻的惟一幸存路徑作為最大似然路徑。沿著最大似然路徑回溯到開(kāi)始時(shí)刻,所走過(guò)的
23、路徑對(duì)應(yīng)的編碼輸出就是最大似然譯碼輸出序列。它是一種最大似然譯碼方法,當(dāng)編碼約束長(zhǎng)度不大、或者誤碼率要求不是很高的情況下,Viterbi譯碼器設(shè)備比較簡(jiǎn)單,計(jì)算速度快,因而Viterbi譯碼器被廣泛應(yīng)用于各種領(lǐng)域。</p><p><b> 相關(guān)理論介紹</b></p><p><b> 信道編碼</b></p><p&g
24、t; 在數(shù)字通信中,根據(jù)不同的目的,編碼可分為信源編碼和信道編碼。信源編碼是為了提高數(shù)字信號(hào)的有效性以及為了使模擬信號(hào)數(shù)字化而采取的編碼。信道編碼是為了降低誤碼率,提高數(shù)字通信的可靠性而采取的編碼。信道編碼現(xiàn)在已經(jīng)得到廣泛的應(yīng)用。</p><p><b> 信道編碼的分類 </b></p><p> 信道編碼有多種分類方式,主要有按照關(guān)系、范圍及用途三種。<
25、;/p><p> (1)根據(jù)糾錯(cuò)碼各碼組信息元和監(jiān)督元的函數(shù)關(guān)系,可分為線性碼和非線性碼。如果函數(shù)關(guān)系是線性的,即滿足一組線性方程式,則稱為線性碼,否則為非線性碼。</p><p> (2)根據(jù)上述關(guān)系涉及的范圍,可分為分組碼和卷積碼。分組碼的各碼元僅與本組的信息元有關(guān);卷積碼中的碼元不僅與本組的信息元有關(guān),而且還與前面若干組的信息元有關(guān)。 </p><p>
26、 (3)根據(jù)碼的用途,可分為檢錯(cuò)碼和糾錯(cuò)碼。檢錯(cuò)碼以檢錯(cuò)為目的,不一定能糾錯(cuò);而糾錯(cuò)碼以糾錯(cuò)為目的,一定能檢錯(cuò)[4,5]。</p><p><b> 編碼效率 </b></p><p> 用差錯(cuò)控制編碼提高通信系統(tǒng)的可靠性,是以降低有效性為代價(jià)換來(lái)的。定義編碼效率尺來(lái)衡量有效性:R=k/n,其中,k是信息元的個(gè)數(shù),n為碼長(zhǎng)。對(duì)糾錯(cuò)碼的基本要求是:檢錯(cuò)和糾錯(cuò)能力盡
27、量強(qiáng);編碼效率盡量高;編碼規(guī)律盡量簡(jiǎn)單。</p><p><b> 線性分組碼</b></p><p> 線性分組碼中的線性是指碼組中碼元間的約束關(guān)系是線性的,而分組則是對(duì)編碼方法而言,即編碼時(shí)將每k個(gè)信息位分為一組進(jìn)行獨(dú)立處理,變換成長(zhǎng)度為n(n>k)的二進(jìn)制碼組。</p><p> 線性分組碼的編碼過(guò)程可以簡(jiǎn)單描述成一個(gè)矢量和一
28、個(gè)矩陣相乘的結(jié)果,即C=mG,其中C是經(jīng)過(guò)編碼后得到的n維編碼輸出{c0,c1,…,cn-1},m是信息序列分組{m0,m1,…,mk-1},G是由k個(gè)n維矢量{g0,g1,…,gk-1}構(gòu)成的矩陣。 </p><p> 線性分組碼編碼問(wèn)題的核心就是如何在n維線性空間Vn中找出滿足一定要求的、由2k個(gè)矢量組成的k維線性子空間,也就是說(shuō),在滿足給定碼字最小距離或編碼速率的前提下,如何根據(jù)已知的k個(gè)信息比特求得r=
29、n-k個(gè)校驗(yàn)比特。 </p><p> 通過(guò)對(duì)碼字生成矩陣G的初等變換,可以得到惟一的行簡(jiǎn)化梯形矩陣,再經(jīng)過(guò)列交換可以得到如下形式的生成矩陣。 </p><p><b> (2.1)</b></p><p> 其中P是k×(n-k)的矩陣。 </p><p> 這種形式的生成矩陣G稱為標(biāo)準(zhǔn)生成矩陣,按照
30、標(biāo)準(zhǔn)矩陣生成的碼字為</p><p><b> (2.2)</b></p><p> 其中前n-k-1個(gè)比特為校驗(yàn)比特,其值為</p><p><b> (2.3)</b></p><p> 后面k個(gè)比特就是信息比特。這種在生成碼字中包含信息序列的編碼碼字稱為線性系統(tǒng)分組碼,簡(jiǎn)稱為系統(tǒng)碼。
31、</p><p> 系統(tǒng)碼的編碼結(jié)構(gòu)相當(dāng)簡(jiǎn)單,以系統(tǒng)(7,4)為例,其生成矩陣為: </p><p><b> (2.4)</b></p><p> 系統(tǒng)碼的編碼結(jié)構(gòu)非常簡(jiǎn)單,比如對(duì)系統(tǒng)(7,4)碼,根據(jù)上面的生成矩陣G,只要在輸入編碼器的每組k個(gè)數(shù)字的后面,附加上(n-k)個(gè)監(jiān)督碼元就可得到所編出的n個(gè)碼字。</p>&l
32、t;p> 系統(tǒng)(7,4)碼對(duì)應(yīng)的監(jiān)督矩陣為 </p><p><b> (2.5)</b></p><p> 假如發(fā)送的碼字為c=(1001011),而接收到的碼字為Y=(1001001),信道傳輸中產(chǎn)生的錯(cuò)誤為e=(0000010)。</p><p> 由S=y·HT可求出S=(1,1,1)。</p>&
33、lt;p><b> 循環(huán)碼 </b></p><p> 循環(huán)碼是線性分組碼中最重要的一類,循環(huán)碼是指碼集合中的任一碼字經(jīng)過(guò)循環(huán)移位后得到的碼字仍然是碼集合中的碼字。循環(huán)碼的碼字可以用矢量的形式表示,即:</p><p><b> (2.6)</b></p><p> 也可用碼多項(xiàng)式表示,即:</p>
34、;<p><b> (2.7)</b></p><p> 循環(huán)碼c向右移一位的碼字可由下式得出 </p><p><b> (2.8)</b></p><p> 循環(huán)碼可由它的生成多項(xiàng)式</p><p><b> (2.9)</b></p>
35、<p> 唯一確定。信息序列也可以表示成多項(xiàng)式</p><p><b> (2.10)</b></p><p> 那么生成碼字可表示成 </p><p><b> (2.11)</b></p><p> 由于多項(xiàng)式乘法等價(jià)于多項(xiàng)式系數(shù)的卷積,故</p><p
36、><b> (2.12)</b></p><p> 循環(huán)碼編碼則可以通過(guò)移位寄存器組成的乘法電路結(jié)構(gòu)實(shí)現(xiàn)。由數(shù)論知識(shí)可知, (n,k)循環(huán)碼的生成多項(xiàng)式g(x)一定是xn-1的n-k次因式:</p><p><b> (2.13)</b></p><p> 反之,若g(x)為n-k次多項(xiàng)式,且xn-1能被g(
37、x)整除,則g(x)一定能生成一個(gè)(n,k)循環(huán)碼。以g(x)為生成多項(xiàng)式所構(gòu)成的(n,k)循環(huán)碼中</p><p> g(x),x g(x),…,xk-1 g(x) (2.14)</p><p> 等七個(gè)多項(xiàng)式必定是線性無(wú)關(guān),則循環(huán)碼的生成矩陣G為</p><p><b> (2.15)</b>
38、</p><p> 循環(huán)碼的編碼也可以通過(guò)移位寄存器組成的除法電路結(jié)構(gòu)實(shí)現(xiàn)。以(7,4)循</p><p> 環(huán)碼為例,選(7,4)碼生成矩陣</p><p> g(x)= g3(x)=1+x+x3 (2.16)</p><p> 它除盡1+x7,若輸入信息碼元為m(
39、x)=1+x3</p><p><b> 則由</b></p><p><b> (2.17)</b></p><p><b> 因此,碼多項(xiàng)式為</b></p><p><b> (2.18)</b></p><p>
40、對(duì)應(yīng)的碼字為C=(0 1 1 1 0 0 1) 其中最右邊的4位是信息元,詳細(xì)的編碼過(guò)程如下: </p><p> 三級(jí)移位寄存器初始狀態(tài)為000,此時(shí)門打開(kāi),信息組以</p><p><b> (2.19)</b></p><p> 即1001次序分兩路進(jìn)入編碼器:一路直接輸出;另一路送入g(x)除法電路。 </p>&
41、lt;p> 經(jīng)4次移位后,信息組1001全部輸出,它就是系統(tǒng)碼的4個(gè)信息元;另一路則將全部信息元送入g(x)除法電路,并完成除法運(yùn)算,這時(shí)移位寄存器中的狀態(tài)就是余式r(x)系數(shù),即為碼的監(jiān)督元(c0 c1 c2)。 </p><p> 輸出開(kāi)關(guān)倒向上面2,經(jīng)3次移位,移位器由監(jiān)督元(c0 c1 c2),跟在信息元 (c3 c4 c5 c6)后面依次輸出為C=( c0 c1 c2 c3 c4 c5 c6)
42、 =(0111001)。 </p><p> 送入第二組信息元,重復(fù)上述過(guò)程。 </p><p> 該碼最小距離為3,它能糾正7個(gè)碼元一組中任何單個(gè)錯(cuò)誤,這7種錯(cuò)誤圖樣和全零矢量一起組成譯碼表的陪集首,它組成了所有可能糾正的圖樣?,F(xiàn)假設(shè)接收的多項(xiàng)式為</p><p><b> (2.20)</b></p><p>
43、 即Y=(1 1 1 1 0 0 1)。</p><p> 譯碼器工作步驟如下:</p><p> 將移位寄存器清零。 </p><p> (2) 輸入Y分兩路進(jìn)入譯碼器:一路進(jìn)入緩存器;另一路經(jīng)門1進(jìn)入伴隨式計(jì)算電路與寄存器,并分別計(jì)算S0、S1、S2值。 </p><p> (3) 在輸出Y的同時(shí),S0、S1、S2依次循環(huán)移位。
44、無(wú)錯(cuò)誤時(shí),錯(cuò)誤檢測(cè)電路無(wú)輸出,最后輸出的碼字C的碼元與Y相對(duì)應(yīng)碼元一致,有錯(cuò)誤時(shí),S0= S2=1,S1=0,錯(cuò)誤檢測(cè)電路輸出為“1”,它正好與Y中錯(cuò)誤位在輸出端的模2加中相遇,并予以糾正后再輸出。 </p><p><b> 卷積碼</b></p><p> 相對(duì)于分組碼而言,分組碼的編碼和譯碼都是各分組獨(dú)立的進(jìn)行,彼此不相關(guān)聯(lián)。而卷積碼的每一組不僅與本組的k
45、位信息位有關(guān),還和這以前各組的信息位有關(guān)。卷積碼的結(jié)構(gòu)比較復(fù)雜,但n和k的值相對(duì)于分組碼來(lái)說(shuō)比較小。譯碼也相對(duì)比較容易些。</p><p><b> 卷積碼簡(jiǎn)介</b></p><p> 非分組碼的卷積碼的編碼器是在任一段規(guī)定時(shí)間內(nèi)產(chǎn)生n個(gè)碼元,但它不僅取決于這段時(shí)間中的k個(gè)信息位,還取決于前(K-1)段規(guī)定時(shí)間內(nèi)的信息位,這K段時(shí)間內(nèi)的碼元數(shù)目為K·k
46、,稱參數(shù)K為卷積碼的約束長(zhǎng)度,每k個(gè)比特輸入,得到n比特輸出,編碼效率為k/n,約束長(zhǎng)度為K。在k=1的條件下,移位寄存器級(jí)數(shù)m=K-1。</p><p> 卷積碼一般可用(n,k,K)來(lái)表示,其中k為輸入碼元數(shù),n為輸出碼元數(shù),而K則為編碼器的約束長(zhǎng)度。典型的卷積碼一般選n和k ( k< n ) 值較小,但約束長(zhǎng)度K可取較大值(K<10),以獲得既簡(jiǎn)單又高性能的信道編碼[6]。</p>
47、<p> 卷積碼是1955年Elias最早提出,1957年Wozencraft提出了序列譯碼。1963年Massey提出了一種性能稍差,但比較實(shí)用的門限譯碼方法。1967年維特比(Viterbi)提出了最大似然譯碼。它對(duì)存儲(chǔ)器級(jí)數(shù)較小的卷積碼的譯碼很容易實(shí)現(xiàn),稱為維特比算法或維特比譯碼。</p><p><b> 卷積碼的編碼</b></p><p>
48、; 卷積碼的編碼器是由一個(gè)有k個(gè)輸入位(端)、n個(gè)輸出位(端),且具有m級(jí)移位寄存器所構(gòu)成的有限狀態(tài)的有記憶系統(tǒng),通常稱它為時(shí)序網(wǎng)絡(luò)。</p><p><b> 卷積碼的解析表示法</b></p><p> 一個(gè)二元(2,1,4)卷積碼的編碼器,它是由k=1,即一個(gè)輸入位(端),n=2,即兩個(gè)輸出位(端),K=4,m=3即三級(jí)移位寄存器所組成的有限狀態(tài)的有記憶系
49、統(tǒng)。</p><p><b> (1) 離散卷積</b></p><p> 若輸入信息序列為(這里的卷積碼是u0首先輸入)</p><p><b> (2.21)</b></p><p> 則對(duì)應(yīng)輸出為兩個(gè)碼字序列 </p><p><b> (2.
50、22)</b></p><p> 其相應(yīng)編碼方程可寫為</p><p><b> (2.23)</b></p><p> 其中“﹡”表示卷積運(yùn)算,g① g②表示編碼器的兩個(gè)脈沖沖擊響應(yīng),即編碼可由輸入信息序列u和編碼器的兩個(gè)沖擊響應(yīng)的卷積得到,故稱為卷積碼[7]。這里的脈沖沖擊響應(yīng)是指,當(dāng)輸入信息為u=(100…)時(shí),所觀察
51、到的兩個(gè)輸出序列值。由于編碼器有m=3級(jí)寄存器,故沖激響應(yīng)至多可持續(xù)到K=m+1=3+1=4位,且可寫成:</p><p><b> (2.24)</b></p><p><b> 在一般情況下有:</b></p><p><b> (2.25)</b></p><p>
52、 經(jīng)編碼器后,兩個(gè)輸出序列合并為一個(gè)輸出碼字序列為:</p><p><b> (2.26)</b></p><p><b> 若輸入信息序列為:</b></p><p><b> (2.27)</b></p><p><b> 則有:</b>&
53、lt;/p><p><b> (2.28)</b></p><p><b> (2.29)</b></p><p><b> 最后輸出的碼字為:</b></p><p><b> (2.30)</b></p><p><b
54、> (2) 生成矩陣</b></p><p> 上述沖激響應(yīng)g① g②又稱為生成序列,若將該生成序列g(shù)① g②按如下方法排列,構(gòu)成如下生成矩陣(當(dāng)K=4,m=3時(shí)):</p><p><b> (2.31)</b></p><p> 上述矩陣中,其中空白部分均為0。則上述編碼方程可改為矩陣形式</p>
55、<p><b> (2.32)</b></p><p> G為卷積碼的生成矩陣,若輸入信息序列為一無(wú)限序列時(shí),即u=(10111…),生成矩陣則為一個(gè)半無(wú)限矩陣,即有起點(diǎn)無(wú)終點(diǎn),因此稱它為半無(wú)限。</p><p><b> 若:</b></p><p><b> (2.33)</b>
56、;</p><p><b> 則:</b></p><p><b> (2.34)</b></p><p><b> (3) 碼多項(xiàng)式</b></p><p> 若將生成序列表達(dá)成多項(xiàng)式形式,有</p><p><b> (2.35)
57、</b></p><p> 輸入信息序列也可表達(dá)為多項(xiàng)式形式</p><p><b> (2.36)</b></p><p> 則卷積碼可以用下列碼多項(xiàng)式形式表達(dá)</p><p><b> (2.37)</b></p><p><b> (2.
58、38)</b></p><p><b> 卷積碼的圖形表示法</b></p><p> 卷積碼的圖形表示法有很多種,在此介紹最常用的三種,狀態(tài)圖表示法、樹(shù)圖表示法、網(wǎng)格圖表示法。</p><p><b> 狀態(tài)圖表示法</b></p><p> 卷積編碼器在下一時(shí)刻的輸出取決于編
59、碼器當(dāng)前的狀態(tài)及下一時(shí)刻的輸入。當(dāng)前狀態(tài)取決于編碼器在當(dāng)時(shí)各移位寄存器所存儲(chǔ)的內(nèi)容,稱編碼器的各移位寄存器在任一時(shí)刻的存數(shù)(0或1)為編碼器在該時(shí)刻的一個(gè)狀態(tài)。編碼器的總可能狀態(tài)數(shù)是2mk個(gè)。對(duì)于n=2,k=1,K=3,m=2的(2,1,3)卷積編碼器,則其總的可能狀態(tài)數(shù)是4個(gè)。設(shè)以Si表示某狀態(tài),i =0,1,2,3,在某tj時(shí)刻,此 (2,1,3)卷積編碼器的輸出表述為</p><p><b>
60、(2.39)</b></p><p> 它取決于uj,uj-1及uj-2三個(gè)值,其中uj是當(dāng)前的輸入值,uj-1及uj-2是以前輸入的兩個(gè)值。若要求出下一個(gè)tj+1時(shí)刻的輸出值,則要知道當(dāng)前的uj及uj-1值。當(dāng)輸入下一時(shí)刻的uj+1值時(shí),就可以求出下一個(gè)tj+1時(shí)刻的c①j+1及c②j+1值。所以,為決定下一個(gè)tj+1時(shí)刻編碼器的輸出,此(2,1,3)卷積編碼器在當(dāng)前tj時(shí)刻的狀態(tài)用Si=(uj,
61、uj-1) (i=0,1,2,3)表示即可。如表2.1所示。</p><p> 表2.1 狀態(tài)轉(zhuǎn)移表</p><p><b> 設(shè)輸入信息序列為:</b></p><p><b> (2.40)</b></p><p> 1) 首先,對(duì)移位寄存器清洗、復(fù)0,移存器狀態(tài)為00;</p&
62、gt;<p> 2) 輸入:u0=1,輸出,,故,移位寄存器狀態(tài)改為10;</p><p> 3) 輸入:u1=0,則根據(jù)(010),可算出:,故,移位寄存器狀態(tài)改為01;</p><p> 4) 輸入:u2=1,則根據(jù)(101),可算出:,故,移位寄存器狀態(tài)改為10;</p><p> 5) 輸入:u3=1,則根據(jù)(110),可算出:,故,移
63、位寄存器狀態(tài)改為11;</p><p> 6) 輸入:u4=1,則根據(jù)(111),可算出:,故,移位寄存器狀態(tài)改為11;</p><p> 7) 輸入:u5=0,則根據(jù)(011),可算出:,故,移位寄存器狀態(tài)改為01;</p><p> 8) 輸入:u6=0,則根據(jù)(001),可算出:,故,移位寄存器狀態(tài)改為00;</p><p>
64、9) 輸入:u7=0,則根據(jù)(000),可算出:,故,移位寄存器狀態(tài)改為00;</p><p> 按照上述步驟,可畫出狀態(tài)圖如圖2.1所示。</p><p> 圖2.1 (2,1,3)卷積碼狀態(tài)圖</p><p> 圖2.1中,4個(gè)圓圈中的數(shù)字表示狀態(tài),狀態(tài)之間的連線與箭頭表示轉(zhuǎn)移方向,稱作分支,分支上的數(shù)字表示由一個(gè)狀態(tài)到另一個(gè)狀態(tài)轉(zhuǎn)移時(shí)的輸出碼字,而括號(hào)
65、中數(shù)字表示相應(yīng)的輸入信息數(shù)字。例如若當(dāng)前狀態(tài)為11,即S3=11,則當(dāng)下一時(shí)刻的輸入信息位為u1=0時(shí),輸出碼字c1=01,下一刻的狀態(tài)為S2=01。若輸入信息位u1=1,則輸出碼字為c1=10,下一時(shí)刻的狀態(tài)仍為S3=11。</p><p><b> 樹(shù)圖表示法</b></p><p> 如果要展示出編碼器的輸入、輸出所有可能情況,則可采用樹(shù)圖來(lái)描述,它是將上述
66、編碼器的狀態(tài)圖按時(shí)間展開(kāi)而成的,如圖2.2所示。</p><p> 由圖2.2可見(jiàn),若設(shè)初始狀態(tài)S0=00作為樹(shù)根,對(duì)每個(gè)時(shí)刻可能的輸入進(jìn)行分支,若分支的節(jié)點(diǎn)級(jí)數(shù)用表示,則當(dāng)時(shí),有兩個(gè)可能分支。若u0=0,則向上,即0分支向上,若u0=1則向下,即1分支向下,它們都達(dá)到下一個(gè)一級(jí)節(jié)點(diǎn)()。當(dāng)時(shí),對(duì)每個(gè)一級(jí)節(jié)點(diǎn)根據(jù)u1的取值也將產(chǎn)生上、下兩個(gè)分支,并推進(jìn)到相應(yīng)的二級(jí)節(jié)點(diǎn)()。依此類推,就可以得到一個(gè)無(wú)限延伸的樹(shù)狀
67、結(jié)構(gòu)圖。圖2.2中各分支上的數(shù)字表示相應(yīng)輸出的碼字。字段表示編碼器所處的狀態(tài)。</p><p> 對(duì)于特定輸入信息序列:</p><p> u=(10111000) (2.41)</p><p><b> 相應(yīng)的輸出:</b></p><p> c=(11 10 0
68、0 01 10 01 11 00…) (2.42)</p><p> 圖2.2 (2,1,3)卷積碼樹(shù)圖表示</p><p><b> 網(wǎng)格圖表示法</b></p><p> 網(wǎng)格圖的縱坐標(biāo)表示所有狀態(tài),橫坐標(biāo)表示時(shí)間。這類網(wǎng)格圖描述法在卷積碼的概率譯碼中,特別在維特比譯碼中特別有用,它綜合了狀態(tài)圖與樹(shù)
69、圖的優(yōu)點(diǎn),即網(wǎng)格圖既具有狀態(tài)圖結(jié)構(gòu)簡(jiǎn)單,又具有樹(shù)圖的時(shí)序關(guān)系清晰特點(diǎn)。</p><p> 以(2,1,3)卷積碼為例,當(dāng)節(jié)點(diǎn)級(jí)數(shù)大于時(shí),狀態(tài)呈現(xiàn)重復(fù)。利用這種重復(fù),即如果將圖2.2中以后,碼樹(shù)上處于同一狀態(tài)的同一節(jié)點(diǎn)折疊起來(lái)加以合并,就可以得到縱深寬度(或稱高度)為2km=22=4的網(wǎng)格圖,如圖2.3所示。</p><p> 圖2.3中實(shí)線表示輸入為0時(shí)所走的分支,虛線表示輸入為1時(shí)所
70、走的分支。由圖2.3可見(jiàn)這個(gè)圖實(shí)質(zhì)上是將圖2.2的樹(shù)圖重復(fù)部分合并而成的。它自即第二級(jí)節(jié)點(diǎn)開(kāi)始,從同一狀態(tài)出發(fā)所延伸的樹(shù)結(jié)構(gòu)完全一樣。因此網(wǎng)格圖能更為簡(jiǎn)潔地表示卷積碼[8]。</p><p> 如果任意給定一個(gè)輸入信息序列,則它在網(wǎng)格圖中就必將存在一條特定的路徑,比如u=(1011100),其輸出編碼為c=(11 10 00 01 10 01 11),即為上述網(wǎng)格圖2.3中粗黑線所表示的路徑。網(wǎng)格圖是研究卷積碼
71、最大似然譯碼維特比算法的重要工具。</p><p> 圖2.3 (2,1,3)卷積碼網(wǎng)格圖表示法</p><p><b> 卷積碼的解碼</b></p><p> 卷積碼的解碼方式可以分為兩類:代數(shù)解碼和概率解碼。代數(shù)解碼是利用編碼本身的代數(shù)結(jié)構(gòu)進(jìn)行解碼,不考慮信道的統(tǒng)計(jì)特性。大數(shù)邏輯解碼,又稱門限解碼,是卷積碼代數(shù)解碼的最主要一種方法
72、,也可以應(yīng)用于循環(huán)碼的解碼。大數(shù)邏輯解碼對(duì)于約束長(zhǎng)度較短的卷積碼最為有效,而且設(shè)備較簡(jiǎn)單。概率解碼(又稱最大似然解碼)則是基于信道的統(tǒng)計(jì)特性和卷積碼的特點(diǎn)進(jìn)行計(jì)算。首先由沃曾克拉夫特針對(duì)無(wú)記憶信道提出的序貫解碼就是概率解碼方法之一;另一種概率解碼方法是維特比(Viterbi)算法。當(dāng)碼的約束長(zhǎng)度較短時(shí),它比序貫解碼算法的效率更高、速度更快,目前得到廣泛的應(yīng)用[9,10]。</p><p><b> 大
73、數(shù)邏輯解碼</b></p><p> 卷積碼的大數(shù)邏輯解碼是基于卷積碼的代數(shù)表述運(yùn)算的,其一般工作原理如圖2.4所示。</p><p> 首先將接受信息位暫存于移存器中,并從接收碼元的信息位和監(jiān)督位計(jì)算校正子。然后,將計(jì)算得出的校正子暫存,并用它來(lái)檢測(cè)錯(cuò)碼的位置。在信息位移存器輸出端,接有一個(gè)模2加電路;當(dāng)檢測(cè)到輸出的信息位有錯(cuò)時(shí),在輸出的信息為上加“1”,從而糾正之[11
74、]。</p><p> 在圖2.5中畫出了一個(gè)(2,1,6)卷積碼編碼器。</p><p> 圖2.4 大數(shù)邏輯解碼一般工作原理</p><p> 圖2.5 (2,1,6)卷積碼編碼器原理方框圖</p><p> 圖2.5中編碼器的監(jiān)督位和信息位的關(guān)系如下,當(dāng)輸入序列為b1b2b3b4時(shí),監(jiān)督位為:</p><
75、p><b> (2.43)</b></p><p><b> 其監(jiān)督關(guān)系式如下:</b></p><p><b> (2.44)</b></p><p> Si (i=1~6) 稱為校正子,經(jīng)過(guò)簡(jiǎn)單線性變換,可以得出如下正交校驗(yàn)方程組:</p><p><b
76、> (2.45)</b></p><p> 只有信息位b1出現(xiàn)在每個(gè)方程中,監(jiān)督位和其他信息位均最多只出現(xiàn)一次。因此,在接收端解碼時(shí),考察b1 c1至b6 c6等12個(gè)碼元,僅當(dāng)b1出錯(cuò)時(shí),才可能有3個(gè)或3個(gè)以上方程等于“1”。從而能夠糾正b1的錯(cuò)誤。按照這一原理畫出的此(2,1,6)卷積碼解碼器原理方框圖示于圖2.6中。</p><p> 由圖2.6可見(jiàn),當(dāng)信息位
77、出現(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。由此可見(jiàn),當(dāng)校正子序列中出現(xiàn)第一個(gè)“1”時(shí),表示已經(jīng)檢出一個(gè)錯(cuò)碼。后面的幾位校正子則指出是信息位錯(cuò)了,還是監(jiān)督位錯(cuò)了。門限電路將這4個(gè)電壓(非模2)相加。當(dāng)相加結(jié)果大</p><p> 于或等于3時(shí),門限電路輸出“1”,它除了送到輸出
78、端的模2加法器糾正輸出碼元b1的錯(cuò)碼外,還送到校正子移存器糾正其中錯(cuò)誤[19,21]。</p><p> 圖2.6 (2,1,6)卷積碼解碼器原理方框圖</p><p> 此卷積碼除了能夠糾正兩位在約束長(zhǎng)度中的隨機(jī)錯(cuò)誤外,還能糾正部分多于兩位的錯(cuò)誤。為了克服突發(fā)錯(cuò)誤,可以采用更長(zhǎng)的約束長(zhǎng)度和在約束長(zhǎng)度中能糾正更多錯(cuò)誤的碼。</p><p><b>
79、 維特比解碼算法</b></p><p> 維特比解碼算法是維特比于1967年提出的。這種算法的基本原理是將接收到的信號(hào)序列和所有可能的發(fā)送信號(hào)序列比較,選擇其中漢明距離最小的序列認(rèn)為是當(dāng)前發(fā)送信號(hào)序列。若發(fā)送一個(gè)k位序列,則有2k種可能的發(fā)送序列。當(dāng)K較大時(shí),存儲(chǔ)量太大,使實(shí)用受到限制。維特比算法對(duì)此作了簡(jiǎn)化,使之能夠?qū)嵱谩?lt;/p><p> 一種(3,1,3)卷積碼編碼
80、器方框圖如圖2.7。</p><p> 圖2.7 一種(3,1,3)卷積碼編碼器方框圖</p><p> 該(3,1,3)卷積碼的狀態(tài)圖如圖2.8。</p><p> 圖2.8 (3,1,3)卷積碼狀態(tài)圖</p><p> 設(shè)發(fā)送信息位為:1101,為了使圖2.7中移存器的信息位全部移出,需要在信息位后面加入三個(gè)“0”,故經(jīng)過(guò)編碼
81、后的發(fā)送序列為111 110 010 100 001 011 000,并且假設(shè)接收序列為111 010 010 110 001 011 000,其中第4和第11個(gè)碼元為錯(cuò)碼。由于這是一個(gè)(n,k,N)=(3,1,3)卷積碼,發(fā)送序列的約束度N=3,所以首先需要考察nN=9。</p><p> 該(3,1,3)卷積碼網(wǎng)格圖如圖2.9。</p><p> 圖2.9 (3,1,3)卷積碼網(wǎng)
82、格圖</p><p> 該(3,1,3)卷積碼編碼舉例如圖2.10。</p><p> 圖2.10 (3,1,3)卷積碼編碼路徑舉例</p><p> 第一步考察接收序列前9位“111 010 010”。由此碼的網(wǎng)格圖2.10可見(jiàn),沿路徑每一級(jí)有4種狀態(tài)a,b,c,d。每種狀態(tài)只有兩條路徑可以到達(dá)。故4種狀態(tài)有8條到達(dá)路徑。現(xiàn)在比較網(wǎng)格圖中的這8條路徑和接收
83、序列之間的漢明距離。</p><p> 例如,由出發(fā)點(diǎn)狀態(tài)a經(jīng)過(guò)三級(jí)路徑后到達(dá)狀態(tài)a的兩條路徑中上面一條為“000 000 000”。它和接收序列“111 010 010”的漢明距離等于5;下面一條為“111 001 011”,它和接收序列的漢明距離等于3。同樣,由出發(fā)點(diǎn)狀態(tài)a經(jīng)過(guò)三級(jí)路徑后到達(dá)狀態(tài)b,c,d的路徑分別都有兩條,故總共有8條路徑。在表2.2中列出了這8條路徑和漢明距離。</p>&
84、lt;p> 表2.2 維特比算法解碼第一步計(jì)算結(jié)果</p><p> 該(3,1,3)卷積碼的樹(shù)圖如圖2.11所示。</p><p> 圖2.11 (3,1,3)卷積碼編碼樹(shù)圖</p><p> 現(xiàn)在將到達(dá)每個(gè)狀態(tài)的兩條路徑的漢明距離作比較,將距離小的一條路徑保留,稱為幸存路徑。若兩條路徑的漢明距離相同,則可以任意保存一條。這樣就剩下4條路徑了,即表中
85、第2,4,6和8條路徑。</p><p> 第二步將繼續(xù)考察接收序列中的后繼3位“110”?,F(xiàn)在計(jì)算4條幸存路徑上增加一級(jí)后的8條可能路徑的漢明距離。計(jì)算結(jié)果列于表2.3中。</p><p> 表2.3 維特比算法解碼第二步計(jì)算結(jié)果</p><p> 表2.3中最小的總距離等于2,其路徑是abdc+b,相應(yīng)序列為111 110 010 100。它和發(fā)送序列相同
86、,故對(duì)應(yīng)發(fā)送信息位1101。按照表2.3中的幸存路徑畫出的網(wǎng)格圖示于圖2.12中。圖中粗線路徑是漢明距離最小(等于2)的路徑。</p><p> 圖2.12 對(duì)應(yīng)信息位“1101”的幸存路徑網(wǎng)格圖</p><p> 為了使輸入的信息位全部通過(guò)編碼器的移存器,使移存器回到初始狀態(tài),在信息位1101后面加了三個(gè)“0”。若把這三個(gè)“0”仍看作是信息位,則可以按照上述算法繼續(xù)解碼。這樣得到的
87、幸存路徑網(wǎng)格圖示于圖2.13中,圖中的粗線仍然是漢明距離最小的路徑,但是,若已知這三個(gè)碼元是(為結(jié)尾而補(bǔ)充的)“0”。則在解碼計(jì)算時(shí)就預(yù)先知道在接收這三個(gè)“0”碼元后,路徑必然應(yīng)該回到狀態(tài)a。而由圖可見(jiàn),只有兩條路徑可以回到a狀態(tài)。所以,這時(shí)圖2.13可以簡(jiǎn)化成圖2.14。</p><p> 圖2.13 對(duì)應(yīng)信息位“1101000”的幸存路徑網(wǎng)格圖</p><p> 圖2.14 對(duì)
88、應(yīng)信息位“1101”及以“000”結(jié)束的幸存路徑網(wǎng)格圖</p><p><b> MATLAB應(yīng)用</b></p><p><b> 數(shù)和算術(shù)的表示方法</b></p><p> Matlab中數(shù)的表示方法和一般的編程語(yǔ)言沒(méi)有區(qū)別。如:</p><p> 3-990.0001&
89、lt;/p><p> 9.639721.6021E-206.02252e23</p><p><b> 數(shù)學(xué)運(yùn)算符有:</b></p><p><b> +加</b></p><p><b> -減</b></p><p><b
90、> *乘</b></p><p><b> /右除</b></p><p><b> \左除</b></p><p><b> ^冪</b></p><p> 這里1/4和4\1有相同的值都等于0.25(注意比較:1\4=4)。只有在
91、矩陣的除法時(shí)左除和右除才有區(qū)別。</p><p><b> 向量與矩陣運(yùn)算</b></p><p><b> 通過(guò)語(yǔ)句和函數(shù)產(chǎn)生</b></p><p><b> (1) 向量的產(chǎn)生</b></p><p> 除了直接列出向量元素(即所謂的“窮舉法”)外,最常用的用來(lái)產(chǎn)
92、生相同增量的向量的方法是利用“:”算符(即所謂的“描述法”)。在Matlab中,它是一個(gè)很重要的字符。如:</p><p><b> z=1:5 </b></p><p><b> z =</b></p><p> 1 2 3 4 5</p><p> 即產(chǎn)生
93、一個(gè)1~5的單位增量是1的行向量,此為默認(rèn)情況。</p><p> 用“:”號(hào)也可以產(chǎn)生單位增量不等于1的行向量,語(yǔ)法是把增量放在起始量和結(jié)尾量的中間。如:</p><p> x=0:pi/4:pi </p><p> 即產(chǎn)生一個(gè)由0~pi的行向量,單位增量是pi/4=3.1416/4=0.7854。</p><p><b>
94、 x =</b></p><p> 00.78541.57082.35623.1416</p><p> 也可以產(chǎn)生單位增量為負(fù)數(shù)的行向量。如:</p><p><b> y=6:-1:1</b></p><p><b> y =</b></p>&
95、lt;p> 6 5 4 3 2 1</p><p><b> (2) 矩陣的產(chǎn)生</b></p><p> Matlab提供了一批產(chǎn)生矩陣的函數(shù),如表3.1所示。
96、
97、 </p><p><b> 表3.1 矩陣函數(shù)</b></p><p> 函數(shù)名 功能 函數(shù)名 功能</p><p> 除了以上產(chǎn)生標(biāo)準(zhǔn)矩陣的函數(shù)外,Matlab還提供了產(chǎn)生隨機(jī)(向量)矩陣的函數(shù)rand和randn,及產(chǎn)生均勻級(jí)數(shù)的函數(shù)linspace、產(chǎn)生對(duì)數(shù)
98、級(jí)數(shù)的函數(shù)logspace和產(chǎn)生網(wǎng)格的函數(shù)meshgrid等等。詳細(xì)使用請(qǐng)查閱隨機(jī)文檔?!?: ”冒號(hào)可以用來(lái)產(chǎn)生簡(jiǎn)易的表格,為了產(chǎn)生縱向表格形式,首先用冒號(hào)“ : ”產(chǎn)生行向量,再進(jìn)行轉(zhuǎn)置,計(jì)算函數(shù)值的列,然后形成有二列的矩陣。</p><p><b> 矩陣操作</b></p><p> 在Matlab中可以對(duì)矩陣進(jìn)行任意操作,包括改變它的形式,取出子矩陣,擴(kuò)
99、充矩陣,旋轉(zhuǎn)矩陣等。其中最重要的操作符為“:”, 它的作用是取出選定的行與列。例如:</p><p> A(:,:) 代表A的所有元素;</p><p> A(:,J) 代表A的第J列;</p><p> A(J:K) 代表 A(J),A(J+1), …, A(K),如同A(:)的第J到第K個(gè)元素;</p><p> A(:,J:K)
100、 代表A(:,J),A(:,J+1), …, A(:,K)。</p><p> Matlab中有內(nèi)部函數(shù)fliplr ( Flip matrix in the left/right direction),它對(duì)矩陣進(jìn)行左右旋轉(zhuǎn)。</p><p><b> 矩陣的基本運(yùn)算</b></p><p><b> 矩陣乘法</b>
101、;</p><p> 矩陣乘法用“ * ”符號(hào)表示,當(dāng)A矩陣列數(shù)與B矩陣的行數(shù)相等時(shí),二者可以進(jìn)行乘法運(yùn)算,否則是錯(cuò)誤的。計(jì)算方法和線性代數(shù)中所介紹的完全相同。</p><p><b> 如:</b></p><p> A=[1 2 ; 3 4];B=[5 6 ; 7 8]; C=A*B,</p><p>
102、<b> 結(jié)果為</b></p><p><b> C=×==</b></p><p> 即Matlab返回:</p><p><b> C =</b></p><p><b> 19 22</b></p><
103、p><b> 43 50</b></p><p> 如果A或B是標(biāo)量,則A*B返回標(biāo)量A(或B)乘上矩陣B(或A)的每一個(gè)元素所得的矩陣。</p><p><b> 矩陣除法</b></p><p> 在Matlab中有兩種矩陣除法符號(hào):“\”即左除和“/”即右除。如果A矩陣是非奇異方陣,則A\B是A的
104、逆矩陣乘B,即inv(A)*B;而B(niǎo)/A是B乘A的逆矩陣,即B*inv(A)。具體計(jì)算時(shí)可不用逆矩陣而直接計(jì)算。</p><p> x=A\B就是A*x=B的解;</p><p> x=B/A就是x*A=B的解。 </p><p> 當(dāng)B與A矩陣行數(shù)相等可進(jìn)行左除。如果A是方陣,用高斯消元法分解因數(shù)。解方程:A*x(:, j)=B(:, j),式中的(:, j
105、)表示B矩陣的第j列,返回的結(jié)果x具有與B矩陣相同的階數(shù),如果A是奇異矩陣將給出警告信息。</p><p> 右除B/A可由B/A=(A'\B')'左除來(lái)實(shí)現(xiàn)。</p><p><b> Matlab編程</b></p><p><b> 關(guān)系運(yùn)算</b></p><p&g
106、t;<b> 比較運(yùn)算</b></p><p> 比較兩個(gè)同階矩陣有下面六種相關(guān)操作符,如表3.2所示。</p><p> 表3.2 比較運(yùn)算符</p><p> 比較兩個(gè)元素的大小,結(jié)果是“1”表明為真,結(jié)果是“0”表明為假。</p><p> 例如2+2~=4,結(jié)果是“0”,表明為假。</p>
107、<p> 例如一個(gè)6階魔術(shù)方陣,矩陣元素計(jì)算滿足各種條件:</p><p> A=magic(6)</p><p><b> ans =</b></p><p> 35 1 6 26 19 24</p><p> 3 32 7 21 23
108、 25</p><p> 31 9 2 22 27 20</p><p> 8 28 33 17 10 15</p><p> 30 5 34 12 14 16</p><p> 4 36 29 13 18
109、 11</p><p> 階數(shù)為n的魔術(shù)方陣,即n×n矩陣,是由1~n2的整數(shù)組成(n=6)。仔細(xì)觀察這個(gè)矩陣,我們會(huì)發(fā)現(xiàn)任何行和、任何列和都相等。另外,每個(gè)3×3子行列式的對(duì)角線元素和,都可被3整除。為了顯示這一特性,鍵入:</p><p> p=(rem(A,3)==0)</p><p><b> p =</b>&
110、lt;/p><p> 0 0 1 0 0 1</p><p> 1 0 0 1 0 0</p><p> 0 1 0 0 1 0</p><p> 0 0 1 0 0 1</
111、p><p> 1 0 0 1 0 0</p><p> 0 1 0 0 1 0</p><p> 為了再仔細(xì)地觀察這個(gè)模式,可以用format+格式畫出矩陣的壓縮格式。此格式用“+”代表正元素,“-”代表負(fù)元素,空格代表0。</p><p><b>
112、 format +</b></p><p><b> p =</b></p><p><b> + +</b></p><p><b> + + </b></p><p><b> + + </b></p><
113、;p><b> + +</b></p><p><b> + + </b></p><p><b> + +</b></p><p> find 函數(shù)在關(guān)系運(yùn)算中很有用,它可以在0-1矩陣中找非零元素的下標(biāo)。</p><p> 若y是一個(gè)向量,例如:y=
114、[1 3 2 4 3.5 2.9],則find(y<3.0),將指出y的分量在哪些位置上小于3.0。</p><p> ans = 1 3 6</p><p> 即:向量y的第1、3、6位置上的元素小于3.0。</p><p> 當(dāng)輸入x==NaN時(shí)結(jié)果為NaN,因?yàn)榘凑誌EEE算法規(guī)定任何具有NaN的操作,結(jié)
115、果都是NaN。調(diào)試NaN很有用,例如測(cè)試x,輸入isnan(x)函數(shù),如果x元素是不定值則得1,否則得0。isfinite(x)更有用,如-<x<時(shí)則得1。</p><p><b> 邏輯運(yùn)算</b></p><p> 邏輯運(yùn)算共三種:“&”— 與,“|”— 或,“~”— 非。</p><p> “&”和“|”操作符可
116、比較兩個(gè)標(biāo)量或兩個(gè)同階矩陣。對(duì)于矩陣來(lái)說(shuō)必須符合規(guī)則,如果A和B都是0-1矩陣,則A&B或A|B也都是0-1矩陣,這個(gè)0-1矩陣的元素是A和B對(duì)應(yīng)元素之間邏輯運(yùn)算的結(jié)果,邏輯操作符認(rèn)定任何非零元素都為真,給出“1”,任何零元素都為假,給出“0”。</p><p> 非(或邏輯非)是一元操作符,即~A:當(dāng)A是非零時(shí)結(jié)果為“0”;當(dāng)A為“0”時(shí),結(jié)果為“1”。因此下列兩種表示:</p><p&g
117、t; p | (~p) 結(jié)果為1。</p><p> p & (~p) 結(jié)果為0。</p><p> any和all函數(shù)在連接操作時(shí)很有用,設(shè)x是0-1向量,如果x中任意有一元素非零時(shí),any(x)返回“1”,否則返回“0”;all(x)函數(shù)當(dāng)x的所有元素非零時(shí),返回“1”,否則也返回“0”。這些函數(shù)在if語(yǔ)句中經(jīng)常被用到。</p>
118、;<p><b> 控制流</b></p><p> Matlab與其它計(jì)算機(jī)語(yǔ)言一樣,也有控制流語(yǔ)句??刂屏髡Z(yǔ)句可使原本簡(jiǎn)單地在命令行中運(yùn)行的一系列命令或函數(shù),組合成為一個(gè)整體,程序,從而提高工作效率。</p><p><b> for 循環(huán)</b></p><p> Matlab與其它計(jì)算機(jī)語(yǔ)言一
119、樣有do或for循環(huán),完成一個(gè)語(yǔ)句或一組語(yǔ)句在一定時(shí)間內(nèi)反復(fù)運(yùn)行的功能。例如:</p><p> for i = 1:n ,</p><p> x( i )=0, </p><p><b> end</b></p><p> x的第一個(gè)元素賦0值,如果n<1,結(jié)構(gòu)上合法,但內(nèi)部語(yǔ)句不運(yùn)行,如果x不存在或比
120、n元素小,額外的空間將會(huì)自動(dòng)分配。</p><p> 多重循環(huán)寫成鋸齒形是為了增加可讀性。例如:</p><p><b> m=9;n=9;</b></p><p> for i = 1:m</p><p><b> for j=1:n</b></p><p> A
121、( i, j ) = 1/( i + j - 1);</p><p><b> end</b></p><p><b> end</b></p><p><b> A</b></p><p><b> 程序的說(shuō)明:</b></p>&
122、lt;p> (1)事實(shí)上,上述程序給出了Hilbert矩陣的構(gòu)造過(guò)程,可參見(jiàn)函數(shù)hilb(n)。</p><p> (2)語(yǔ)句內(nèi)部使用分號(hào),表示計(jì)算過(guò)程不輸出中間結(jié)果。</p><p> (3)循環(huán)后的A命令表示顯示矩陣A的結(jié)果。</p><p> (4)每個(gè)for語(yǔ)句必須以end語(yǔ)句結(jié)束,否則是錯(cuò)誤的。</p><p> f
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- matlab實(shí)現(xiàn)卷積碼編譯碼畢業(yè)論文
- 卷積碼和LDPC碼的研究與應(yīng)用.pdf
- 畢業(yè)論文_基于vhdl的卷積碼器的設(shè)計(jì)
- 編織卷積碼的優(yōu)化設(shè)計(jì)與仿真.pdf
- 移動(dòng)信道下卷積碼與PUNCTURED卷積碼的性能研究及其在多級(jí)編碼調(diào)制方案中的應(yīng)用.pdf
- 刪除卷積碼的識(shí)別技術(shù).pdf
- 基于3G的卷積碼的研究.pdf
- 卷積碼的譯碼算法研究.pdf
- 通信原理課程設(shè)計(jì)-- 卷積碼的仿真
- 本原與非本原卷積碼的研究.pdf
- RS碼與卷積碼級(jí)聯(lián)碼應(yīng)用研究及其實(shí)現(xiàn).pdf
- 卷積碼及其Viterbi譯碼的FPGA設(shè)計(jì)與實(shí)現(xiàn).pdf
- 無(wú)線通信中卷積碼和RS碼應(yīng)用的研究.pdf
- 基于網(wǎng)絡(luò)編碼的卷積碼糾錯(cuò)方法的研究.pdf
- 糾纏援助的量子卷積碼的研究.pdf
- 物理層網(wǎng)絡(luò)編碼與卷積碼的聯(lián)合設(shè)計(jì).pdf
- 卷積碼和Turbo碼的聯(lián)合信源信道譯碼.pdf
- 卷積碼盲識(shí)別技術(shù).pdf
- 卷積碼盲識(shí)別算法研究.pdf
- 卷積碼識(shí)別技術(shù)研究.pdf
評(píng)論
0/150
提交評(píng)論