版權(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
提交評論