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