MIMO-NOMA系統MATLAB仿真實現

??非正交多址接入(NOMA)技術可以打破傳統的正交多址一個基本資源塊由單用戶獨占的限制,通過在時域和頻域的基礎上開辟新的功率域維度,在相同的時頻資源上通過功率復用技術允許同一個時頻資源塊由多個用戶共享,有效提升了用戶接入量。MIMO 技術通過對基站和接收端用戶配置多根天線,在不增加帶寬和發射功率的前提下,利用空間上提供的復用增益與分集增益可以進一步提升系統容量以及頻譜效率。

NOMA系統原理

??NOMA 技術最大的一個突破是在現有的時域和頻域資源的基礎上開辟出一個新的維度——功率域,在相同的時頻資源上通過功率復用技術在同一資源塊上疊加多個用戶,然后接收端根據不同用戶的功率差異,一般采用串行干擾消除技術對信號進行檢測重構。由于NOMA在發送端主動引入干擾,因此為了實現信號的正確檢測,接收端接收機的復雜度會有提升,在一定程度上可以認為NOMA 是一種以犧牲接收機的復雜度為代價換取性能的技術。

NOMA 的基本原理

??NOMA 的核心思想是在發送端主動引入干擾,并在接收端采用多用戶檢測算法對其進行消除,可以使用串行干擾SIC 或并行干擾消除(Parallel Interference Canceller, PIC)技術加以檢測,一般采用串行干擾消除SIC 技術。
??NOMA 可以看成是一種擁有更高維度的多址方式。NOMA 在現有的時域和頻域基礎上引入新的維度——功率域,在相同的時頻資源上通過功率復用技術給不同的用戶分配不同的功率使得同一時頻資源上可以容納多個用戶,疊加的多個用戶采用OFDMA 調制以后進行發送,接收端也是通過不同用戶功率之間的差異性進行多用戶信號的正確接收。可以發現NOMA 主要是依靠功率維度對疊加的多用戶加以區分的,而在時頻資源的劃分上與傳統的OFDMA 類似,因此NOMA 可以看成是OFDMA 的一種演變。為了更好的說明這點,下面結合圖示對NOMA 和OFDMA 的資源分配進行說明和比較。
??下圖1給出了OFDMA 技術的資源分配圖示。其中橫軸和縱軸分別代表頻域和時域,頻域上的一個子載波和時域上的一個OFDM 符號共同組成了OFDMA 的一個最小資源單元。可以看出OFDMA 的每個資源單元均被單用戶獨占,并沒有有效開發功率域。
OFDMA技術的資源分配圖
圖1. OFDMA技術的資源分配圖
??圖2 給出了NOMA 的資源分布情況。與OFDMA 相比,NOMA 最大的不同就是開發了功率域,時域上的一個OFDM 符號和頻域上的一個子載波加上功率域共同構成NOMA 的一個基本資源單元,圖中一個時頻資源塊上疊加的不同顏色的立方體代表NOMA 在該資源單元上疊加的用戶數。也就是說與OFDMA 相比NOMA 在一個時頻資源塊上由單用戶獨占變成了多用戶共享,有效提升了用戶接入量。
NOMA 技術的資源分配圖
圖2. NOMA 技術的資源分配圖

NOMA 中的SIC技術

??同一資源塊上疊加的多個用戶彼此之間會形成干擾,隨著疊加用戶數量的增加這種干擾也會變得更嚴重。因此,為了消除這些干擾,NOMA對接收機的性能提出了更高的要求。NOMA 接收端最常用的一種接收機——SIC 接收機,其原理如下所述。
??NOMA 中的用戶之間的干擾可以看成是一種偽隨機序列,可以利用多用戶檢測算法完成干擾的消除,而SIC 技術即串行干擾抵消技術,就是一種多用戶檢測技術。SIC 接收機在接收前會對用戶的功率或信干比進行降序排序,然后基于該順序對多用戶進行分級檢測,每一級檢測一個用戶的信號并將該用戶對其他用戶的干擾從總的疊加信號中減去,如此循環下去直到檢測出所有用戶的信號。下面結合圖示說明SIC 接收機的工作原理。
SIC接收機原理圖3. SIC 接收機原理
??假設一共有 n n n 個疊加的多用戶,接收端收到的是疊加信號,這個疊加信號包含了疊加用戶之間的干擾和加性高斯白噪聲干擾。首先對用戶的
功率按降序進行排序,假設排序以后的順序為{ u s e r 1 user_1 user1?, u s e r 2 user_2 user2?, u s e r 3 user_3 user3?,… u s e r n user_n usern?},其中 u s e r i user_i useri? 代表第 i i i 個用戶,且第 i i i 個用戶的信號為 S i S_i Si?。功率越大的用戶越容易被接收機識別,由于用戶1 的功率最大,那么接收機首先檢測到用戶1 的信號并對其譯碼重構恢復出 S 1 S_1 S1?,在下一級接收時,其他用戶會把用戶1 的信號 S 1 S_1 S1? 當作干擾從疊加信號中減去,消除用戶1 對其他用戶的干擾,這樣一級一級的重復下去,直到接收完所有用戶信號。
??從SIC 接收機的工作過程可以看出,其對疊加的信號采用的是分級接收,有多少個用戶,接收機就會分成多少級,這可能會帶來一些延遲。并且功率較低的用戶會后進行解碼,在對用戶i 進行解碼接收時,用戶i 會把它前一級的信號Si-1 當作干擾并從疊加信號中減去,因此前一級用戶信號能否正確接收會對后面用戶信號的接收造成影響。

NOMA 的容量分析

??為了簡化問題分析,本小節我們考慮NOMA下行鏈路中一種最簡單的兩用戶NOMA 場景。如下圖4 給出了 NOMA 下行鏈路中一種最基本的兩用戶NOMA 系統模型。在該模型中假設基站位于小區的中心,接收端的兩個用戶都配備單天線,并且采用最常用的SIC 接收機對信號進行解碼重構。為了提高接收機的檢測性能,一般基站在發射信號之前要對小區內的用戶進行配對,使疊加的兩個用戶具有較大的功率差。一般地,距離基站較遠的用戶信道條件往往較差,我們需要給其分配更多的功率以保證該用戶在接收端能夠正確的解碼,這種用戶叫做遠端用戶;相應地距離基站較近的用戶信道條件較好,只需給其分配較小的功率,這種用戶叫做近端用戶。這里我們采用這種遠近配對的方法,其中用戶1 為近端用戶,用戶2 為遠端用戶。
兩用戶NOMA 系統下行鏈路模型
圖4. 兩用戶NOMA 系統下行鏈路模型
??假設用戶1 和用戶2 發送的信號分別為 x 1 x_1 x1? x 2 x_2 x2?,且設信道帶寬為1Hz 那么基站處發送的疊加信號 S S S 可表示為:
x = P 1 x 1 + P 2 x 2 x = \sqrt{P_1} x_1 + \sqrt{P_2} x_2 x=P1? ?x1?+P2? ?x2?
其中, P i ( i = 1 , 2 ) P_i(i=1,2) Pi?(i=1,2)表示基站給第 i i i 個用戶分配的功率。
??基站將疊加的信號發射出去,經過信道到達接收端,則接收端用戶i 收到的疊加信號 y i y_i yi? 可表示為:
y i = h i x + w i y_i = h_i x + w_i yi?=hi?x+wi?
其中, h i h_i hi?表示用戶 i i i與基站之間的信道增益, w i ~ N ( 0 , δ i 2 ) w_i \sim N(0, \delta_i^2) wi?N(0,δi2?) 代表用戶 i i i 在傳輸過程中受到的干擾,一般假設服從均值為 0 0 0,方差為 δ i 2 \delta_i^2 δi2?的高斯分布。
??然后,接收端對接收到的疊加信號進行干擾消除,從而重構出各用戶信號。采用SIC 接收機進行接收,接收機根據信號功率的降序或用戶信干比的降序順序依次進行接收。由于用戶1 為近端用戶,用戶2 為遠端用戶,則用戶2 分配到的功率更大,接收機先對用戶2 的信號進行解碼重構,此時由于用戶1 還未解碼,用戶2 仍然會受到用戶1對其造成的干擾;而在用戶1 進行接收時用戶2 的信號已正確重構,則用戶1 不會受到用戶2 對其造成的干擾。基于上述分析可以得到2 個用戶經過SIC 接收以后的吞吐量:
R 1 N O M A = l o g 2 ( 1 + P 1 N O M A ∣ h 1 ∣ 2 N 0 , 1 ) ( b i t / s / H z ) R_1^{NOMA} = log_2(1+\frac{P_1^{NOMA}|h_1|^2}{N_{0,1}}) (bit/s/Hz) R1NOMA?=log2?(1+N0,1?P1NOMA?h1?2?)(bit/s/Hz)
R 2 N O M A = l o g 2 ( 1 + P 2 N O M A ∣ h 2 ∣ 2 P 1 N O M A ∣ h 1 ∣ 2 + N 0 , 2 ) R_2^{NOMA} = log_2(1+\frac{P_2^{NOMA}|h_2|^2}{P_1^{NOMA}|h_1|^2 + N_{0,2}}) R2NOMA?=log2?(1+P1NOMA?h1?2+N0,2?P2NOMA?h2?2?)

MIMO-NOMA 系統簡介

??簡單來說MIMO-NOMA 就是指將MIMO 與NOMA 兩者相結合,充分發揮各自優勢進一步提升通信質量的一項技術。

MIMO 技術

??多天線技術在更多情況下也被叫做 MIMO(多入多出)技術,從廣義上講還包括SISO(單入單出)、MISO(多入單出)、SIMO(單入多出)。MIMO 技術通常在收發兩端都配置多根天線,對數據流預先作一定的處理后送至每一根發射天線,然后同一路數據流以不同的路徑到達接收端,充分利用了空間資源,由于多路數據流占用相同的頻譜資源,故 MIMO 可以在不增加帶寬的情況下提高系統容量和頻譜利用率。
MIMO 信道模型
圖 5 MIMO 信道模型
??圖5給出了MIMO的信道模型,其中發射端和接收端的天線數分別 T x T_x Tx? R x R_x Rx?, 假設發射向量為 s = [ s 1 , s 2 , ? , s T x ] s = [s_1,s_2,\cdots,s_{T_x}] s=[s1?,s2?,?,sTx??],接收向量 y = [ y 1 , y 2 , ? , y R x ] y = [y_1,y_2,\cdots,y_{R_x}] y=[y1?,y2?,?,yRx??],信道矩陣 H = [ h i j ] R x × T x H = [h_{ij}]_{R_x\times T_x} H=[hij?]Rx?×Tx?? h i j h_{ij} hij?代表第 i i i 根發射天線與第 j j j 根天線之間的信道增益。接收信號 y y y 表示為:
y = H s + N y = H s + N y=Hs+N

MIMO-NOMA 系統組成

??MIMO-NOMA 系統結合了NOMA 和MIMO 兩種技術,在NOMA 開發的功率域基礎上又開發出了空域,充分利用空間所提供的空間分集和空間復用增益,系統容量和頻譜利用率得到進一步提升。其系統組成與傳統的NOMA 系統有所區別。MIMO-NOMA 系統示意圖
圖 6 MIMO-NOMA 系統示意圖

??上圖6 給出了MIMO-NOMA 系統的示意圖,假設小區內有N 對用戶,并采用2 用戶分簇的形式將用戶分成N 個簇,實際場景中一個簇內可能容納多個用戶。系統從發射端到接收端的工作過程大致過程如下:首先將串行的數據流通過預處理轉化成多個平行的數據流分別送給多根發射天線,該過程通常可以通過波束賦形、預編碼技術實現;然后將小區內用戶按照一定的標準合理的進行分簇,該過程可以減小簇間干擾有利于接收機的檢測;然后對簇內的用戶進行功率分配,簇內用戶的功率分配與傳統的NOMA 分配方法類似;最后將疊加的信號通過多天線發射出去,接收端采用SIC 接收機完成信號的檢測。
?? 假設共分成 N N N個簇,每個簇中有 K K K個用戶。基站端共M個AP。
(1)先將同一個簇內的 K K K個用戶根據不同的功率疊加,即,第 n n n 個簇疊加的信號
x n = ∑ k = 1 K P n k x n k x_n = \sum_{k=1}^K\sqrt{P_{nk}}x_{nk} xn?=k=1K?Pnk? ?xnk?
(2) 將所有簇的信號疊加發送經天線發送,即,第 m m m 個天線發送的信號
t m = ∑ n = 1 N h ^ m n k ? ∣ h ^ m n k ∣ x n t_m = \sum_{n=1}^N \frac{\hat{h}^*_{mnk}}{|\hat{h}_{mnk}|}x_n tm?=n=1N?h^mnk?h^mnk???xn?
其中, h ^ m n k \hat{h}_{mnk} h^mnk?為第 m m m個天線到第 n n n個簇內第 k k k個用戶經評估后的信道增益。
(3)第 n n n個簇內第 k k k個用戶接收所有天線發送的信號,即,接收信號可表示為
y n k = ∑ m M h m n k t m + n n k = P n k c n k x n k + c n k ∑ k ′ = 1 , k ′ ≠ k K P n k ′ x n k ′ + ∑ n ′ = 1 , n ′ ≠ n N c n ′ k x n ′ + n n k \begin{align}y_{nk}= &\sum_{m}^{M}h_{mnk}t_m + n_{nk}\\ =& \sqrt{P_{nk}}c_{nk}x_{nk} + c_{nk}\sum_{k^{'}=1,k^{'}\neq k}^{K}\sqrt{P_{nk^{'}}}x_{nk^{'}} + \sum_{n^{'}=1,n^{'}\neq n}^{N}c_{n^{'}k}x_{n^{'}}+n_{nk} \end{align} ynk?==?mM?hmnk?tm?+nnk?Pnk? ?cnk?xnk?+cnk?k=1,k=kK?Pnk? ?xnk?+n=1,n=nN?cnk?xn?+nnk???
其中, c n k = ∑ m = 1 M h m n k h ^ m n k ? ∣ h ^ m n k ∣ c_{nk}=\sum_{m=1}^M h_{mnk}\frac{\hat{h}^*_{mnk}}{|\hat{h}_{mnk}|} cnk?=m=1M?hmnk?h^mnk?h^mnk???。上式(2)等式右邊,第一項為期望信號,第二項為簇內干擾,第三項為簇間干擾,第四項為信道干擾。

MATLAB 對總的比特率(sum rate)的仿真

不分組
圖 7 不分組
其中 WCG-SR NOMA Imperfect SIC 為 白噪聲信道下,MIMO-NOMA 和不完美SIC接收機情況下 sum rate隨用戶數的變化曲線。
WCG-SR NOMA Perfect SIC 為 白噪聲信道下,MIMO -NOMA和完美SIC接收機情況下 sum rate隨用戶數的變化曲線。
WCG-SR OMA 為白噪聲信道下,MIMO OMA ,sum rate 隨 用戶數的變化曲線。
主要參考論文為《NOMA-Aided Cell-Free Massive MIMO Systems》。

此外,仿真內容還將用戶數根據距離(或信道情況)進行分組,即,將AP分組,用戶也進行分組,各組內的AP只服務組內用戶。
分成4組
圖 8 分成4組

4組,加如組間干擾
圖 9 分成4組,且加入組間干擾。

詳解和MATLAB代碼參考MIMO-NOMAsum rate。參考論文NOMA-Aided Cell-Free Massive MIMO Systems

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39588.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39588.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39588.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ViewPager2與TabLayout的簡單使用

ViewPager2與TabLayout的簡單使用 MainActivity.java public class MainActivity extends AppCompatActivity {private ViewPager2 mViewPager;private TabLayout mTabLayout;private int[] icons new int[]{R.drawable.icon1, R.drawable.icon2, R.drawable.icon3, R.drawa…

如何進行無線網絡滲透測試?

今天我們將繼續深入探討Kali Linux的應用,這次我們將重點介紹如何使用Kali Linux進行無線網絡滲透測試。無線網絡滲透測試是評估無線網絡安全性的重要步驟,而Kali Linux作為一款專業的滲透測試發行版,提供了豐富的工具來幫助你進行這項任務。…

c++中const修飾成員函數的問題

問題引入&#xff1a; 看下面這一段代碼&#xff1a; class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;}void Print(){cout << "Print()" << endl;cout << "year:" << _year <&…

面試熱題(全排列)

給定一個不含重復數字的整數數組 nums &#xff0c;返回其 所有可能的全排列 。可以 按任意順序 返回答案。 輸入&#xff1a;nums [1,2,3] 輸出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 先在這里說明一下排列和組合的區別? 組合&#xff1a;是指從一…

前端三劍客

三劍客 萬維網聯盟&#xff08; World Wide Web Consortium &#xff09;&#xff0c;創建于1994年10月&#xff0c;主要工作是對 web 進行標準化。 ? 該組織定義了網頁的開發需要如下3門技術&#xff1a; ? - HTML:定義網頁的結構 - CSS: 定義網頁的表現&#xff0c;樣式 -…

開源數據庫Mysql_DBA運維實戰 (名詞解釋)

SQL&#xff08;Structured Query Language 即結構化查詢語言&#xff09; SQL語言主要用于存取數據、查詢數據、更新數據和管理關系數據庫系統&#xff0c;SQL語言由IBM開發。 SQL語言分類&#xff1a; DDL語句 數據庫定義語言&#xff1a;數據庫、表、視圖、索引、存儲過程…

Steam 靈感的游戲卡懸停效果

先看效果&#xff1a; 再看代碼&#xff08;查看更多&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Steam 靈感的游戲卡懸停效果</title><style>* {margin: …

構建高效外賣系統平臺:從需求到實現

隨著科技的不斷進步和人們生活節奏的加快&#xff0c;外賣成為了越來越多人的飲食選擇。為了滿足這一需求&#xff0c;開發一套高效的外賣系統平臺變得尤為重要。本文將從需求分析開始&#xff0c;逐步引導您了解如何開發一套完整的外賣系統平臺。 第一步&#xff1a;需求分析…

分類預測 | MATLAB實現EVO-CNN多輸入分類預測

分類預測 | MATLAB實現EVO-CNN多輸入分類預測 目錄 分類預測 | MATLAB實現EVO-CNN多輸入分類預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 1.MATLAB實現EVO-CNN多輸入分類預測 2.代碼說明&#xff1a;量谷優化卷積神經網絡的數據分類預測&#xff1a;要求于Matlab …

【hadoop】windows上hadoop環境的搭建步驟

文章目錄 前言基礎環境下載hadoop安裝包下載hadoop在windows中的依賴配置環境變量 Hadoop hdfs搭建創建hadfs數據目錄修改JAVA依賴修改配置文件初始化hdfs namenode啟動hdfs 前言 在大數據開發領域中&#xff0c;不得不說說傳統經典的hadoop基礎計算框架。一般我們都會將hadoo…

計算機視覺目標檢測性能指標

目錄 精確率&#xff08;Precision&#xff09;和召回率&#xff08;Recall&#xff09; F1分數&#xff08;F1 Score&#xff09; IoU&#xff08;Intersection over Union&#xff09; P-R曲線&#xff08;Precision-Recall Curve&#xff09;和 AP mAP&#xff08;mean…

Leetcode-每日一題【劍指 Offer 30. 包含min函數的棧】

題目 定義棧的數據結構&#xff0c;請在該類型中實現一個能夠得到棧的最小元素的 min 函數在該棧中&#xff0c;調用 min、push 及 pop 的時間復雜度都是 O(1)。 示例: MinStack minStack new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack…

【mysql】事務的四種特性的理解

&#x1f307;個人主頁&#xff1a;平凡的小蘇 &#x1f4da;學習格言&#xff1a;命運給你一個低的起點&#xff0c;是想看你精彩的翻盤&#xff0c;而不是讓你自甘墮落&#xff0c;腳下的路雖然難走&#xff0c;但我還能走&#xff0c;比起向陽而生&#xff0c;我更想嘗試逆風…

TOMCAT基礎

tomcat是一個基于Java開發的&#xff0c;開放源代碼的web應用服務器。它可以解析html頁面中的java代碼&#xff0c;執行動態請求&#xff0c;實現動態頁面。核心功能是將收到的http請求處理并轉發給適當的servlet來處理&#xff0c;然后將響應返回給客戶端。 優點 1&#xff0c…

Django實現音樂網站 ⑼

使用Python Django框架制作一個音樂網站&#xff0c; 本篇主要是后臺對專輯、首頁輪播圖原有功能的基礎上進行部分功能實現和顯示優化。 目錄 專輯功能優化 新增編輯 專輯語種改為下拉選項 添加單曲優化顯示 新增單曲多選 更新歌手專輯數、專輯單曲數 獲取歌手專輯數 保…

【并發編程】自研數據同步工具的優化:創建線程池多線程異步去分頁調用其他服務接口獲取海量數據

文章目錄 場景&#xff1a;解決方案 場景&#xff1a; 前段時間在做一個數據同步工具&#xff0c;其中一個服務的任務是調用A服務的接口&#xff0c;將數據庫中指定數據請求過來&#xff0c;交給kafka去判斷哪些數據是需要新增&#xff0c;哪些數據是需要修改的。 剛開始的設…

Character Animation With Direct3D 讀書筆記

角色動畫簡介 2D動畫&#xff1a;循環播放多張圖片 3D動畫&#xff1a; 骨骼動畫、變形動畫 DirectX入門 Win32 應用程序 Application類&#xff1a;處理主程序循環&#xff0c;圖形設備的初始化 Init&#xff1a;加載資源并創建圖形設備Update&#xff1a;更新游戲世界&am…

Vue中子組件修改父組件傳來的Prop值

vue中子組件不能直接修改父組件傳來的prop值&#xff0c;Prop 是一種傳遞數據的機制&#xff0c;父組件通過 Prop 向子組件傳遞數據&#xff0c;子組件通過 Props 接收父組件傳遞過來的數據&#xff0c;這些數據被封裝成一個個解構體形式的對象&#xff0c;不能直接進行修改。這…

React 18 更新 state 中的對象

參考文章 更新 state 中的對象 state 中可以保存任意類型的 JavaScript 值&#xff0c;包括對象。但是&#xff0c;不應該直接修改存放在 React state 中的對象。相反&#xff0c;當想要更新一個對象時&#xff0c;需要創建一個新的對象&#xff08;或者將其拷貝一份&#xf…

圖像去雨、去雪、去霧論文學習記錄

All_in_One_Bad_Weather_Removal_Using_Architectural_Search 這篇論文發表于CVPR2020&#xff0c;提出一種可以應對多種惡劣天氣的去噪模型&#xff0c;可以同時進行去雨、去雪、去霧操作。但該部分代碼似乎沒有開源。 提出的問題&#xff1a; 當下的模型只能針對一種惡劣天氣…