- 5G非正交多址接入技術:理論、算法與實現
- 李興旺 張長森等
- 1448字
- 2021-12-15 16:11:11
3.4 信道系數的MATLAB實現
為了實現無線信道,需要產生隨機噪聲和信道系數。信道系數假設為所有多徑分量的集合響應,因此可以根據傳播環境,假設信道服從前面討論的任何一種衰落模型的概率分布。鑒于MATLAB是無線通信系統仿真中的常用軟件,接下來將討論使用MATLAB生成各種信道系數的方法及MATLAB實現。在所有的信道系數生成過程中,假設所有接收信道的相位在0~2π范圍內均勻分布。
3.4.1 瑞利(Rayleigh)衰落信道
Rayleigh衰落信道是最常用、最簡單的衰落信道,常用于表征非視距無線傳播環境。數學上,Rayleigh部分變量表示為兩個獨立的零均值、單位方差高斯(Gaussian)分布隨機變量平方和。因此,生成Rayleigh衰落信道系數的MATLAB代碼為

其中,用于歸一化生成衰落信道系數的方差。同理,如果考慮的系統在發射機和接收機上有多個天線,即系統為多輸入多輸出(MIMO)通信系統時,生成信道系數矩陣的MATLAB代碼為

其中,信道矩陣系數的維度為Nr× Nt,對應于Nt個發送天線Nr個接收天線的MIMO系統信道矩陣。為了模擬接收信號中存在LoS或優勢分量時的衰落分布,Rician分布起到了重要作用。
3.4.2 萊斯(Rician)衰落信道
Rayleigh衰落信道能夠表征NLoS衰落環境,但是當接收信號中存在LoS或者確定分量的情況,Rayleigh衰落信道不能夠有效地表征。為了模擬接收信號中存在LoS或確定分量時的衰落分布,Rician分布被提出。生成Rician分布衰落信道系數與Rayleigh衰落信道類似。在Rician衰落信道系數生成時,LoS分量的同相部分是一個常數,其值依賴于Rician分布的衰落因子K。因此,單Rician分布衰落信道的MATLAB代碼為

其中,因子和
用于表示LoS或確定分量與歸一化衰落信號功率的比。同理,MIMO系統衰落信道矩陣系數的MATLAB代碼為

上述信道矩陣系數的生成假設為獨立同分布的隨機變量。根據上面的h和H的代碼可以看出,當K趨于無窮時,所有的系數值變為1,則此時為無衰落環境。然而,當Rician因子為0時,Rician衰落信道等價于Rayleigh衰落信道。因此,Rician衰落信道能夠表征從無衰落環境到Rayleigh衰落環境[14]。
3.4.3 Hoyt衰落信道
在衰落程度小于Rayleigh衰落信道的傳播環境,Rician衰落信道能夠很好地表征。當衰落信道比瑞利衰落環境更嚴重時,采用Hoyt(Nakagami-q)分布建模衰落信道。與Rician衰落信道不同,Hoyt衰落信道不存在LoS或確定分量。與Rayleigh相比,Hoyt考慮接收信號的同相和正交相非等功率。因此,Hoyt衰落信道系數的MATLAB代碼為

其中,參數q表述衰落的嚴重程度。同理,MIMO系統衰落信道矩陣系數的MATLAB代碼為

3.4.4 Nakagami-m衰落信道
當多徑分量的集合在接收端形成簇時,接收信號服從Nakagami-m分布。根據3.3.1節物理信道模型所述,Nakagami-m衰落信道簇的數目與衰落參數m有關。首先,根據物理模型,Nakagami-m衰落分布已經被證明適用于NLOS傳播環境。然而,一些數據實驗表明Rician衰落信道為Nakagami-m分布的一種特殊情況。根據式(3-9),Nakagami-m衰落信道系數的生成可以用下述MATLAB代碼表示:

上述代碼用于生成單變量Nakagami-m衰落信道系數,適用于單輸入單輸出(Single-Input Single-Output,SISO)通信系統。在生成Nakagami-m時,首先生成Nakagami-m衰落信號的平方變分,然后利用均布相位分量將其轉換為復包絡形式[15]。進行稍微修改,可以得到獨立同分布衰落信道系數


上述方法根據物理模型生成Nakagami-m分布衰落信道系數。在物理模型中,參數m定義為接收信號中多徑分量簇的數目。另外,通過Nakagami-m分數的性質可知,通信系統的SNR服從Gamma分布。因此,Nakagami-m分布衰落信道的系數可由Gamma分布隨機變量得到。要做到這一點,需要將Nakagami-m分布的參數m關聯到Gamma分布參數上。在MATLAB中,利用gamrnd函數可以生成Gamma分布隨機變量,它含有兩個參數,形狀參數Φ和尺度參數Θ。Φ和Θ與Nakagami-m衰落參數m有關Φ=m和,其中
為信號的平均SNR。因此,可以使用以下MATLAB代碼生成一個Nakagami-m分布式衰落信道系數:

其中,a_SNR信號的平均SNR或者Gamma/Nakagami-m分布隨機變量的方差。同理,MIMO通信系統信道矩陣系數可以由以下Matlab代碼生成。
