基于matlab的MIMO通信系統_第1頁
基于matlab的MIMO通信系統_第2頁
基于matlab的MIMO通信系統_第3頁
基于matlab的MIMO通信系統_第4頁
基于matlab的MIMO通信系統_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、北京郵電大學實驗報告基于Matlab的MIMO通信系統仿真 目錄一、概述31.1課程設計目標:31.2數字通信系統概述4二、基本原理4三、仿真設計83.1流程圖93.2主要模塊103.3主要參數13四、程序塊設計134.1結構性和關鍵語句134.2狀態檢驗174.3性能測試19五、誤碼性能19六、仿真結果與分析23七、重點研究的問題25八、結論27九、參考文獻28一、 概述1.1課程設計目標:(1)了解移動通信關鍵技術(2)了解數字通信系統仿真流程(3)學會用Matlab實現基本的信道編譯碼、調制解調等通信模塊(4)學習并實現MIMO空時處理技術(5)學習和掌握性能分析的思路和方法。1.2數字

2、通信系統概述信道中傳輸的是數字信號的通信方式稱為數字通信,它包括將基帶數字信號直接送往信道傳輸的數字基帶傳輸和經載波調制后在送往信道傳輸的數字載波傳輸。對應的通信系統稱為數字通信系統。具體的通信流程如上圖所示。對于本次實驗中需要完成的MIMO通信系統,流程相應為:產生信源,而后利用卷積碼進行信道編碼,調制方式使用QPSK調制,再將其通過雙天線傳輸后通過白高斯噪聲信道,傳播后利用ML進行判決,譯碼方式采用維特比譯碼,最終得到傳輸后的數據。二、基本原理2.1MIMO概述及原理MIMO 表示多輸入多輸出。在第四代移動通信技術標準中被廣泛采用,例如IEEE 802.16e (Wimax),長期演進(L

3、TE)。在新一代無線局域網(WLAN)標準中,通常用于 IEEE 802.11n,但也可以用于其他 802.11 技術。MIMO 有時被稱作空間分集,因為它使用多空間通道傳送和接收數據。只有站點(移動設備)或接入點(AP)支持 MIMO 時才能部署 MIMO。MIMO 技術的應用,使空間成為一種可以用于提高性能的資源,并能夠增加無線系統的覆蓋范圍。MIMO 允許多個天線同時發送和接收多個空間流,并能夠區分發往或來自不同空間方位的信號。多天線系統的應用,使得多達 min(Nt,Nr)的并行數據流可以同時傳送。同時,在發送端或接收端采用多天線,可以顯著克服信道的衰落,降低誤碼率。利用MIMO技術可

4、以提高信道的容量,同時也可以提高信道的可靠性,降低誤碼率。前者是利用MIMO信道提供的空間復用增益,后者是利用MIMO信道提供的空間分集增益。實現空間復用增益的算法主要有貝爾實驗室的BLAST算法、ZF算法、MMSE算法、ML算法。目前MIMO技術領域另一個研究熱點就是空時編碼。常見的空時碼有空時塊碼、空時格碼。空時碼的主要思想是利用空間和時間上的編碼實現一定的空間分集和時間分集,從而降低信道誤碼率。2.2MIMO信道模型nT發送天線,nR接收天線信道矩陣:接收信號:即接收信號為信道衰落系數發射信號+接收端噪聲MIMO模型中有一個空時編碼器,同時含有有多根天線,其系統模型和上述MIMO系統理論

5、一致。一般來說,移動終端所支持的天線數目總是比基站端要少所以發送天線的數目要大于接收天線。2.3分集與復用根據各根天線上發送信息的差別,MIMO可以分為發射分集技術和空間復用技術。發射分集:在不同的天線上發射包含同樣信息的信號(信號的具體形式不一定完全相同),達到空間分集的效果,起到抗衰落的作用典型代表:空時塊碼(STBC)空間復用:在不同的天線上發射不同的信息,獲得空間復用增益,從而大大提高系統的容量和頻譜利用率典型代表:分層空時碼。2.3.1空時塊碼(STBC)Alamouti提出了采用兩個發射天線和一個接收天線的系統可以得到采用一個發射天線兩個接收天線系統同樣的分集增益。將每k個輸入字符

6、映射為一個 矩陣,矩陣的每行對應在p個不同的時間間隔里不同天線上所發送的符號。2*2舉例:單天線接收,用 表示第1,2個發射符號間隔接收天線的接收信號:采用最優極大似然譯碼可得:為了要滿足各根天線上發送數據的正交,它的編碼矩陣需要滿足如下條件多天線接收,發送端的編碼與傳輸方案和單接收天線系統一樣。只是在接收端的處理變得復雜,需要對不同接收天線上接收到的信號進行合并處理。多接收天線下的判決度量可以通過把各副接收天線上的接受信號得到的判決度量線性合并得到。判決式如下:2.3.2分層空時碼(BLAST)空時編碼利用多天線組成的天線陣同時發送和接收。在發送端,將數據流分離成多個支流,對每個支流進行空時

7、處理和信號設計(空時編碼),然后通過不同天線同時發送;在接收端,利用天線陣接收,并經過空時處理和空時碼解碼,還原成發送數據流。串并變換信道編碼器1信道編碼器2空時編碼調制器1調制器2天線1天線n圖1 分層空時碼的發射端系統模型在接收端,用多個天線分集接收,信道參數通過信道估計獲得,由線性判決反饋均衡器實現分層判決反饋干擾抵消,然后進行分層空時譯碼,單個信道譯碼器完成信道譯碼,分層空時碼接收端系統框圖如下圖所示:信道估計線性判決反饋均衡器空時譯碼信道譯碼天線1天線2三、仿真設計開始3.1流程圖初始化各項參數產生信源信道編碼采用卷積碼進行QPSK調制STBC雙天線發送通過高斯白噪聲信道單/多天線接

8、收ML準則進行判決維特比譯碼進行解調結束3.2主要模塊3.2.1信源產生要求:產生獨立等概的二進制信源實現:matlab自帶函數 randint()一個信源產生N/2個0,1隨機等概數據S1=randint(1,N/2);S2=randint(1,N/2);3.2.2信道編碼方式:卷積碼()卷積糾錯編碼函數convenc()格式:code=convenc(msg, trellis)功能:利用poly2trellis函數定義的格形trellis 結構,對二進制矢量信息msg進行卷積編碼。將卷積編碼多項式轉換成格形(trellis)結構函數poly2trellis()格式:trellis = po

9、ly2trellis(constrainlength, codegenerator)功能:將前向反饋卷積編碼器的多項式轉換成一格形(trellis)結構。Viterbi 算法譯卷積碼函數vitdec()格式:decoded = vitdec(code,trellis,tblen,opmode,dectype)功能:利用Viterbi 算法譯卷積碼。Code為poly2trellis函數或istrellis函數定義的格形trellis結構的卷積碼。參數tblen 取正整數,表示記憶(traceback)深度。參數opmode代表解碼操作模型。3.2.3調制與解調基本要求QPSK:在數字信號的調制

10、方式,QPSK四相移鍵控是目前最常用的一種衛星數字信號調制方式,它具有較高的頻譜利用率、較強的抗干擾性、在電路上實現也較為簡單。QPSK是在M=4時的調相技術,它規定了四種載波相位,分別為45°,135°,225°,315°,調制器輸入的數據是二進制數字序列,為了能和四進制的載波相位配合起來,則需要把二進制數據變換為四進制數據,這就是說需要把二進制數字序列中每兩個比特分成一組,共有四種組合,即00,01,10,11,其中每一組稱為雙比特碼元。每一個雙比特碼元是由兩位二進制信息比特組成,它們分別代表四進制四個符號中的一個符號。QPSK中每次調制可傳輸2個信

11、息比特,這些信息比特是通過載波的四種相位來傳遞的。解調器根據星座圖及接收到的載波信號的相位來判斷發送端發送的信息比特。實現方法:調制:Matlab自帶函數 reshape 以及自定義star()利用星座點調制解調:Matlab自帶函數 reshape 以及ML思想解調,過程中使用min()函數提高要求16QAM:16QAM 是用兩路獨立的正交 4ASK 信號疊加而成,4ASK 是用多電平信號去鍵控載波而得到的信號。它是 2ASK 體制的推廣,和 2ASK 相比,這種體制的優點在于信息傳輸速率高。串/并變換器將速率為Rb的二進制碼元序列分為兩路,速率為Rb/2.2-4電平變換為Rb/2 的二進制

12、碼元序列變成4 個電平信號,4 電平信號與正交載波相乘,完成正交調制,兩路信號疊加后產生 16QAM信號.在兩路速率為Rb/2 的二進制碼元序列中,經 2-4 電平變換器輸出為 4 電平信號,即M=16.經 4 電平正交幅度調制和疊加后,輸出 16 個信號狀態,即 16QAM.實現方法:調制:Matlab自帶函數 reshape 以及star()用星座點進行調制解調:Matlab自帶函數 reshape 以及ML思想解調,過程中使用min()函數3.2.4 空時分組碼發送與接收兩發一收:兩發兩收: (1) (2)實現:Matlab自帶conj()與.*3.2.5AWGN信道加性高斯白噪聲 AW

13、GN(Additive White Gaussian Noise) 是最基本的噪聲與干擾模型。加性噪聲:疊加在信號上的一種噪聲,通常記為n(t),而且無論有無信號,噪聲n(t)都是始終存在的。因此通常稱它為加性噪聲或者加性干擾。白噪聲:噪聲的功率譜密度在所有的頻率上均為一常數,則稱這樣的噪聲為白噪聲。如果白噪聲取值的概率分布服從高斯分布,則稱這樣的噪聲為高斯白噪聲。實現:Matlab自帶函數 randn()3.3主要參數PACKET=10; %數據包個數N=2560*4; %包長SNR_dB=0:2:30; %信噪比范圍(030),圖中橫坐標間隔為2tblen=30; %卷積碼記憶深度,寄存器

14、的35倍最佳,選擇30四、程序塊設計4.1結構性和關鍵語句4.1.1信源產生ppt中建議使用randsrc()函數,但由于randsrc()產生的信源序列是+1和-1的序列,而進行卷積碼編碼時輸入編碼器的序列必須是單極性不歸零序列,所以要將序列中的-1修改為0.于是我采用了randi()函數,直接可以產生隨機且等概的0,1序列。S1=randi(1,N/2); %產生第1組信號,長度為N/2S2=randi(1,N/2); %產生第2組信號,長度為N/24.1.2信道編碼4.1.2.1卷積碼codegen=557 663 711; %8進制表示寄存器狀態trellis=poly2trellis

15、(constlen,codegen); %轉換為格行結構for bag=1:PACKETS1=randi (1,N/2); %產生隨機信號1S2=randi (1,N/2); %產生隨機信號2S=S1 S2;SJ_1=convenc(S1,trellis); %對1進行卷積編碼SJ_2=convenc(S2,trellis); %對2進行卷積編碼根據圖可得,有9個移位寄存器,1個輸入和3個輸出。將編碼器的3個沖激響應寫成二進制序列,最后轉化成八進制,最后得到的結果為557,663,711,為八進制的表示形式。4.1.2.2維特比譯碼直接利用公式vitdec()即可4.1.2.3CRC冗余校驗能

16、被已知g(x)整除即判斷為無錯,否則產生錯誤選取g(x)=1+x5+x12+x16加冗余過程:檢查過程4.1.3調制與解調QPSK星座圖與調制QPSK 解調16QAM星座圖16QAM調制16QAM解調4.1.4瑞利信道4.1.4.1信道中的信號根據瑞利信道衰減參數,加之公式可得兩根天線在兩個符號周期內在信道中的總信號rij(包括高斯噪聲)4.1.4.2誤比特率的計算利用matlab自帶 biterr()函數Biterr()用于比較兩組標量序列中不同位數的個數用個數與總位數相除記得到本次循環中的誤比特率因為根據不同的系統可能需要多次循環,故而要對每次循環中的誤比特率進行求和并與總循環次數相除,等

17、到真正的誤比特率。4.2狀態檢驗每路信源產生N/2=5120個數據經過卷積編碼后生成15360個數據因為有三路輸出即15360=5120*3個數據QPSK星座圖(即坐標數據)16QAM星座圖數據(格雷碼順序排列)經過QPSK后生成每路信號7680個數據因為QPSK將每路信號分成兩路后調制即7680=15360/2個數據經過16QAM后生成每路信號3840個數據因為16QAM將每路信號分成四路后調制即3840=15360/4個數據經過兩發兩收的QPSK信號調制后產生的信號每路7680個數據與發送前相同兩發兩收未編碼情況每路產生2560個數據經過兩發一收的QPSK信號調制后產生的信號每路7680個

18、數據經過兩發兩收的16QAM信號調制后產生的信號每路3840個數據與發送前相同經過兩發一收的16QAM信號調制后產生的信號每路3840個數據解調2發2收QPSK后產生序列15360個經過維特比譯碼后2發2收產生序列5120個已恢復為0,1序列4.3性能測試當采用packet=10時,每包長2460*4共98400個數據耗時:34s較為快捷,可見代碼性能較優此時加入冗余校驗,速度大大下降耗時:845 約是不添加冗余校驗的17倍且由于在此系統中冗余校驗無法實現其功能,即實際糾錯故而認為冗余校驗用處不大增加包長,不加入冗余校驗packet=50, 每包長為依然為2460*4共492000個數據耗時2

19、44且兩幅圖得到的誤比特率圖線無明顯差別,相較之下選擇包長為10進行仿真.五、誤碼性能包長為packet=10時,數據共有98400個此時得到的曲線與packet=50,數據增加5倍即492000個數據時的在QPSK下誤碼率圖線無明顯差異,細微來看,packet=50稍平滑一些5.1Packet=10, tblen=305.2packet=50當包長都取10時,改變卷積碼的記憶深度。查取資料可知,卷積碼的記憶深度為寄存器個數的35倍時性能最佳。本次仿真中因為寄存器個數為8個,所以記憶深度在2440中選取比較合適。于是我選取30作為常態。比較大的記憶深度50和比較小的記憶深度3來畫圖比較,從中可

20、以看出,記憶深度較小(=3)時,未編碼曲線較為光滑記憶深度增大(=30,=50),編碼更為曲線光滑5.3 packet=10 tblen=505.4 packet=10 tblen=3六、仿真結果與分析5.1QPSK情況下誤碼率圖線我選取了三個狀態的誤比特率來進行分析分別是2發2收的卷積編碼BER圖線2發1收的卷積編碼BER圖線以及未進行卷積編碼直接調制的BER圖線。首先我們已知2發2收的性能優于2發1收,觀察圖線,2發2收圖線一直在2發1收圖線之下,即相同信噪比時,2發2收的誤比特率小于2發1收,正確。對于未進行卷積編碼的圖線與進行編碼的圖線相比,在信噪比較小的時候(約小于10db)未編碼信

21、號的誤比特率比2發1收的進行QPSK的信號誤比特率低,因為本次仿真中的誤比特率是經過逐次取平均,擴大范圍繼續平均,數據準確,于是可以得到信噪比小的時候,收發方式對誤比特率影響較大。而當超過10db時,未進行卷積碼的信號誤比特率遠遠高于經過編碼的信號,可見在信噪比大時,編碼對通信系統性能的影響更大。5.2 16QAM誤碼率圖線16QAm部分選取2發2收及2發1收的誤比特率進行分析。可見在信噪比約為15dB以下時,兩條曲線幾乎交疊在一起,誤比特率相當,然而當信噪比大于15dB時,2發2收誤比特率大于2發1收的情況。不符合常理,有待解決。七、重點研究的問題5.1、QPSK與16QAM的調制最開始也考

22、慮過使用matlab直接提供的函數pskmod(),qammod()和相應的解調函數來進行QPSK及16QAM的調制與解調。但因為學習過通信原理,理解了調制的本質實際就是映射,將一維標量映射到QPSK的單位圓及16QAM的星座點上。所以我采用了自己設計調制與解調的函數。其實實施起來也很簡單。首先定義QPSK及16QAM的星座點。我采用了這種在通信原理中因為錯到相鄰符號概率小而性能較好的方式,只用直接定義4個點的位置就完成了。16QAM也很簡單,同樣采用通信原理中較為推薦的格雷碼方式排序星座點,用循環的方式定義星座點,以期獲得較低的誤符號率。之后進行串并變化后,把數據分別變為2行和4行,一列看為

23、一個符號,轉換為10進制數字后+1得到在星座點中的序列位置,就完成了調制。5.2、QPSK與16QAM的解調完成了調制,解調的思想也比較簡單。最基礎的先要應用ML準則,即找到離當前位置最近的星座點,記錄它的位置,再回到回復序列中找到相應序號對應的2或4位數據,再次使用reshape即可恢復為原信號。5.3、瑞利信道中的發送與接收彈性要求中有瑞利信道這一項,所以我查閱了相關資料后了解到,只要定義好銳利信道的參數h0h3,后就能利用書中的公式,將兩根天線上相鄰時刻到達的信號與瑞利信道系數想乘,就可以得到天線的發射信號,再加上隨機噪聲sgma.*2*(randn(1,len)+j*randn(1,l

24、en),便得到了信道中的總函數。譯碼部分比起發送要復雜一些。發送的時候有相應的公式,直接就可以得到,而對于譯碼,則需要理解兩發兩收和一收進行的含義,才能寫出相應的算法。兩發兩收交兩發一收復雜,但在理解了具體實現的基礎上,需要我們用已有的簡單的數學知識(如負數的共軛計算,算式相消技巧),最終將收端得到的信號恢復為原信號。5.4、冗余校驗在本學期的信息處理與編碼與編碼課中,作為課余知識簡單的了解了CRC冗余校驗的實現。即與給定的g(x)相除,整除可認為無差錯。根據一篇論文嘗試編寫了冗余校驗的程序,雖然程序實現并不太難,但卻給程序造成了極大的冗余。在調制前要給兩路信號添加冗余,解調譯碼后要對相應的8

25、個結果解校驗。于是程序的運行時間平均提高了近20倍。在之后的調試代碼過程中一直將冗余校驗注釋掉,以免浪費過多的時間。5.5、誤比特率的計算 比起通信原理中誤比特率的計算需要很長的公式,開根乘方不同,在matlab中只要使用簡單的biterr()函數即可完成。它指示了兩個數組中不同比特數的個數(也可用異或實現),再與序列總長度相比,很方便的就能得出誤比特率。唯一需要注意的是本次仿真中數據量龐大,嵌套著循環,每進行一次發送接收都要計算出本次的誤比特率,再加和求平均,便能得到較為可靠的誤比特率值。八、結論 通過兩個星期的課程設計,我完成了MIMO通信系統的QPSK、16QAM調制,擁有循環冗余校驗,通過瑞利衰減信道,最終成功傳輸解調的整個過程。對于MIMO通信系統,最初我們只是在移動通信課上有所了解,但對于它的整個實現流程實際上是陌生的。在第一節老師的指導課上,除了移動通信課程上涉及的MIMO、通信原理上涉及到了QPSK和16QAM調制方式,甚至于彈性要求中在信息處理與編碼中涉及的冗余校驗以及并未完全理解的瑞利信道的相關內容。一次課程設計幾乎涵蓋

溫馨提示

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

評論

0/150

提交評論