基于matlab的點對點通信仿真(附部分程序代碼)_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于MATLAB的點對點通信仿真</p><p><b>  摘 要</b></p><p>  在當(dāng)前飛速發(fā)展的信息時代,隨著數(shù)字通信技術(shù)計算機技術(shù)的發(fā)展,以及通信網(wǎng)絡(luò)與計算機網(wǎng)絡(luò)的相互融合,信息技術(shù)已成為21世紀社會國際化的強大動力。Matlab軟件包含眾多的功能各異的工具箱,涉及領(lǐng)域包括:數(shù)字信號處理、通信技術(shù)、控制系統(tǒng)、神經(jīng)網(wǎng)絡(luò)、

2、模糊邏輯、數(shù)值統(tǒng)計、系統(tǒng)仿真和虛擬現(xiàn)實技術(shù)等。作為一個功能強大的數(shù)學(xué)工具軟件,在很多領(lǐng)域中得到了廣泛的應(yīng)用。</p><p>  本文利用Matlab對點對點通信進行仿真實驗,實現(xiàn)信號從信源到信宿過程的模擬并獲得信噪比與誤碼率的曲線圖,研究了相移鍵控調(diào)制下信噪比與誤碼率的關(guān)系并比較了不同進制相移鍵控調(diào)制下誤碼率—信噪曲線的異同,同時也研究了不同中繼信道對誤碼率—信噪比曲線的影響 </p><p

3、>  關(guān)鍵字:MATLAB仿真;點對點通信;PSK;中繼信道;誤碼率</p><p><b>  1 引言</b></p><p>  1.1 課程設(shè)計的目的和意義</p><p>  鞏固所學(xué)的專業(yè)技術(shù)知識,培養(yǎng)學(xué)生綜合運用所學(xué)知識與生產(chǎn)實踐經(jīng)驗,分析和解決工程技術(shù)問題的能力,培養(yǎng)初步的獨立設(shè)計能力;通過課程設(shè)計仿真試驗,了解并掌握通信

4、系統(tǒng)、通信調(diào)制解調(diào)等技術(shù)的一般設(shè)計方法,訓(xùn)練并提高學(xué)生在理論計算、結(jié)構(gòu)設(shè)計、工程繪圖、查閱設(shè)計資料、運用標(biāo)準(zhǔn)與規(guī)范和應(yīng)用計算機等方面的能力,更好地將理論與實踐相結(jié)合,提高綜合運用所學(xué)理論知識獨立分析和解決問題的能力。并且掌握Matlab的簡單操作方法。</p><p>  1.2 課程設(shè)計內(nèi)容</p><p>  設(shè)計一個四進制相移鍵控調(diào)制系統(tǒng),繪出誤碼率與信噪比的關(guān)系曲線。</p&

5、gt;<p>  繪制不同進制相移鍵控下誤碼率與信噪比的關(guān)系曲線,并分析是否與理論相符,得出結(jié)論。</p><p>  設(shè)計一個加中繼且的四進制相移鍵控系統(tǒng),繪出其誤碼率與信噪比的關(guān)系曲線。</p><p>  繪出四進制相移系統(tǒng)加不同跳數(shù)中繼情況下其誤碼率與信噪比的關(guān)系曲線,并分析是否與理論相符,得出結(jié)論。</p><p><b>  2仿

6、真環(huán)境簡介</b></p><p>  本次課程設(shè)計使用MATLAB,運用蒙特?卡羅方法(Monte Carlo method),對通信系統(tǒng)進行仿真。 MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境。MATLAB是一個包含大量計算算法的集合。其擁有600多個工程中要用到的數(shù)學(xué)運算函數(shù),可以方便的實現(xiàn)用戶所需

7、的各種計算功能。函數(shù)中所使用的算法都是科研和工程計算中的最新研究成果,而前經(jīng)過了各種優(yōu)化和容錯處理。在通常情況下,可以用它來代替底層編程語言,如C和C++ 。在計算要求相同的情況下,使用MATLAB的編程工作量會大大減少。MATLAB的這些函數(shù)集包括從最簡單最基本的函數(shù)到諸如矩陣,特征向量、快速傅立葉變換的復(fù)雜函數(shù)。函數(shù)所能解決的問題其大致包括矩陣運算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號運算、傅立葉變換和數(shù)

8、據(jù)的統(tǒng)計分析、工程中的優(yōu)化問題、稀疏矩陣運算、復(fù)數(shù)的各種運算、三角函數(shù)和其他初等數(shù)學(xué)運算、多維數(shù)組操作以及建模動態(tài)仿真等。蒙特?卡羅方法(Monte Carlo method),也稱統(tǒng)計模擬方法,是二十世</p><p><b>  3系統(tǒng)理論分析</b></p><p><b>  3.1通信系統(tǒng)模型</b></p&

9、gt;<p>  圖2-1:通信系統(tǒng)模型</p><p>  如圖2-1所示為通信系統(tǒng)的模型,由一下幾個部分組成:</p><p>  信息源(簡稱信源):把各種消息轉(zhuǎn)換成原始電信號,如麥克風(fēng)。信源可分為模擬信源和數(shù)字信源。</p><p>  發(fā)送設(shè)備:產(chǎn)生適合于在信道中傳輸?shù)男盘枴?lt;/p><p>  信道:將來自發(fā)送設(shè)備的

10、信號傳送到接收端的物理媒質(zhì)。分為有線信道和無線信道兩大類。</p><p>  信道是信息論中的一個主要概念。它是用來傳送信息的,所以理論上應(yīng)解決它能無錯誤地傳送的最大信息率,也就是計算信道容量問題,并證明這樣的信息率是能達到或逼近的,最好還能知道如何實現(xiàn),這就是信道編碼問題。</p><p>  在理論研究中,一條信道往往被分成信道編碼器、信道本身和信道譯碼器。人們可以變更編碼器、譯碼器

11、以獲得最佳的通信效果,因此編碼器、譯碼器往往是指易于變動和便于設(shè)計的部分,而信道就指那些比較固定的部分。但這種劃分或多或少是隨意的,可按具體情況規(guī)定。例如調(diào)制解調(diào)器和糾錯編譯碼設(shè)備一般被認為是屬于信道編碼器、譯碼器的,但有時把含有調(diào)制解調(diào)器的信道稱為調(diào)制信道;含有糾錯編碼器、譯碼器的信道稱為編碼信道。信息通過信道傳輸,由于物理介質(zhì)的干擾和無法避免噪聲,信道的輸入和輸出之間僅具有統(tǒng)計意義上的關(guān)系,在做出唯一判決的情況下將無法避免差錯,其差

12、錯概率完全取決于信道特性。因此,一個完整、實用的通信系統(tǒng)通常包括信道編譯碼模塊。視頻信號在傳輸前都會經(jīng)過高度壓縮以降低碼率,傳輸錯誤會對最后的圖像恢復(fù)產(chǎn)生極大的影響,因此信道編碼尤為重要。</p><p>  噪聲源:集中表示分布于通信系統(tǒng)中各處的噪聲。</p><p>  接收設(shè)備:從受到減損的接收信號中正確恢復(fù)出原始電信號。 </p><p>  受信者(信宿)

13、:把原始電信號還原成相應(yīng)的消息,如揚聲器等。</p><p>  3.2 相移鍵控原理</p><p>  數(shù)字相位調(diào)制(phase shift keying,PSK)又稱相移鍵控。二進制相移鍵控記做2PSK是相移鍵控最簡單的形式,還有多進制相移鍵控MPSK是二進制相移鍵控的推廣,本次仿真實驗主要用到了二進制相移鍵控(BPSK),四進制相移鍵控(QPSK)及八進制相移鍵控(8PSK)三種調(diào)

14、制方式</p><p>  3.2.1二進制相移鍵控原理</p><p>  二進制相移鍵控是用二進制數(shù)字信號去控制載波的相位,使已調(diào)等幅、恒定載波的載波相位與待發(fā)數(shù)字信號相對應(yīng);只有兩種對應(yīng)狀態(tài),例如載波相位以0相與相分別代表“1”(傳號)和“0”(空號)。如果數(shù)字基帶信號g(t)的的幅度是1、寬度為的矩形脈沖,則2PSK信號可表示為:</p><p>  取0時

15、代表“1”,取時代表“0”</p><p>  由于2PSK信號相當(dāng)于DSB信號,因而不能采用包絡(luò)解調(diào),要采用相干解調(diào);但必須在DSB解調(diào)后加一抽樣判決以便恢復(fù)原數(shù)字信號。其判決準(zhǔn)則為:抽養(yǎng)值大于0,判為1 ;抽養(yǎng)值小于0,判為0</p><p>  下圖為2PSK信號的波形圖及矢量圖</p><p>  圖3-1:2PSK信號波形圖

16、 圖3-2:2PSK信號矢量圖</p><p>  3.2.2 多進制相移鍵控調(diào)制原理</p><p>  多進制相移鍵控是二進制的推廣。它用多個相位狀態(tài)的正弦震蕩分別表示不同的數(shù)字信息,通常相位用M=計算,有2,4,8,16相制等,M取不同的相位,分別于n為二進制碼元的不同組合相對應(yīng)。其信號的產(chǎn)生于BPSK類似只是維度不同在處理時略有差別,在此不再詳細介紹</p

17、><p>  圖3-3和圖3-4分別為QPSK信號及8PSK信號的矢量圖</p><p>  圖3-3:QPSK信號矢量圖 圖3-4:8PSK信號矢量圖</p><p>  4 仿真過程基于Matlab的實現(xiàn)</p><p>  4.1仿真條件及符號說明</p><p>  4.1.1仿真條件:<

18、;/p><p>  (1) 整個通信的等效高斯白噪聲方差為1;</p><p> ?。?)假設(shè)信道估計是理想的;</p><p>  (3) 經(jīng)過不同跳數(shù)中繼的QPSK信號總的增益相同</p><p>  4.1.2符號說明 </p><p>  (1) ray為瑞利衰落信道</p><p><

19、;b>  (2)n為高斯噪聲</b></p><p>  (3) r為信號經(jīng)過瑞利衰落信道后的接受信號</p><p> ?。?)y為接收端對接收信號還原處理后的信號</p><p>  (5)snr為信噪比</p><p> ?。?)xigma為噪聲方差</p><p>  (7)ber為誤碼率&l

20、t;/p><p> ?。?)li為單位虛數(shù)i</p><p> ?。?)s為調(diào)制信號的相位</p><p>  (10)G為經(jīng)過中繼轉(zhuǎn)發(fā)是信號的增益</p><p>  4.2仿真過程的實現(xiàn)</p><p> ?。?)調(diào)制信號的產(chǎn)生(以QPSK為例)</p><p>  產(chǎn)生兩個(0,1)的隨機數(shù),

21、根據(jù)兩個數(shù)的范圍,規(guī)定發(fā)送的兩位原碼的值及其相位</p><p>  ss1=rand(1,2);</p><p>  if ((ss1(1,1)>0.5)&&(ss1(1,2)>0.5))</p><p>  s1(1,1)=1;</p><p>  s1(1,2)=1;</p><p>

22、  s=exp(1i*(pi/4));</p><p>  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)>0.5))</p><p>  s1(1,1)=0;</p><p>  s1(1,2)=1;</p><p>  s=exp(1i*pi*(3/4));</p><p

23、>  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)<0.5))</p><p>  s1(1,1)=0;</p><p>  s1(1,2)=0;</p><p>  s=exp(1i*pi*(5/4)); </p><p><b>  else </b></

24、p><p>  s1(1,1)=1;</p><p>  s1(1,2)=0;</p><p>  s=exp(1i*pi*(7/4));</p><p><b> ?。?)信道的產(chǎn)生</b></p><p>  ray=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); &

25、lt;/p><p>  (3)高斯噪聲的產(chǎn)生</p><p>  n=sqrt(1/2)*(randn(1,1)+1i*randn(1,1));</p><p><b> ?。?)接收信號</b></p><p>  r=s*(snr(L)*xigma)*ray+n;</p><p>  (5)接收信

26、號的還原</p><p><b>  y=r/ray;</b></p><p> ?。?)接受判決的實現(xiàn)</p><p>  根據(jù)接受信號最終落在矢量圖中的位置判斷發(fā)送的QPSK信號的值,程序如下:</p><p>  if (real(y)>0)</p><p><b>  y1

27、=1;</b></p><p><b>  else</b></p><p><b>  y1=-1;</b></p><p><b>  end</b></p><p>  if (imag(y)>0)</p><p><b&g

28、t;  y2=1;</b></p><p><b>  else </b></p><p><b>  y2=-1;</b></p><p><b>  end</b></p><p>  if ((y1==1)&&(y2==1))</p>

29、;<p>  rs=[1,1];sre=exp(1i*(pi/4));</p><p>  elseif ((y1==-1)&&(y2==1))</p><p>  rs=[0,1];sre=exp(1i*pi*(3/4));</p><p>  elseif ((y1==-1)&&(y2==-1))</p>

30、<p>  rs=[0,0]; sre=exp(1i*pi*(5/4));</p><p><b>  else </b></p><p>  rs=[1,0]; sre=exp(1i*pi*(7/4));</p><p> ?。?)信號經(jīng)過中繼轉(zhuǎn)發(fā)過程的實現(xiàn)</p><p>  r=s*(snr(L)*x

31、igma)*ray+n; </p><p>  y1=r/ray; </p><p>  ray1=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  n1=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  r1=y1*ray1

32、*G1+n1; </p><p><b>  5仿真結(jié)果</b></p><p>  仿真結(jié)果如下圖所示:</p><p>  圖5-1為8PSK,QPSK,BPSK信號加高斯白噪聲經(jīng)過相同信道,其誤碼率與信噪比的關(guān)系曲線</p><p>  圖5-2為QPSK信號分別經(jīng)過一跳中繼,兩跳中繼及三跳中繼后信噪比與誤碼

33、率的關(guān)系曲線</p><p>  圖5-1:M進制相位調(diào)制信噪比—誤碼率曲線圖</p><p>  圖5-2:對比加不同跳數(shù)中繼時信噪比與誤碼率的關(guān)系</p><p><b>  6仿真模型分析</b></p><p><b>  6.1模型結(jié)果分析</b></p><p>

34、  圖5-1所示為M進制相位調(diào)制信號誤碼率—信噪比的關(guān)系曲線</p><p>  由圖可知:誤碼率隨著信噪比的增大而減小,即要想減小信號在傳輸過程中的失真度必須增加信號的發(fā)射功率以減小信號的誤碼率;對于BPSK、QPSK及8PSK相位調(diào)制,在相同信噪比的情況下BPSK的誤碼率最小QPSK次之,8PSK的誤碼率最大;同時,要想實現(xiàn)想同的誤碼率,8PSK調(diào)制時必須提供更大的信號功率,QPSK次之,BPSK所需的信號功

35、率最小。然而對于MPSK系統(tǒng),M的值越大,其功率譜的主瓣越大頻帶利用率越高,發(fā)送數(shù)據(jù)的速率越快。因此為提供較高的服務(wù)質(zhì)量,在實際的運用中需均衡考慮信號的誤碼率及發(fā)送速率,因而MPSK系統(tǒng)一般很少取較大的M值,一般取M 16,并且以M=4的QPSK使用最多,其次是8PSK,16PSK及BPSK都較少使用。</p><p>  圖5-2所示為在信號的總增益相同的情況下對比QPSK信號加不同跳數(shù)中繼時信噪比與誤碼率的關(guān)

36、系的曲線圖。由圖可知在相同信噪比的情況下,信號所經(jīng)過的中繼跳數(shù)越多其誤碼率就越大,原因是所經(jīng)過的中繼跳數(shù)增加后所加入噪聲也怎加了,同時每經(jīng)過一個信道時也會增加數(shù)據(jù)傳輸?shù)恼`碼率。</p><p>  6.2模型優(yōu)缺點分析及改進方案</p><p>  6.2.1優(yōu)缺點分析</p><p>  本文對MPSK信號經(jīng)高斯信道傳輸?shù)慕邮苷`碼率進行蒙特卡羅仿真,仿真過程取了1

37、000000個點,得到了較為準(zhǔn)確的信噪比—誤碼率的關(guān)系曲線;同時本文還考慮了加入中繼時的情況,對比了加不同跳數(shù)中繼對信噪比—誤碼率曲線的影響獲得了比較正確的結(jié)論;當(dāng)然本模型也有一些不足之處,例如通信系統(tǒng)比較簡單沒有加入編碼和解碼的過程,算法的設(shè)計也還不是特別簡化,所獲得的信噪比與誤碼率的關(guān)系曲線也沒有和實際的曲線進行對比,數(shù)據(jù)的說服力還不夠強。</p><p><b>  6.2.2改進發(fā)案</b

38、></p><p>  由于時間有限,我們現(xiàn)在所學(xué)的知識有限,整個仿真模型存在大量的不足之處,我在此提出以下改進方案:</p><p>  本通信仿真模型還可以加入編碼解碼的過程</p><p>  加中繼時的模型還可以討論一下協(xié)作中繼時的情況</p><p>  本模型還可以用Simulink模塊來進行仿真</p>&l

39、t;p>  可以把仿真所獲得的的曲線與實際情況下的信噪比—誤碼率的曲線拿來對比</p><p><b>  7小結(jié)體會</b></p><p>  歷時兩個月的軟件課程設(shè)計讓我們受益良多,從開始不懂matlab做起課程設(shè)計來一頭霧水到后期可以和老師討論自己想法,這中間都離不開老師的悉心教誨。</p><p>  這次軟件課程設(shè)計的開展,其

40、目的在于讓我們了解通信過程是如何實現(xiàn)的,以及讓我們深入了解matlab是如何作為仿真軟件仿真通信過程并結(jié)合相關(guān)的實例讓我們在原有了解的基礎(chǔ)上設(shè)計完成老師布置的課題。</p><p>  在進行軟件課程設(shè)計的過程中我們遇到了一系列的問題,首先是對于matlab軟件的不熟悉,好在在大家的摸索和交流以及和老師的交流中慢慢熟悉。其次,由于在本專業(yè)的推薦課表中未導(dǎo)入通信原理等相關(guān)課程,使得我們對于調(diào)制解調(diào),信道,編碼,接受

41、判別等方面并不了解,大家一起查閱相關(guān)書籍,積極交流,積極主動的詢問老師,自己嘗試編碼,錯誤共享,成果共享,在老師的幫助下將上述模糊的概念一一攻克,并在錯誤中學(xué)會了進步。</p><p>  在老師未布置課程題目時,老師給了我們積極思考的空間,通過自己在個人電腦上的編碼實踐和結(jié)合借閱的有關(guān)書籍,老師傳給我們的實例和學(xué)習(xí)資料,自己摸索,在上課時間和老師溝通,進行每人為時3分鐘的問題陳述,自己進程的陳述,結(jié)合陳述,老師

42、給予相應(yīng)的解答和指導(dǎo)。大家都表示在這個自主學(xué)習(xí)的過程中受益匪淺。</p><p>  老師布置課程設(shè)計題目后,大家結(jié)合開始做的準(zhǔn)備工作一步一個腳印的慢慢完善我們的程序和功能,在學(xué)會如何對多進制調(diào)制進行編碼的基礎(chǔ)上進行課程題目相關(guān)的仿真,并針對matlab仿真的結(jié)果進行交流,在原本點對點的單信道通信的基礎(chǔ)上加了中繼信道,實現(xiàn)了對于不同跳數(shù)的仿真,并進行了對比。同時由于不同的調(diào)制方式對誤碼率也有一定的影響,我們在基于

43、多進制調(diào)制方式仿真上做了一個單信道的8PSK,QPSK,BPSK不同調(diào)制方式對接受端誤碼率的影響的仿真,并對結(jié)果進行了對比得出了相同信噪比時BPSK的誤碼率最低,QPSK其次,8PSK的誤碼率最高的仿真結(jié)果。</p><p>  在本次課程設(shè)計實訓(xùn)中,我們認識到了實訓(xùn)遠比理論學(xué)習(xí)更有樂趣,仿真的意義就在于無需花費過大的成本就可以在計算機上通過matlab等仿真軟件模擬通信的過程,對最終的結(jié)果有一個大致的認識和了解

44、,并與理論結(jié)果進行比對,找出產(chǎn)生差異的原因,同時節(jié)省了移動運營商的成本。</p><p>  而對于這歷時兩個月的自我學(xué)習(xí)和共同學(xué)習(xí),我們意識到學(xué)習(xí)有時候不是一個人的過程,它可以是一群人共同進步的過程。在交流和溝通中共同學(xué)習(xí),共同協(xié)作,共同完成課題。在老師的幫助、在理解的基礎(chǔ)上、在實踐和理論相結(jié)合的基礎(chǔ)上學(xué)習(xí),無疑是進步和積極的。</p><p>  總之,在這次軟件課程設(shè)計的學(xué)習(xí)過程中無

45、論是學(xué)習(xí)方法還是軟件仿真方法,我們都獲益匪淺,同時也感謝在課程設(shè)計過程中智慧老師不遺余力的教誨和給予我們的幫助。過程是艱辛的,但成果是美麗的。</p><p><b>  參考文獻</b></p><p>  [1] 王秉鈞,馮玉珉 通信原理 清華大學(xué)出版社</p><p>  [2] 樊昌信.通信原理.國防工業(yè)出版社</p>&

46、lt;p>  [3] 黃載祿,殷蔚華.通信原理.科學(xué)出版社</p><p>  [4] 李宗豪.基本通信原理.北京郵電大學(xué)出版社</p><p>  [5] 甘勤濤. MATLAB 2012數(shù)學(xué)計算與工程分析從入門到精通.機械工業(yè)出版社</p><p>  [6] 求是科技編著. MATLAB 7.0從入門到精通.人民郵電出版社 </p><

47、;p>  [7] (美) William J. Palm III著;黃開枝譯.MAtlab基礎(chǔ)教程.清華大學(xué)出版社</p><p><b>  附錄</b></p><p><b>  部分程序代碼:</b></p><p>  1 8PSK信噪比—誤碼率作圖代碼</p><p>  clea

48、r all;</p><p><b>  clf;</b></p><p>  snrindb=0:1:20;</p><p>  snr=10.^(0.1*snrindb); </p><p>  xigma=1; </p><p>  count=zeros(

49、1,length(snrindb));</p><p>  ber8PSK=zeros(1,length(snrindb));</p><p>  for L=1:length(snrindb)</p><p>  for num=1:1000000</p><p>  ss1=rand(1,3);</p><p> 

50、 if ((ss1(1,1)>0.5)&&(ss1(1,2)>0.5)&&(ss1(1,3)>0.5))</p><p>  s1=[1,1,1];</p><p>  s=exp(1i*(pi/8));</p><p>  elseif ((ss1(1,1)>0.5)&&(ss1(1,2)&g

51、t;0.5)&&(ss1(1,3)<0.5))</p><p>  s1=[1,1,0];</p><p>  s=exp(1i*pi*(3/8));</p><p>  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)>0.5)&&(ss1(1,3)<0.5))</p&

52、gt;<p>  s1=[0,1,0];</p><p>  s=exp(1i*pi*(5/8)); </p><p>  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)>0.5)&&(ss1(1,3)>0.5))</p><p>  s1=[0,1,1];</p>&

53、lt;p>  s=exp(1i*pi*(7/8));</p><p>  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)<0.5)&&(ss1(1,3)>0.5))</p><p>  s1=[0,0,1];</p><p>  s=exp(1i*pi*(9/8));</p>

54、<p>  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)<0.5)&&(ss1(1,3)<0.5))</p><p>  s1=[0,0,0];</p><p>  s=exp(1i*pi*(11/8));</p><p>  elseif ((ss1(1,1)>0.5)&

55、;&(ss1(1,2)<0.5)&&(ss1(1,3)<0.5))</p><p>  s1=[1,0,0];</p><p>  s=exp(1i*pi*(13/8));</p><p>  elseif ((ss1(1,1)>0.5)&&(ss1(1,2)<0.5)&&(ss1(1,

56、3)>0.5))</p><p>  s1=[1,0,1];</p><p>  s=exp(1i*pi*(15/8));</p><p><b>  end </b></p><p>  ray=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p&g

57、t;  n=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  r=s*(snr(L)*xigma)*ray+n; </p><p><b>  y=r/ray; </b></p><p>  a=real(y);</p><p>  b=imag(y);&l

58、t;/p><p>  c=atan(b/a);</p><p>  if (a>0&&b>0&&c>=0&&c<(pi/4))</p><p>  rs=[1,1,1];</p><p>  elseif(a>0&&b>0&&c&g

59、t;=(pi/4)&&c<(pi/2))</p><p>  rs=[1,1,0];</p><p>  elseif(a<0&&b>0&&c>=(-pi/2)&&c<(-pi/4))</p><p>  rs=[0,1,0];</p><p>  

60、elseif(a<0&&b>0&&c>=(-pi/4)&&c<0)</p><p>  rs=[0,1,1];</p><p>  elseif(a<0&&b<0&&c>=0&&c<(pi/4))</p><p>  rs=

61、[0,0,1];</p><p>  elseif(a<0&&b<0&&c>=(pi/4)&&c<(pi/2))</p><p>  rs=[0,0,0];</p><p>  elseif(a>0&&b<0&&c>=(-pi/2)&&a

62、mp;c<(-pi/4))</p><p>  rs=[1,0,0];</p><p>  elseif (a>0&&b<0&&c>=(-pi/4)&&c<0)</p><p>  rs=[1,0,1];</p><p><b>  end</b&g

63、t;</p><p>  if (rs(1,1)~=s1(1,1)||rs(1,2)~=s1(1,2)||rs(1,3)~=s1(1,3))</p><p>  count(L)=count(L)+1; </p><p><b>  end</b></p><p><b>  

64、end</b></p><p>  ber8PSK(L)=count(L)/1000000; </p><p><b>  end</b></p><p>  semilogy(snrindb,ber8PSK,'r>-');</p><p>  gtext('8PSK&

65、#39;)</p><p><b>  hold on;</b></p><p>  2 QPSK信噪比—誤碼率作圖代碼</p><p>  snrindb=0:1:20;</p><p>  snr=10.^(0.1*snrindb); </p><p>  xigma=1;

66、 </p><p>  count=zeros(1,length(snrindb));</p><p>  berQPSK=zeros(1,length(snrindb));</p><p>  for L=1:length(snrindb)</p><p>  for num=1:1000000</p><

67、p>  ss1=rand(1,2);</p><p>  if ((ss1(1,1)>0.5)&&(ss1(1,2)>0.5))</p><p>  s1(1,1)=1;</p><p>  s1(1,2)=1;</p><p>  s=exp(1i*(pi/4));</p><p>

68、  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)>0.5))</p><p>  s1(1,1)=0;</p><p>  s1(1,2)=1;</p><p>  s=exp(1i*pi*(3/4));</p><p>  elseif ((ss1(1,1)<0.5)&&

69、;(ss1(1,2)<0.5))</p><p>  s1(1,1)=0;</p><p>  s1(1,2)=0;</p><p>  s=exp(1i*pi*(5/4)); </p><p><b>  else </b></p><p>  s1(1,1)=1;</p>

70、<p>  s1(1,2)=0;</p><p>  s=exp(1i*pi*(7/4));</p><p><b>  end </b></p><p>  ray=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  n=sqrt(1/2)*(randn(1

71、,1)+1i*randn(1,1)); </p><p>  r=s*(snr(L)*xigma)*ray+n; </p><p><b>  y=r/ray; </b></p><p>  if (real(y)>0)</p><p><b>  y1=1;</b>

72、;</p><p><b>  else</b></p><p><b>  y1=-1;</b></p><p><b>  end</b></p><p>  if (imag(y)>0)</p><p><b>  y2=1;<

73、;/b></p><p><b>  else </b></p><p><b>  y2=-1;</b></p><p><b>  end</b></p><p>  if ((y1==1)&&(y2==1))</p><p>

74、  rs=[1,1];sre=exp(1i*(pi/4));</p><p>  elseif ((y1==-1)&&(y2==1))</p><p>  rs=[0,1];sre=exp(1i*pi*(3/4));</p><p>  elseif ((y1==-1)&&(y2==-1))</p><p> 

75、 rs=[0,0]; sre=exp(1i*pi*(5/4));</p><p><b>  else </b></p><p>  rs=[1,0]; sre=exp(1i*pi*(7/4)); </p><p><b>  end</b></p><p>  if ((rs(1,1

76、)~=s1(1,1))||rs(1,2)~=s1(1,2))</p><p>  count(L)=count(L)+1; </p><p><b>  end</b></p><p><b>  end</b></p><p>  berQPSK(L)=count(L)/10

77、00000; </p><p><b>  end</b></p><p>  semilogy(snrindb,berQPSK,'r>-');</p><p>  gtext('QPSK')</p><p><b>  hold on;</b><

78、;/p><p>  3 BPSK信噪比—誤碼率作圖程序</p><p>  snrindb=0:1:20;</p><p>  snr=10.^(0.1*snrindb); </p><p>  xigma=1; </p><p>  count=zeros(1,length(snrind

79、b));</p><p>  ber=zeros(1,length(snrindb));</p><p>  for L=1:length(snrindb)</p><p>  for num=1:1000000</p><p><b>  ss1=rand;</b></p><p>  if s

80、s1>0.5</p><p><b>  s1=1;</b></p><p>  s=exp(1i*0); </p><p>  elseif ss1<0.5</p><p><b>  s1=0;</b></p><p>  s=exp(1i*pi);<

81、/p><p><b>  end </b></p><p>  ray=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  n=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  r=s*(snr(L)*xigma)*

82、ray+n; </p><p><b>  y=r/ray; </b></p><p>  if (real(y)>0)</p><p><b>  rs=1;</b></p><p><b>  else</b></p><p>&

83、lt;b>  rs=0;</b></p><p><b>  end</b></p><p>  if (rs~=s1)</p><p>  count(L)=count(L)+1; </p><p><b>  end</b></p><

84、;p><b>  end</b></p><p>  ber(L)=count(L)/1000000; </p><p><b>  end</b></p><p>  semilogy(snrindb,ber,'r>-');</p><p>  gtext(&

85、#39;BPSK')</p><p><b>  hold on;</b></p><p>  4 QPSK加三跳中繼作圖程序</p><p>  clear all;</p><p><b>  clf;</b></p><p>  snrindb=0:1:10;

86、</p><p>  snr=10.^(0.1*snrindb); </p><p>  xigma=1; </p><p>  count=zeros(length(snrindb));</p><p>  ber=zeros(length(snrindb));</p><p>  G1=

87、2; </p><p><b>  G2=3;</b></p><p><b>  G3=6;</b></p><p>  for L=1:length(snr)</p><p>  for num=1:100000 </p><p>  s

88、s1=rand(1,2);</p><p>  if ((ss1(1,1)>0.5)&&(ss1(1,2)>0.5))</p><p>  s1(1,1)=1;</p><p>  s1(1,2)=1;</p><p>  s=exp(1i*(pi/4));</p><p>  elseif

89、 ((ss1(1,1)<0.5)&&(ss1(1,2)>0.5))</p><p>  s1(1,1)=0;</p><p>  s1(1,2)=1;</p><p>  s=exp(1i*pi*(3/4));</p><p>  elseif ((ss1(1,1)<0.5)&&(ss1(1,

90、2)<0.5))</p><p>  s1(1,1)=0;</p><p>  s1(1,2)=0;</p><p>  s=exp(1i*pi*(5/4)); </p><p><b>  else </b></p><p>  s1(1,1)=1;</p><p>

91、;  s1(1,2)=0;</p><p>  s=exp(1i*pi*(7/4));</p><p><b>  end </b></p><p>  ray=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  n=sqrt(1/2)*(randn(1,1)+1i*

92、randn(1,1)); </p><p>  r=s*(snr(L)*xigma)*ray+n; </p><p>  y1=r/ray; </p><p>  ray1=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  n1=sqrt(1/2)*(randn(1,1)+

93、1i*randn(1,1)); </p><p>  r1=y1*ray1*G1+n1; </p><p>  y2=r1/ray1; </p><p>  ray2=sqrt(1/2)*(randn(1,1)+1i*randn(1,1));</p><p>  n2=sqrt(1/2)*(randn(1,1)+1i*ra

94、ndn(1,1)); </p><p>  r2=y2*ray2*G2+n2;</p><p>  y3=r2/ray2;</p><p>  ray3=sqrt(1/2)*(randn(1,1)+1i*randn(1,1));</p><p>  n3=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); <

95、/p><p>  r3=y3*ray3*G3+n3;</p><p>  y=r3/ray3;</p><p>  if (real(y)>0)</p><p><b>  y1=1;</b></p><p><b>  else</b></p><p&

96、gt;<b>  y1=-1;</b></p><p><b>  end</b></p><p>  if (imag(y)>0)</p><p><b>  y2=1;</b></p><p><b>  else </b></p>

97、<p><b>  y2=-1;</b></p><p><b>  end</b></p><p>  if ((y1==1)&&(y2==1))</p><p>  rs=[1,1];sre=exp(1i*(pi/4));</p><p>  elseif ((y1=

98、=-1)&&(y2==1))</p><p>  rs=[0,1];sre=exp(1i*pi*(3/4));</p><p>  elseif ((y1==-1)&&(y2==-1))</p><p>  rs=[0,0]; sre=exp(1i*pi*(5/4));</p><p><b>  e

99、lse </b></p><p>  rs=[1,0]; sre=exp(1i*pi*(7/4)); </p><p><b>  end</b></p><p>  if ((rs(1,1)~=s1(1,1))||rs(1,2)~=s1(1,2))</p><p>  count(L)=count(

100、L)+1; </p><p><b>  end</b></p><p><b>  end</b></p><p>  ber(L)=count(L)/100000; </p><p><b>  end</b></p><p&

101、gt;  semilogy(snrindb,ber);</p><p><b>  hold on;</b></p><p>  5 QPSK信號加兩跳中繼作圖程序</p><p>  snrindb=0:1:10;</p><p>  snr=10.^(0.1*snrindb); </p><p

102、>  xigma=1; </p><p>  count=zeros(length(snrindb));</p><p>  ber=zeros(length(snrindb));</p><p>  G1=3; </p><p><b>  G2=12;<

103、/b></p><p>  for L=1:length(snr)</p><p>  for num=1:100000 </p><p>  ss1=rand(1,2);</p><p>  if ((ss1(1,1)>0.5)&&(ss1(1,2)>0.5))</p><p> 

104、 s1(1,1)=1;</p><p>  s1(1,2)=1;</p><p>  s=exp(1i*(pi/4));</p><p>  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)>0.5))</p><p>  s1(1,1)=0;</p><p>  s1(1

105、,2)=1;</p><p>  s=exp(1i*pi*(3/4));</p><p>  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)<0.5))</p><p>  s1(1,1)=0;</p><p>  s1(1,2)=0;</p><p>  s=exp(1

106、i*pi*(5/4)); </p><p><b>  else </b></p><p>  s1(1,1)=1;</p><p>  s1(1,2)=0;</p><p>  s=exp(1i*pi*(7/4));</p><p><b>  end </b></

107、p><p>  ray=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  n=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  r=s*(snr(L)*xigma)*ray+n; </p><p>  y1=r/ray;

108、 </p><p>  ray1=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  n1=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  r1=y1*ray1*G1+n1; </p><p>  y2=r1/ray1;

109、 </p><p>  ray2=sqrt(1/2)*(randn(1,1)+1i*randn(1,1));</p><p>  n2=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  r2=y2*ray2*G2+n2;</p><p>  y=r2/ray2;</p>&

110、lt;p>  if (real(y)>0)</p><p><b>  y1=1;</b></p><p><b>  else</b></p><p><b>  y1=-1;</b></p><p><b>  end</b></p&

111、gt;<p>  if (imag(y)>0)</p><p><b>  y2=1;</b></p><p><b>  else </b></p><p><b>  y2=-1;</b></p><p><b>  end</b>

112、</p><p>  if ((y1==1)&&(y2==1))</p><p>  rs=[1,1];sre=exp(1i*(pi/4));</p><p>  elseif ((y1==-1)&&(y2==1))</p><p>  rs=[0,1];sre=exp(1i*pi*(3/4));</p&

113、gt;<p>  elseif ((y1==-1)&&(y2==-1))</p><p>  rs=[0,0]; sre=exp(1i*pi*(5/4));</p><p><b>  else </b></p><p>  rs=[1,0]; sre=exp(1i*pi*(7/4)); </p>

114、;<p><b>  end</b></p><p>  if ((rs(1,1)~=s1(1,1))||rs(1,2)~=s1(1,2))</p><p>  count(L)=count(L)+1; %ͳ¼Æ´íÎóbitÊý<

115、;/p><p><b>  end</b></p><p><b>  end</b></p><p>  ber(L)=count(L)/100000; </p><p><b>  end</b></p><p>  semilogy(snri

116、ndb,ber);</p><p><b>  hold on;</b></p><p>  6 QPSK信號加一跳中繼作圖程序</p><p>  snrindb=0:1:10;</p><p>  snr=10.^(0.1*snrindb); </p><p>  xigma=1;

117、 </p><p>  count=zeros(length(snrindb));</p><p>  ber=zeros(length(snrindb));</p><p>  G=36; </p><p>  for L=1:length(snr)</p><

118、p>  for num=1:100000 </p><p>  ss1=rand(1,2);</p><p>  if ((ss1(1,1)>0.5)&&(ss1(1,2)>0.5))</p><p>  s1(1,1)=1;</p><p>  s1(1,2)=1;</p><p>

119、;  s=exp(1i*(pi/4));</p><p>  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)>0.5))</p><p>  s1(1,1)=0;</p><p>  s1(1,2)=1;</p><p>  s=exp(1i*pi*(3/4));</p><

120、p>  elseif ((ss1(1,1)<0.5)&&(ss1(1,2)<0.5))</p><p>  s1(1,1)=0;</p><p>  s1(1,2)=0;</p><p>  s=exp(1i*pi*(5/4)); </p><p><b>  else </b><

121、/p><p>  s1(1,1)=1;</p><p>  s1(1,2)=0;</p><p>  s=exp(1i*pi*(7/4));</p><p><b>  end </b></p><p>  ray=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); &

122、lt;/p><p>  n=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  r=s*(snr(L)*xigma)*ray+n; </p><p>  y1=r/ray; </p><p>  ray1=sqrt(1/2)*(randn(1,1)+1i*ran

123、dn(1,1)); </p><p>  n1=sqrt(1/2)*(randn(1,1)+1i*randn(1,1)); </p><p>  r1=y1*ray1*G+n1; </p><p>  y=r1/ray1; </p><p>  if (real(y)>0)</p>

124、<p><b>  y1=1;</b></p><p><b>  else</b></p><p><b>  y1=-1;</b></p><p><b>  end</b></p><p>  if (imag(y)>0)</p

125、><p><b>  y2=1;</b></p><p><b>  else </b></p><p><b>  y2=-1;</b></p><p><b>  end</b></p><p>  if ((y1==1)&

126、&(y2==1))</p><p>  rs=[1,1];sre=exp(1i*(pi/4));</p><p>  elseif ((y1==-1)&&(y2==1))</p><p>  rs=[0,1];sre=exp(1i*pi*(3/4));</p><p>  elseif ((y1==-1)&&a

127、mp;(y2==-1))</p><p>  rs=[0,0]; sre=exp(1i*pi*(5/4));</p><p><b>  else </b></p><p>  rs=[1,0]; sre=exp(1i*pi*(7/4)); </p><p><b>  end</b><

128、;/p><p>  if ((rs(1,1)~=s1(1,1))||rs(1,2)~=s1(1,2))</p><p>  count(L)=count(L)+1; </p><p><b>  end</b></p><p><b>  end</b></p>&

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論