m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集

时间:2022-12-31 14:00:37

1.算法概述 ·MIMO信道容量

平均功率分配的MIMO信道容量:通过Matlab仿真在加性高斯白噪声情况下的SISO (11)、SIMO(16)、MISO(41)、MIMO(33)、MIMO(4*4)系统的信道容量进行分析。

·关于空间复用

主要通过基于码本的预编码技术和非码本的预编码技术:

码本的预编码技术:基于TxAA模式的码本、基于DFT的码本

这里主要涉及到码本的设计,

非码本的预编码技术:SVD,GMD,UCD技术。

·把空间分集

SFBC和FSTD-SFBC。就是空频编码和频率切换分集与空频编码结合的,对这两种方式进行仿真。

整个系统的设计流程:

·步骤一:

对不同的天线数目的MIMO系统进行仿真,主要包括:

SISO (11)、SIMO(14)、MISO(41)、MIMO(22)、MIMO(4*4),对上面的五个部分进行仿真,获得系统的信道容量进行仿真。

·步骤二:

空间复用,在步骤一的基础上,选择性能较好的一组仿真环境,然后在此基础上,进行基于非码本的预编码和基于码本的预编码。分别进行性能对比分析。

非码本的预编码:SVD,GMD;

码本的预编码:DFT,基于TxAA模式的码本;

·步骤三:

空间分集,重点仿真2发一收的SFBC(空频编码)和FSTD-SFBC(频率切换分集与空频编码),对两种方式进行仿真。

1步骤一:对不同的天线数目的MIMO系统进行仿真:

主要包括:SISO (11)、SIMO(14)、MISO(41)、MIMO(22)、MIMO(4*4),对上面的五个部分进行仿真,获得系统的信道容量进行仿真。

2.仿真效果预览 matlab2010b仿真

1步骤一:对不同的天线数目的MIMO系统进行仿真:

主要包括:SISO (11)、SIMO(14)、MISO(41)、MIMO(22)、MIMO(4*4),对上面的五个部分进行仿真,获得系统的信道容量进行仿真。

得到的仿真结果如下所示:

m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集

2步骤二:空间复用:

在步骤一的基础上,选择性能较好的一组仿真环境,然后在此基础上,进行基于非码本的预编码和基于码本的预编码。分别进行性能对比分析。

非码本的预编码:SVD,GMD;

码本的预编码:DFT,基于TxAA模式的码本;

2.1破零均衡,MMSE均衡

m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集

·SVD分解的预编码

m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集

·GMD分解的预编码

m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集

3码本的预编码:DFT,基于TxAA模式的码本;

·DFT码本

m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集

·TxAA码本

m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集 空间分集:

仿真2发一收的SFBC(空频编码)和FSTD-SFBC(频率切换分集与空频编码),对两种方式进行仿真。

3.1 SFBC(空频编码)

m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集

3.2 FSTD-SFBC(频率切换分集与空频编码)

m基于matlab的MIMO信道容量分析,对比了不同天线数量;非码本预编码SVD,GMD;码本预编码DFT,TxAA以及空间分集

3.MATLAB部分代码预览

%OFDM参数
fs1         = 1e6;               %OFDM采样频率
fs2         = 0.8e6;               %OFDM采样频率
Num_Carrier = 128;               %子载波个数
GIlen       = 160;               %保护间隔长度
CPlen       = GIlen - Num_Carrier;     %循环前缀长度
fm          = 66;                %频偏
d           = 1;                 %时偏
M           = 6;                 %多径数量
Stime       = 1000;
 
for i = 1:length(SNR)
    BER_sum = 0;
    for k = 1:Stime
        i
        k
        %产生随机的BPSK信号
        X   = 2*randint(1,Num_Carrier) - 1;     
        S_receive2 = func_FSTD_SFBC(X,SNR(i),fm,d,M,fs1,fs2,Num_Carrier,GIlen,CPlen);
        [bit,ratio]= biterr((X+1)/2,S_receive2); 
        BER_sum = BER_sum + ratio;
    end
    
    BER(i) = BER_sum/Stime;
end
01-43m