基于Matlab的差錯控制仿真_第1頁
基于Matlab的差錯控制仿真_第2頁
基于Matlab的差錯控制仿真_第3頁
基于Matlab的差錯控制仿真_第4頁
基于Matlab的差錯控制仿真_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、摘要IAbstractII引言1第一章 緒論21.1 題目背景21.2 課題研究意義21.3 國內外相關研究情況21.4 本文主要研究工作3第二章 相關技術介紹42.1 差錯控制技術42.1.1 差錯控制的基本方式42.1.2 差錯控制編碼52.1.3 差錯控制編碼的分類52.1.4 差錯控制編碼的基本原理52.2 線性分組碼62.2.1 線性分組碼基本概念62.2.2 線性分組碼編碼原理62.2.3 差線性分組碼譯碼原理72.3 循環(huán)碼82.3.1 循環(huán)碼基本概念82.3.2 循環(huán)碼的多項式表示及生成矩陣82.3.3 循環(huán)碼編碼原理92.3.4 循環(huán)碼譯碼原理10第三章 Matlab軟件與S

2、imulink仿真平臺123.1 Matlab軟件介紹123.1.1 Matlab發(fā)展史123.1.2 M文件133.1.3 程控流語句133.2 Simulink143.2.1 Simulink簡介143.2.2 Simulink模塊15第四章 基于Matlab差錯控制技術仿真及結果分析174.1 線性分組碼差錯控制仿真174.1.1 線性分組碼仿真步驟174.1.2 線性分組碼差錯控制仿真系統(tǒng)模型174.1.3 線性分組碼仿真流程及結果分析174.2 循環(huán)碼差錯控制仿真174.2.1 循環(huán)碼仿真步驟234.2.2 循環(huán)碼差錯控制仿真系統(tǒng)模型254.2.3 循環(huán)碼仿真流程及結果分析254.2

3、.4 主要功能模塊及參數(shù)設置264.2.5 循環(huán)碼的誤碼率與差錯率的關系29結論32致謝33參考文獻34基于Matlab的差錯控制技術仿真摘要:近些年來,通信增值業(yè)務得到迅速發(fā)展,保證通信中較低信噪比情況下的數(shù)據(jù)無誤傳輸,提高通信的有效性和可靠性顯得越來越重要,而差錯控制技術對于提高通信系統(tǒng)的傳輸可靠性具有重要意義。 在通信傳輸過程中,由于各種因素的影響數(shù)據(jù)可能變得紊亂或丟失,造成發(fā)送的數(shù)據(jù)和接收的數(shù)據(jù)不一致而出現(xiàn)差錯。差錯控制是在數(shù)字通信中利用編碼方法對傳輸中產生的差錯進行控制,以提高數(shù)字消息傳輸?shù)臏蚀_性。而信道編碼是通信系統(tǒng)中采用的一種差錯控制措施。 在信道編碼過程中,發(fā)送端將會給被傳輸?shù)?/p>

4、信息上附加一些監(jiān)督碼元,進行特定編碼,在監(jiān)督碼元與信息碼元之間以某種確定的規(guī)則相互關聯(lián)且約束。在接收端以既定之規(guī)則來校驗信息碼元與監(jiān)督碼元之間的關系,一旦在傳輸過程中發(fā)生差錯,則信息碼元與監(jiān)督碼元的關系就會受到破壞,從而在接收端可以發(fā)現(xiàn)錯誤乃至糾正錯誤。 由此可見一種好的信道編碼即一種好的差錯控制技術對于提高通信系統(tǒng)的傳輸可靠性具有重要意義。關鍵詞:差錯控制;信道;Matlab;線性碼;循環(huán)碼The error control simulation based on MatlabAbstract:In recent years, the communication value-added se

5、rvices have developed rapidly. To ensure that data is correctly trans missed in low SNR, it is important to improve the effectiveness and reliability of communication. Indeed, error control techniques play a major role in enhancing the reliability of the communication system. Due to the influence of

6、 various factors, the data may become disordered or lost in the transmission process; and result to inconsistent data during dispatch and reception. Error control makes use of coding method to control the errors in the transmission in digital communication; in order to improve accuracy of transmissi

7、on. Moreover, the channel coding is one of error control measures used in the communication system. In the channel encoding process, the data will be attached several supervise code elements by sending terminal for specific coding; thus, establish certain rules and relevant constraints between super

8、vise code element and information code element. The receiving terminal verify the supervise code element and information code element by certain rules. Once errors occur during transmission, the destroyed relationship between supervise code element and information code element can be discovered and

9、corrected by the receiving terminal.In a word, a good channel coding that is, a good error control techniques have an important significance for improving the transmission reliability of the communication system.Key Words: Error control; Channel; Matlab; Linear coding; Cyclic code引 言 通信過程中,在實際信道上傳輸數(shù)

10、字信號時,由于信道傳輸特性不理想以及加性噪聲的影響,導致接收端所收到的數(shù)字信號不可避免地會發(fā)生一些隨機性的錯誤。為了能夠在已知信噪比的情況下達到一定的比特誤碼率指標,首先應該合理的設計基帶信號,選擇調制解調方式,來使比特誤碼率盡可能降低。而實際上,在許多通信系統(tǒng)中的比特誤碼率并不能夠滿足實際的需求。保證通信中較低信噪比情況下的數(shù)據(jù)無誤傳輸,提高通信的有效性和可靠性顯得越來越重要。此時則必須采用有效的信道編碼,即差錯控制編碼才能夠將比特誤碼率進一步的降低,以滿足系統(tǒng)的要求。差錯控制技術中的許多譯碼思想和方法,可以解決神經網絡中的一些問題,差錯控制技術方興未艾,當然差錯控制技術還存在一些現(xiàn)實的問題

11、,以目前世界范圍內研究最熱門的隨機碼為例1,由于隨機碼的算法非常復雜,隨機性的可靠度不高,隨即交織器的實現(xiàn)難度大,使隨機碼在通信系統(tǒng)中應用存在成本過高,穩(wěn)定性不夠,無法大規(guī)模的普及等問題,而此類問題正是國際研究的熱點方向,有待在今后的研究中進一步解決。差錯控制編碼基本的實現(xiàn)方法是在發(fā)送端要被傳輸?shù)男畔⑸细郊由弦恍┍O(jiān)督碼元,這些多余的碼元與信息碼元之間以某種的確定規(guī)則相互關聯(lián)約束。在接收端按照既定之規(guī)則校驗信息碼元和監(jiān)督碼元之間的關系,一旦傳輸途中發(fā)生差錯,會導致信息碼元與監(jiān)督碼元之間的關系受到破壞,進而接收端可以發(fā)現(xiàn)錯誤乃至糾正錯誤。因此,研究各種的編碼和譯碼的方法是差錯控制編碼所需要解決的問

12、題。此文就是為了研究比較出最適合采用的差錯控制編碼技術,從而以最低的成本最大程度的降低誤碼率。 第一章 緒論1.1 題目背景近些年來,通信增值業(yè)務得到迅速發(fā)展,保證通信中較低信噪比情況下的數(shù)據(jù)無誤傳輸,提高通信的有效性和可靠性顯得越來越重要。差錯控制技術對于提高通信系統(tǒng)的傳輸可靠性,降低通信設備的發(fā)射功率和減小體積具有重要意義,隨著數(shù)字通信的發(fā)展與電子計算機的廣泛應用,差錯控制編碼日益受到人們的重視并取得迅速發(fā)展,因而在通信系統(tǒng)發(fā)達的今天,差錯控制技術已經廣泛的應用于衛(wèi)星通信系統(tǒng),移動通信系統(tǒng),數(shù)據(jù)存儲等各種數(shù)字通信方面,它對保證信息傳輸?shù)目煽窟\行起著重要作用。以差錯控制技術,實現(xiàn)對信道傳輸數(shù)

13、據(jù)進行糾錯編碼,在現(xiàn)有的通信系統(tǒng)和將來的新型通信系統(tǒng)數(shù)據(jù)傳輸中進行有效差錯控制是一種必然的趨勢,可以預見,在尋求一種在較低信噪比情況下具有強大糾錯能力的差錯控制技術是我們急待解決的課題。1.2 課題研究意義由于在信道傳輸中存在多種干擾因素,嚴重影響數(shù)據(jù)傳輸性能,因此,如何在信道中實現(xiàn)可靠有效的通信成為業(yè)界非常關注的問題,而對差錯控制技術的研究正是實現(xiàn)更佳的可靠性,有效性的最佳方法之一。差錯控制編碼技術廣泛應用于通信系統(tǒng).在通信系統(tǒng)中應用差錯控制編碼不僅可給系統(tǒng)提供很高的可靠性和傳輸穩(wěn)定性,而且編碼增益的提高對于降低發(fā)射機功率和個人移動終端的體積都具有重要意義,特別是對低功率受限的衛(wèi)星信道。34

14、1.3 國內外相關研究情況 目前,利用差錯控制技術降低各類數(shù)字通信系統(tǒng)以及計算機存儲和計算系統(tǒng)中的誤碼率,提高通信質量,在西方國家中已經作為一門標準技術而廣泛應用,而且差錯控制技術還應用于超大規(guī)模集成電路中,以提高集成電路芯片的成品率,不僅如此,差錯控制技術中的許多譯碼思想和方法,可以解決神經網絡中的一些問題,差錯控制技術方興未艾,當然差錯控制技術還存在一些現(xiàn)實的問題,以目前世界范圍內研究最熱門的隨機碼為例,由于隨機碼的算法非常復雜,隨機性的可靠度不高,隨即交織器的實現(xiàn)難度大,使隨機碼在通信系統(tǒng)中應用存在成本過高,穩(wěn)定性不夠,無法大規(guī)模的普及等問題,而此類問題正是國際研究的熱點方向,有待在今后

15、的研究中進一步解決2。1.4 本文主要研究工作差錯控制編碼基本的實現(xiàn)方法是在發(fā)送端要被傳輸?shù)男畔⑸细郊由弦恍┍O(jiān)督碼元,這些多余的碼元與信息碼元之間以某種的確定規(guī)則相互關聯(lián)約束。在接收端按照既定之規(guī)則校驗信息碼元和監(jiān)督碼元之間的關系,一旦傳輸途中發(fā)生差錯,會導致信息碼元與監(jiān)督碼元之間的關系受到破壞,進而接收端可以發(fā)現(xiàn)錯誤乃至糾正錯誤3。因此,研究各種的編碼和譯碼的方法是差錯控制編碼所需要解決的問題。 編碼涉及到的內容也比較廣泛,前向糾錯編碼(FEC)、普通線性碼、線性分組碼(漢明碼、循環(huán)碼)、理德所羅門碼(RS碼)、BCH碼、FIRE碼、交織碼,卷積碼、TCM編碼、Turbo碼等都是差錯控制常用

16、編碼。本文只對其中的線性分組碼、線性循環(huán)碼做以介紹,并對相關內容進行仿真。 先分別進行線性分組碼編碼與循環(huán)碼編碼的基于Matlab系統(tǒng)仿真,分別得到最終的誤碼率曲線圖,進行單一變量的兩次對比,分別是未經過差錯控制編碼的系統(tǒng)傳輸比特差錯率與經過差錯控制編碼的系統(tǒng)傳輸比特差錯率,經過線性分組碼編碼的系統(tǒng)傳輸比特差錯率與經過線性循環(huán)碼編碼的系統(tǒng)傳輸比特差錯率的數(shù)據(jù)比較,由此以來可以得出結果:在信號傳輸過程中經過差錯控制編碼后的信道比特差錯率會有明顯的下降,即差錯控制編碼技術對于提高通信系統(tǒng)的傳輸可靠性具有重要意義;不同的差錯控制編碼方式會產生不同的差錯可控效果,選擇一種有效的編碼方式對于提高數(shù)通信系

17、統(tǒng)的傳輸可靠性至關重要。第二章 相關技術介紹2.1 差錯控制技術2.1.1 差錯控制的基本方式 1. 檢錯重發(fā)方式(ARQ)。采用檢錯重發(fā)方式,發(fā)端經編碼后發(fā)出能夠發(fā)現(xiàn)錯誤的碼,接收端收到后經檢驗如果發(fā)現(xiàn)傳輸中有錯誤,則通過反向信道把這一判斷結果回饋給發(fā)送端。然后,發(fā)送端把信息重發(fā)一次,直到接收端確認為止。采用這種差錯控制方法需要具備雙向信道,一般在計算機數(shù)據(jù)通信中應用。檢錯重發(fā)方式分為三種類型: (1) 停發(fā)等待重發(fā),發(fā)對或發(fā)錯,發(fā)送端均要等待接收端的回應。特點是系統(tǒng)簡單,時延長; (2) 返回重發(fā),無ACK信號,當發(fā)送端收到NAK信號后,重發(fā)錯誤碼組以后的所有碼組,特點是系統(tǒng)較為復雜,時延

18、減??; (3) 選擇重發(fā),無ACK信號,當發(fā)送端收到NAK信號后,重發(fā)錯誤碼組,特點是系統(tǒng)復雜,時延最小。 2. 前向糾錯方式(FEC)。發(fā)送端經編碼發(fā)出能糾正錯誤的碼,接收端收到這些碼組后,通過解碼能發(fā)現(xiàn)并糾正誤碼。前向糾錯方式不需要回饋通道,特別適合只能提供單向通道的場合,特點是時延小,實時性好,但系統(tǒng)復雜。但隨著編碼理論和微電子技術的發(fā)展,編譯碼設備成本下降,加之有單向通信和控制電路簡單的優(yōu)點,在實際應用中日益增多。 3. 混合糾錯檢錯方式(HEC)?;旌霞m錯檢錯方式是前向糾錯方式和檢錯重發(fā)方式的結合,發(fā)送端發(fā)出的碼不但有一定的糾錯能力,對于超出糾錯能力的錯誤要具有檢錯能力。這種方式在實

19、時性和復雜性方面是前向糾錯和檢錯重發(fā)方式的折衷,因而在近年來,在數(shù)據(jù)通信系統(tǒng)中采用較多。 4. 回饋校驗方式(IRQ)。回饋校驗方式(IRQ)又稱回程校驗。收端把收到的數(shù)據(jù)序列全部由反向信道送回發(fā)送端,發(fā)送端比較發(fā)送數(shù)據(jù)與回送數(shù)據(jù),從而發(fā)現(xiàn)是否有錯誤,并把認為錯誤的資料重新發(fā)送,直到發(fā)送端沒有發(fā)現(xiàn)錯誤為止。 優(yōu)點:不需要糾錯、檢錯的編譯器,設備簡單。 缺點:不僅需要反向信道;而且實時性會比較差;在發(fā)送端需要一定容量的內存。(IRQ)方式僅適用于于傳輸速率較低、數(shù)據(jù)差錯率較低的控制簡單的系統(tǒng)中。2.1.2 差錯控制編碼通常差錯控制技術包括兩個主要內容:差錯的檢查和差錯的糾正。差錯檢測通常是通過差

20、錯控制編碼來實現(xiàn)的,而差錯糾正是通過差錯控制的方法來實現(xiàn)的。差錯控制是指在數(shù)據(jù)通信過程中能發(fā)現(xiàn)或糾正錯誤,將差錯限制在盡可能小的允許范圍內。 差錯控制的基本思想是在發(fā)送端根據(jù)要傳輸?shù)臄?shù)據(jù)序列,按一定的規(guī)律加入多余碼元,即附加一些監(jiān)督碼元,這些多余的碼元與信息碼元之間是以某種確定的規(guī)則相互關聯(lián)的,使原來不相關的數(shù)據(jù)序列變成相關的,即編碼。傳輸時將多余碼元和信息碼元一并傳送。接收端根據(jù)信息碼元和多余碼元(監(jiān)督碼元)之間的規(guī)則進行檢驗,即譯碼,根據(jù)譯碼結果進行錯誤檢測,一旦傳輸過程中發(fā)生錯誤,信息碼元與監(jiān)督碼元之間的關系將受到破壞,從而發(fā)現(xiàn)錯誤乃至糾正錯誤。當發(fā)現(xiàn)錯誤時,或者通過反饋信道要求發(fā)送方重

21、發(fā)有錯的數(shù)據(jù),或者由接收端的譯碼器自動將錯誤糾正。多余碼元為監(jiān)督碼元,根據(jù)信息碼元產生監(jiān)督碼元的方法叫差錯控制編碼。2.1.3 差錯控制編碼的分類 1. 按照差錯控制編碼的不同功能,可以分為檢錯碼(僅能檢測誤碼)、糾錯碼(僅可以糾正誤碼)和糾刪碼(兼有糾錯和檢錯功能)。 2. 按照信息碼元和附加的監(jiān)督碼元之間的檢驗關系可以分為線性碼(信息碼元和監(jiān)督碼元滿足一組線性方程式)和非線性碼。 3. 按照信息碼元和監(jiān)督碼元之間的約束關系可以分為分組碼和卷積碼。分組碼中,碼元序列每n位分成一組,其中k個是信息碼元,r=n-k個是監(jiān)督碼元,監(jiān)督碼元僅與本組的信息碼元有關。卷積碼中,編碼后序列也編為分組,但監(jiān)

22、督碼元不僅與本組信息碼元有關,還與前面碼組的信息碼元有關。 4. 按照糾正錯誤的類型不同,可以分為糾正隨機錯誤的碼和糾正突發(fā)錯誤的碼。 5. 按照構成差錯控制編碼的數(shù)學方法來分類,可以分為代數(shù)碼、幾何碼和算術碼。其中代數(shù)碼建立在近代數(shù)學基礎上,是目前發(fā)展最為完善的編碼,其中線性碼是代數(shù)碼的一個最重要的分支。 6. 按照每個碼元的取值不同,可以分為二進制代碼和多進制碼。2.1.4 差錯控制編碼的基本原理 糾錯編碼:對原來的信息代碼重新編寫,根據(jù)需要增加一些監(jiān)督碼,使在輸出端能夠識別出錯碼。 分組碼的結構:將信息碼分組,為每組信息碼附加若干監(jiān)督碼的編碼稱為分組碼。在分組碼中,監(jiān)督碼元僅監(jiān)督本碼組中

23、的信息碼元。分組碼結構圖如圖2.1中所示。 k個信息位r個監(jiān)督位碼長n=k+r 圖2.1 分組碼的基本結構 分組碼的符號:(n, k)碼中n表示碼組的總位數(shù),稱為碼組長度(碼長),k表示碼組中信息碼元的數(shù)目,n-k=r表示碼組中的監(jiān)督碼元數(shù)目,或稱監(jiān)督位數(shù)目。2.2 線性分組碼2.2.1 線性分組碼基本概念所謂線性碼就是碼字集中的元(碼字)之間的任意線性組合仍然是合法的碼字,即是線性組合運算封閉的碼字集。 線性分組碼是一類奇偶校驗碼,它可以由(n,k)形式表示,編碼器將一個k比特信息分組(信息矢量)轉變?yōu)橐粋€更長的由給定元素符號集組成的n比特編碼分組,當這個符號集包含兩個元素(0和1),與二進

24、制相對,稱為二進制編碼。 分組碼是對每段k 位長的信息組,以一定規(guī)則增加r = n - k個檢驗元,組成長為n的序列:,稱這個序列為碼字。在二進制情況下,信息組總共有個( q 進制為個) ,因此通過編碼器后,相應的碼字也有個,稱這個碼字集合為( n , k) 分組碼。n長序列的可能排列總共有種。稱被選取的個 n重為許用碼組,其余個為禁用碼組。對于長度為n的二進制分組碼,可以表示成(n,k),通常用于前向糾錯。在分組碼中,監(jiān)督位加到信息位之后,形成新碼,在編碼中,k個信息位,被編為n位長度,(n-k)個監(jiān)督碼的作用是實現(xiàn)檢錯和糾錯。2.2.2 線性分組碼編碼原理線性碼是一種分組碼,而線性分組碼的

25、編碼過程可以分為以下兩個步驟:首先,把信息序列按照一定的長度分割成為若干信息碼組,每組由k位組成;然后,編碼器按照既定的由線性方程組規(guī)定的線性規(guī)則,將信息碼組變換成為n(nk)重碼字,其中r=n-k個附加碼元是線性運算產生的。在編碼的過程中,首先將數(shù)據(jù)每k個比特分為一組,記作m,成為信息組。然后將長度為k的信息組進行映射運算,即編碼。可以得到一個n比特構成的碼字Ci,這樣的分組碼成為(n,k)碼。分組碼的一個重要特性就是它的碼元僅與當前編碼的信息序列相關,而與過去的信息序列無關,故此也可以說分組編碼器是無記憶的。如果Ci中的n個元素都可以用m中的k個元素的線性組合形成,我們將它稱為線性分組碼。

26、線性分組碼的編碼過程可以描述成一個矢量和一個矩陣的成績的結果。即: (2-1)其中G是由k個n維矢量構成的矩陣,m是信息序列分組,c是編碼得到的n維編碼輸出。根據(jù)公式(2-1)得碼字c可以表示為。而矩陣G稱為編碼生成矩陣,形式為: (2-2)有了生成矩陣后,則可根據(jù)輸入的信息位和生成矩陣相乘得到編碼矩陣即: (2-3)其中C為編碼后結果, I為信息矩陣,G為生成矩陣。2.2.3 差線性分組碼譯碼原理 監(jiān)督矩陣與(n, k)碼的任何一個許用碼字進行相乘的結果必等于0,即如果C=mG是任一(n, k)碼字,則必有C與H的轉置矩陣的乘機為0。若不屬于許用碼字,或有傳輸差錯,且差錯位數(shù)在(n, k)碼

27、糾錯能力內,則運算的結果將為非0值,此時,可以糾錯或檢錯重發(fā)。當編碼矩陣與生成矩陣的轉置矩陣相乘時,若當其中的一位編碼出現(xiàn)了差錯,則會有七種情況,則根據(jù)這些情況列出錯碼矩陣如下: (2-4)而這些情況正好是和校驗子有某種對應關系的,根據(jù)這些對應關系可以進行相關編程。若編程檢測到了那一位錯誤可以根據(jù)下式: A=B+E (2-5) 對接收到的信息進行改正求出正確的編碼,從而再提去更正后的接收序列的前四位來提取信息位,以至獲得信息矩陣I。其中A為糾錯輸出碼序列,E為錯碼矩陣,B為信道輸出碼。2.3 循環(huán)碼2.3.1 循環(huán)碼基本概念 循環(huán)碼是線性分組碼的一種,所以它具有線性分組碼的一般特性,除此之外還

28、具有循環(huán)性。循環(huán)碼的編碼和解碼設備都不太復雜,且檢(糾)錯能力強。它不但可以檢測隨機的錯誤,還可以檢錯突發(fā)的錯誤。(n, k)循環(huán)碼可以檢測長為n-k或更短的任何突發(fā)錯誤,包括首尾相接突發(fā)錯誤。 循環(huán)碼是屬于無權碼,循環(huán)碼的編排特點是在相鄰的兩個數(shù)碼之間符合卡諾圖中的鄰接條件,即相鄰兩個數(shù)碼之間只有一位碼元不同。由于數(shù)碼轉換的速度回有快有慢,中間會經過一些其它的數(shù)碼形式,故稱此為瞬時錯誤。而循環(huán)碼的優(yōu)點就是沒有瞬時錯誤,循環(huán)碼是相鄰的兩個數(shù)碼之間僅有一位碼元不同的方式,這樣滿足臨接條件,故而循環(huán)碼不會產生瞬時錯誤。循環(huán)碼的最大特點就是碼字的循環(huán)性:循環(huán)碼中的任一許用碼組在經過循環(huán)移位之后,所得

29、到的碼組依然是許用碼組。形象的說就是若為一循環(huán)碼組,則、還是許用碼組。也就是說,不論是左移還是右移,也不論移多少位,仍然是許用的循環(huán)碼組。2.3.2 循環(huán)碼的多項式表示及生成矩陣 設碼長為n的循環(huán)碼表示為: (2-6)其中為二進制數(shù),通常把碼組中各碼元當做二進制的系數(shù),即把上式(2-6)中長為n的各個分量看做多項式: (2-7)上式的各項系數(shù),則碼字與碼多項式一一對應,這種多項式中,x僅表示碼元位置的標記,因此我們并不關心x的取值,這種多項式稱為碼多項式4。用生成多項式(2-7)式除,得到: (2-8)上式中是余式,其表示為: (2-9)而+是碼多項式,由此可得循環(huán)碼的系統(tǒng)形式的生成矩陣為:

30、G= (2-10)2.3.3 循環(huán)碼編碼原理 1. 信息碼構成信息多項式。多項式如下: (2-11) 其中高冪次為k-1; 2. 用乘以信息多項式m(x)。這一運算實際上是把信息碼后附加上(n-k)個“0”。例如,信息碼為110,它相當于。當n-k7-34時,它相當于1100000; 3. 用g(x)除b中之式得到余式r(x)。其次數(shù)必小于g(x)次數(shù),即小于(n-k),將此r(x)加于信息位后做監(jiān)督位。由于循環(huán)碼多項式A(x)都可以被g(x)整除,也就是: (2-12)因此,用m(x)除以g(x),就得到商Q(x)和余式r(x),即: (2-13) 這樣就得到了r(x); 4. 求A(x)。

31、編碼輸出系統(tǒng)循環(huán)碼多項式A(x)為: (2-14)上述中闡明了循環(huán)碼編碼的整個過程,而根據(jù)上面的過程討論,可以得到(7,4)循環(huán)碼編碼流程圖如圖2.2所示。 初始化 確定余式r(x): 確定A(x):儲存A(x) 圖2.2 循環(huán)碼編碼流程圖2.3.4 循環(huán)碼譯碼原理 對于接收端譯碼的要求通常有兩個:檢錯與糾錯。達到檢錯目的的譯碼十分簡單,可以由式(2-12)通過判斷接收到的碼組多項式B(x)是否能被生成多項式g(x)整除作為依據(jù)。當傳輸中未發(fā)生錯誤時,也就是接收的碼組與發(fā)送的碼組相同,即A(x)=B(x),則接收的碼組B(x)必能被g(x)整除;若傳輸中發(fā)生了錯誤,則A(x)B(x),B(x)

32、不能被g(x)整除5。因此,可以根據(jù)余項是否為零來判斷碼組中有無錯碼。 需要指出的是,有錯碼的接收碼組也有可能被g(x)整除,這時的錯碼就不能檢出了。這種錯誤被稱為不可檢錯誤,不可檢錯誤中的錯碼數(shù)必將超過這種編碼的檢錯能力。 在接收端為糾錯而采用的譯碼方法自然比檢錯要復雜許多。為了能夠糾錯要求每個可糾正的錯誤圖樣必須和校正子之間存在某種對應關系。 糾錯可以按照下述步驟進行:首先,由接收到的碼多項式B(x)計算校正子(伴隨式)多項式S(x);其次,由校正子S(x)確定錯誤圖樣E(x)?;阱e誤圖樣識別的譯碼器稱為梅吉特譯碼器;最后,將錯誤圖樣E(x)與B(x)相加,糾正錯誤。 編碼為(7,4)循

33、環(huán)碼的譯碼流程圖如圖2.3所示。 初始化由R(x)確定S(x)的余式。S(x)=S(x)=0,無誤碼誤碼 由S(x)確定錯誤圖樣E(x)否 否 是糾錯C(x)=E(x)+R(x)存儲C(x) 圖2.3 譯碼程序框圖第三章 Matlab軟件與Simulink仿真平臺3.1 Matlab軟件介紹3.1.1 Matlab發(fā)展史在當今科學技術飛速發(fā)展的社會,Matlab已經成為國際上最為流行的科學與工程計算及仿真的軟件工具。Matlab語言的功能也越來越強大,不斷適應新的要求提出新的解決方法,而它亦不再是一個簡簡單單的“矩陣實驗室”6,它已經成為了一種具有廣泛的應用前景的全新計算機高級編程語言了,有人

34、將它稱之為為第四代計算機語言,它在國內外的高校和研究部門正扮演著重要的角色。由此可預見,在科學運算、工程仿真、自動控制與科學繪圖領域 Matlab語言將長期保持其獨一無二的地位。20世紀70年代中期,Cleve Moler博士和其同事在美國國家科學基金的資助下開發(fā)了調用Eispack和Linpack的Fortran子程序庫。Eispack是特征值求解的Fortran程序庫,Linpack是解線性方程的程序庫。在當時,這兩個程序庫代表矩陣運算的最高水平。其語言的首創(chuàng)者Cleve Moler教授參與編寫了數(shù)值分析領域一些著名的著作和兩個重要的Fortran程序Eispack和Linpack,并且他

35、在數(shù)值分析,特別是在數(shù)值線性代數(shù)的領域中很有影響,他曾在密西根大學、斯坦福大學和新墨西哥大學任數(shù)學與計算機科學教授。1980年前后,當時的新墨西哥大學計算機系主任Moler教授在講授線性代數(shù)課程時,發(fā)現(xiàn)了用其它高級語言編程極為不便,于是他開始自己動手,利用業(yè)余時間為學生編寫Einpack和Linpack的接口程序。Cleve Moler給這個接口程序取名為Matlab,該名為矩陣(matrix)和實驗室(laboratory)兩個英文單詞的前三個字母的組合7。這一軟件利用了當時數(shù)值線性代數(shù)領域最高水平的Eispack和Linpack兩大軟件包中可靠的子程序,用Fortran語言編寫了集命令翻譯

36、、科學計算于一身的一套交互式軟件系統(tǒng)。直到1984年,Cleve Moler和 John Lithe成立了MathWorks公司,正式把Matlab推向市場,并繼續(xù)進行Matlab的研究和開發(fā)。在Matlab進入市場前,國際上的許多應用軟件包都是直接以Fortran和C語言等編程語言開發(fā)的。這種軟件的缺點是使用面窄、接口簡陋、程序結構不開放以及沒有標準的基庫,很難適應各學科的最新發(fā)展,因而很難推廣。Matlab的出現(xiàn),為各國科學家開發(fā)學科軟件提供了新的基礎。在Matlab問世不久的20世紀80年代中期,原先控制領域里的一些軟件包紛紛被淘汰或在Matlab上重建。 The MathWorks公司

37、于1992年推出了具有劃時代意義的Matlab4.0版本,并于1993年推出了其微機版, 可以配合Microsoft Windows一起使用,使之應用范圍越來越廣。1994年推出的4.2版本擴充了4.0版本的功能,尤其在圖形接口設計方面更提供了新的方法。1997年推出的Matlab 5.0版允許了更多的數(shù)據(jù)結構,如單元數(shù)據(jù)、數(shù)據(jù)結構體、多維矩陣、對象與類等,使其成為一種更方便編程的語言。1999年初推出的Matlab 5.3版在很多方面又進一步改進了Matlab語言的功能8。2000年10月底推出了其全新的 Matlab6.0正式版(Release 12),在核心數(shù)值算法、接口設計、外部接口、

38、應用桌面等諸多方面有了極大的改進。雖然Matlab語言是計算數(shù)學專家倡導并開發(fā)的,但其普及和發(fā)展離不開自動控制領域學者的貢獻。甚至可以說,Matlab語言是自動控制領域學者和工程技術人員捧紅的,因為在Matlab語言的發(fā)展進程中,許多有代表性的成就和控制界的要求與貢獻是分不開的。迄今為止,大多數(shù)工具箱也都是控制方面的。 Matlab軟件具有著強大的數(shù)學運算能力和方便實用的繪圖功能以及語言的高度集成性,而且它在其它科學與工程領域的應用亦是越來越廣,有著廣闊的應用前景和不可估量的潛能。子曰:“工欲善其事,必先利其器”。在決工程方面的問題需正確效率的“善假于物”,而有一種行之有效的工具能解決在教學與

39、研究中遇到的問題,那么Matlab當仁不讓的正是此“物”。它可以幫助使用者從繁瑣、無謂的底層編程中解放出來。3.1.2 M文件 Matlab除了如前所述的在命令窗口進行的直接交互的指令操作方式外,另外一種更為重要的工作方式就是m檔的編程工作方式。m檔有兩種形式,一種是腳本檔(Script File),另一種是函數(shù)文件(Function File)。m文件的擴展名為.m。m檔可以通過任何純文本編輯器進行編輯,Matlab中也有自帶的文本編輯器,使用edit命令即可開啟9。3.1.3 程控流語句任何計算機語言,只要存在順序結構,循環(huán)結構以及分支結構,就可以完成任何程序功能。在Matlab中也有這三

40、種基本的程序結構。但值得注意的是,由于Matlab語言矩陣計算功能十分強大,常常僅僅使用順序結構藉以矩陣的邏輯運算就可以完成計算任務,由于循環(huán)結構和分支結構在Matlab語言中的運行速度相對較慢,所以在算法優(yōu)化的編程中應當盡可能避免使用,而代之以矩陣運算,從而提高程序運行速度(通??梢蕴岣邤?shù)十倍到百倍),簡化程序代碼,而使得程序代碼更加接近于數(shù)學上的表達10。當然,矩陣編程的編程方法需要讀者更多的關于線性代數(shù)和矩陣數(shù)學的知識和思維方式。總之,Matlab是一種非常完美易用的超高級矩陣編程語言。這里只介紹本次編程中用到的編程結構。 1. 順序結構。在順序結構中,Matlab語句是按照書寫的前后順

41、序來執(zhí)行的。這是Matlab最常用的程序結構,也是執(zhí)行效率最高的程序結構。 2. 循環(huán)結構for。for.end語句適合于循環(huán)次數(shù)確定的情況,將循環(huán)變量的初值,判別和變化放在循環(huán)開頭。利用help for或doc for可以獲得關于該語句的使用手冊。for.end語句的調用形式是: for v=表達式 語句1;.語句n;End 3. 條件分支結構if。if 分支結構的一般形式是:if 表達式語句段1;else語句段End3.2 Simulink3.2.1 Simulink簡介 Simulink是Matlab最重要的組件之一,它提供一個動態(tài)系統(tǒng)建模、仿真和綜合分析的集成環(huán)境。在該環(huán)境中,無需大量

42、書寫程序,而只需要通過簡單直觀的鼠標操作,就可構造出復雜的系統(tǒng)。它是一個用來對動態(tài)系統(tǒng)進行建模、仿真和分析的Matlab軟件包。支持連續(xù)、離散以及兩者混合的線性和非線性系統(tǒng),同時它也支持具有不同部分擁有不同采樣率的多種采樣速率的仿真系統(tǒng)。在其下提供了豐富的仿真模塊。其主要功能是實現(xiàn)動態(tài)系統(tǒng)建模、方針與分析,可以預先對系統(tǒng)進行仿真分析,按仿真的最佳效果來調試及整定控制系統(tǒng)的參數(shù)。Simulink的出現(xiàn),給控制系統(tǒng)分析與設計帶來了福音。Simulink具有適應面廣、結構和流程清晰及仿真精細、貼近實際、效率高、靈活等優(yōu)點,并基于以上優(yōu)點Simulink已被廣泛應用于控制理論和數(shù)字信號處理的復雜仿真和

43、設計。構架在Simulink基礎之上的其他產品擴展了Simulink多領域建模功能,也提供了用于設計、執(zhí)行、驗證和確認任務的相應工具。Simulink與Matlab;緊密集成,可以直接訪問Matlab大量的工具來進行算法研發(fā)、仿真的分析和可視化、處理腳本的創(chuàng)建、建模環(huán)境的定制以及信號參數(shù)和測試數(shù)據(jù)的定義11。顧名思義,名稱表明該系統(tǒng)的兩個主要功能:Simu(仿真)和Link(連接),即該軟件可以利用系統(tǒng)提供的各種功能模塊并通過信號線連接各個模塊從而創(chuàng)建出所需要的控制系統(tǒng)模型,然后利用Simulink提供的功能來對系統(tǒng)進行仿真和分析。 Simulink是Matlab中的一種可視化仿真工具,是基于

44、Matlab的框圖設計環(huán)境,是實現(xiàn)動態(tài)系統(tǒng)建模、仿真和分析的一個軟件包,被廣泛應用于線性系統(tǒng)、非線性系統(tǒng)、數(shù)字控制及數(shù)字信號處理的建模和仿真中。Simulink可以用連續(xù)采樣時間、離散采樣時間或兩種混合的采樣時間進行建模,它也支持多速率系統(tǒng),也就是系統(tǒng)中的不同部分具有不同的采樣速率。為了創(chuàng)建動態(tài)系統(tǒng)模型,Simulink提供了一個建立模型方塊圖的圖形用戶接口(GUI),這個創(chuàng)建過程只需單擊和拖動鼠標操作就能完成,它提供了一種更快捷、直接明了的方式,而且用戶可以立即看到系統(tǒng)的仿真結果。 Simulink模塊庫提供了豐富的描述系統(tǒng)特性的典型環(huán)節(jié),有信號源模塊庫(Source) ,接收模塊庫(Sin

45、ks),連續(xù)系統(tǒng)模塊庫(Continuous),離散系統(tǒng)模塊庫(Discrete),非連續(xù)系統(tǒng)模塊庫(Signal Routing),信號屬性模塊庫(Signal Attributes),數(shù)學運算模塊庫(Math Operations),邏輯和位操作庫(Logic and Bit Operations)等等,此外還有一些特定學科仿真的工具箱。 Simulink為用戶提供了一個圖形化的用戶界面(GUI)12。對于用方框圖表示的系統(tǒng),通過圖形界面,利用鼠標單擊和拖拉方式,它與用微分方程和差分方程建模的傳統(tǒng)仿真軟件包相比,具有更直觀、更方便、更靈活的優(yōu)點。不但實現(xiàn)了可視化的動態(tài)仿真,也實現(xiàn)了與Mat

46、lab、C或者Fortran語言,甚至和硬件之間的數(shù)據(jù)傳遞,大大擴展了它的功能。3.2.2Simulink模塊在這里我主要介紹在本仿真工程中將會使用到的模塊。 1. Mux混路器。將多路信號依照向量的形式混合成一路信號。例如,可以將要觀察的多路信號合并成一路,連接到示波器上顯示,這樣就可以將這些信號同時顯示出來。 2. Demux分路器。將混路器組成的信號依照原來的構成方法分解成多路。 3. Display數(shù)字顯示器。將輸入信號用數(shù)字形式顯示出來。 4. Bernoulli Binary Generator伯努利隨機碼發(fā)生器。伯努利二進制的發(fā)生器使用伯努利分布生成隨機二進制數(shù),發(fā)生器會隨機的產

47、生0到1之間的任何實數(shù),其間設置概率P,則剩余的概率生成(1-P),由此以來隨機產生的實數(shù)都可以生為二進制數(shù)的0和1,分別對應概率P和(1-P),其中P=0.5為模塊默認設置參數(shù)。 5. Binary Cyclic Encoder二進制循環(huán)碼編碼器。用于將伯努利二進制發(fā)生器產生的碼元進行線性循環(huán)編碼以通過模擬信道。 6. Binary Symmetric Channel二進制均衡信道。用來模擬信息傳輸?shù)耐ǖ馈T趯嶋H傳輸過程中由于各種原因而產生噪聲干擾,在這里模擬信道會自我生成固有的持續(xù)性的熱噪聲,其中可以設置在模擬信道傳輸時的差錯概率。 7. Binary Cyclic Decoder二進制循

48、環(huán)碼解碼器。將通過模擬均衡信道的信號進行相關解碼。 8. Error Rate Calculation誤碼率計算器。其運算是比較接收的數(shù)據(jù)跟輸出的數(shù)據(jù),它是一個實時流動統(tǒng)計,以這種方式來計算其中誤碼率。通過對出現(xiàn)同位相異的碼字總數(shù)的統(tǒng)計作為分子,分母則是通過的碼元數(shù)據(jù)元素的總數(shù),其中它不考慮輸入元素之間的差異幅度。如果輸入的是位數(shù),則計算出來的是誤碼率,如果輸入的是符號,則計算出來的是符號差錯率。 9. Binary Linear Encoder二進制線性編碼器。用于將伯努利二進制發(fā)生器產生的碼元進行線性循環(huán)編碼以通過模擬信道。其使用點陣式產生器產生一個二進位的線區(qū)段編碼。 10. Binar

49、y Linear Decoder二進制線性解碼器。將通過模擬均衡信道的信號進行相關解碼。11. To Workspaces工作空間寫入器??梢詫⑾到y(tǒng)的仿真結果、系統(tǒng)仿真時刻、系統(tǒng)中的狀態(tài)或指定的信號輸出到Matlab的工作空間中,以便進行定量分析。該模塊可以保存任何實數(shù)或復數(shù)類型的數(shù)據(jù)到Matlab工作空間。第四章 基于Matlab差錯控制技術仿真及結果分析4.1 線性分組碼差錯控制仿真4.1.1 線性分組碼仿真步驟 在實現(xiàn)線性分組碼差錯控制編碼技術仿真時,其可以分為以下幾個大步驟: 1. 產生二進制碼元; 2. 進行線性分組編碼; 3. 經過模擬信道; 4. 進行譯碼; 5. 進行對原碼與經

50、過模擬信道的碼進行差錯率運算; 6. 得到線性碼的信號誤碼率與信道差錯率之間的曲線圖,仿真完成并對得到了結果進行分析。4.1.2 線性分組碼差錯控制仿真系統(tǒng)模型 線性碼差錯控制編碼技術的仿真框圖由信號發(fā)生器,線性編碼器,模擬信道,線性解碼器,差錯率運算器,結果顯示器這六大模塊組成,除此以外還有運算結果存儲模塊,在建模時,此模塊屬于附加模塊。下面對這七個模塊功能進行簡單介紹13:信號發(fā)生器模塊:用來產生隨機二進制碼元。線性編碼器模塊:將產生的隨機二進制碼元進行線性分組編碼,即差錯控制編碼。模擬信道模塊:用來模擬信號傳輸通道,為二進制均衡信道,其中生成可控噪聲干擾。線性解碼器模塊:將經過模擬信道的

51、信號進行相干解碼。差錯率運算器模塊:將未進過差錯控制編碼和經過差錯控制編碼的信號進行碼字差錯運算,經過計算得到其實時傳輸誤碼率。運算結果存儲模塊:在數(shù)學建模中,此模塊是可以無需存在的,故此我用虛線箭頭來繪制,在Simulink仿真中,最終得到的仿真結果是以Display模塊進行數(shù)字顯示的,而為了方便觀看結果,仿真結果最終將以曲線圖直觀的表示出來。而在此期間需要調用M函數(shù),所以需要將運算結果提前存儲起來以供后用。4.1.3 線性分組碼仿真流程及結果分析 基于Simulink平臺的系統(tǒng)仿真的步驟為: 1. 建立數(shù)學模型。根據(jù)通信系統(tǒng)的基本原理,將整個系統(tǒng)簡化到源系統(tǒng),確定總的系統(tǒng)功能,并將各部分功

52、能模塊化,找出各部分之間的關系,畫出系統(tǒng)流程框圖模型; 2. 仿真系統(tǒng)。根據(jù)建立的模型,從Simulink通信模型庫的各個子庫中,將所需要的單元功能模塊拷貝到Untitled窗口,按系統(tǒng)流程框圖模型連接,組建要仿真的通信系統(tǒng)模型; 3. 設置、調整參數(shù)。參數(shù)設置包括運行系統(tǒng)參數(shù)設置(如系統(tǒng)運行時間、采樣速率等)和功能模塊運行參數(shù)設置; 4. 運行且分析結果。保存且運行仿真,得到仿真數(shù)據(jù)及波形,并對仿真結果進行分析。其中步驟1已在之前完成,故現(xiàn)在需要根據(jù)已建立好的仿真流程框圖在Simulink模塊庫中選取相應的模塊進行Simulink建模,完成建模。線性分組碼差錯控制仿真系統(tǒng)如圖4.1所示。 圖

53、4.1 線性分組碼差錯控制仿真系統(tǒng)為了進行比較線性分組碼系統(tǒng)的差錯率,又設計不經過線性碼的仿真系統(tǒng)如圖4.2所示。 圖4.2 無線性分組碼仿真系統(tǒng) 由于伯努利隨機信號發(fā)生器的產生信號是以概率來執(zhí)行的,則所生成的隨機數(shù)均在0到1之間,而二進制數(shù)中碼字非“0”即“1”所以在這里出現(xiàn)零的概率設置為0.514。伯努利二進制信號發(fā)生器參數(shù)設置如圖4.3所示。 圖4.3 伯努利二進制信號發(fā)生器參數(shù) 圖4.4 二進制線性編碼器參數(shù) 圖4.5 二進制均衡信道參數(shù) 圖4.6 二進制線性解碼器參數(shù) 圖4.7 誤碼率計算器參數(shù) Start time和Stop time設置仿真的起始和停止時間,單位是秒。而這里的時間概念與真實的時間并不一樣,在設置時與實際的運行時間和計算機的性能、模型的復雜程度、解法、步長、誤差要求等等因素都有關。在本仿真中設置的Start time為0,Stop time為10000。 目前沒有一種對所有的模型都有效的方法,在做Simulink仿真時要根據(jù)各種模型的特點,各種數(shù)值積分方法的特點和范圍,選

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論