基于MATLAB的分布式mimo性能仿真,分析能量效率和频谱效率

简介: 基于MATLAB的分布式mimo性能仿真,分析能量效率和频谱效率

1.算法描述

   基于matlab的协作mimo分布式空时编码技术的仿真,包括规则LDPC级联D-STBC,ML,ZF,DFE均衡,Fincke-Pohst-MAP算法检测。将规则LDPC加入这个协作MIMO的D-STBC里,即是将LDPC码与D-STBC级联,发送端用LDPC编码发送到协作节点,然后协作节点用D-STBC码形式转发到发送端。做出 ML、ZF-OSIC和 ,RLS-MIMO-DFE三种检测算法误码率的性能比较(注意:发送端到中继协作节点过程中,中继协作节点对源信号的处理三种协议:放大转发,解码转发和编码协作,所以这分别三种协议下的三种检测算法要分别做),以及LDPC与D-STBC结合的协作MIMO系统与没有LDPC码的协作MIMO的D-STBC系统在ML检测算法下性能比较(只做“编码协作协议”下)。比较LDPC级联D-STBC的协作MIMO系统下,接收端检测分别采用ML算法和Fincke-Pohst MAP。

   多中继放大转发(AF, Amplify and Forward)和译码转发(DF, Decode and Forward)协议的主要缺点是中继采用正交子信道传输降低了频谱利用率。这引发了人们对分布式空时编码(DSTC, Distributed Space Time Coding)的研究。 目前多中继AF协议的中继选择和功率分配算法研究较多,但是通常只考虑不同中继使用正交信道传输的情况,而结合DSTC进行中继选择和功率分配算法的研究还不多。本文在研究多中继AF协议的基础上,针对DSTC系统的中继选择算法和功率分配算法开展研究。 首先,介绍分集技术、协作通信和空时编码相关知识,在此基础上引入DSTC,重点分析基于AF的DSTC,并给出对应的准正交空时编码(QOSTC, Quasi-Orthogonal Space Time Code)。 然后,针对DSTC系统中最大似然(ML, Maximum Likelihood)检测计算复杂度高的问题,我们利用线性分散码(LD, Linear Dispersion)的线性性质,将迫零(ZF, Zero Forcing)检测算法用于基于LD的DSTC。该ZF检测算法在基本保持误比特率(BER, Bit Error Rate)性能的同时,降低了检测的计算复杂度。 接着,研究DSTC系统的中继选择算法,推导DSTC系统中信宿的接收信噪比(SNR, Signal to Noise Ratio)表达式,研究基于SNR准则的中继选择算法,为了降低算法的计算复杂度,使用一种次优中继选择算法,减少中继选择搜索次数。最后将该算法与已有算法作仿真比较。 最后,研究DSTC系统的功率分配算法,研究一种最大化信宿接收SNR的功率分配算法,该算法利用调和平均准则对多个中继进行功率分配,将信源和中继的功率分配问题转化为对信源功率的一维搜索问题。该算法能够根据信道条件调整信源和中继的发射功率。最后仿真对比中继选择和功率分配的两种结合方案:中继选择之后功率分配和中继选择同时功率分配,从仿真结果可以看出两种结合方案的BER性能接近,但是中继选择同时功率分配的方案具有更高的计算复杂度。

    在实际的系统中,collocated MIMO (集中式 MIMO)技术的优点是有限的。造成这种限制的原因有两方面:

   首先,空间相关性会导致性能下降。在一个 collocated MIMO 系统中,每个节点的天线必须放置得很近。在 collocated antennas 处的无线电信号经历了类似的散射环境,而且信道可能是相关的,特别是当发射机和接收机之间的视线信道占主导地位时。信道矩阵可能是 ill conditioned 的,导致显著的容量下降。
   其次,由于终端尺寸的限制,节点不能配备很多天线。由于分集增益与天线数目成正比,天线数目少的 collocated MIMO 系统无法达到预期的性能。
   为了缓解 collocated MIMO 系统的上述缺点,提出了一种新的分布式 MIMO (distributed MIMO)技术。分布式 MIMO 与 collocated MIMO 的主要区别在于,无线网络前端的多个天线分布在距离较远的无线节点之间。
   在分布式MIMO系统中,每个节点只能配备一个天线。位于不同位置的多个节点将相同的信息发送给接收器。
   这样,多个节点组成虚拟天线阵列,实现更高的空间分集增益。这种空间多样性称为用户协作多样性(user cooperation diversity),或简称协作多样性(cooperative diversity)。

2.仿真效果预览
matlab2022a仿真结果如下:

baac477fa43d1c6116f65b0d5f76c6af_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
719d4cfaf2fccc41d597f85285f4ddaa_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
900cc3591be722e73fb9239548c33435_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

3.MATLAB核心程序

 %L = 20;      % RAU个数
M = 1;      % RAU 天线数
K = 4;        %用户个数
Ns = [2,4];      %用户天线数
% Mt = M*L;    %发送总的天线数
% Nt = K * N;  %接收总的天线数
 
c=1;
 
sigma_z2_dBm = -104;
sigma_z2 = 10^(sigma_z2_dBm/10)*0.001;
delta_sh_dB = 8;
detal_sh = 10^(delta_sh_dB/10);
alpha = 4;
%  ---------------能量消耗参数--------------
tao = 0.38;
Pd_dBm = 30;
Pd = 10^(Pd_dBm/10)*0.001;
Ps_dBm = 40;
Ps = 10^(Ps_dBm/10)*0.001;
Po_dB = 0.1484;
Po = 10^(Po_dB/10);
iterNum = 1000;
Ptm = 46;
Pt = 10^(Ptm/10)*0.001/K;
Ls = [1:2:10,15:10:200];
for n = 1:length(Ns)
    n
    N = Ns(n);
    for p = 1 :length(Ls)
 
        L = Ls(p);
        %P_Ideal = Pt/tao;
        P_D_real = K*Pt/tao + M*L*Pd + Ps + Po;
        P_C_real = K*Pt/tao + M*L*Pd + Ps;
 
        for iter = 1:iterNum
 
            [x_RAU, y_RAU, x_User, y_User] = SingleCell(L,K,Rc);
            % ----------------------D_MIMO ------------------------------------
 
            H = DAS_Channel(L, K, N, M, x_RAU, y_RAU, x_User, y_User, detal_sh, c, alpha);
 
            %--计算理论值
            for k = 1:K
               h = H((k-1)*N+1:k*N,:);
               I_D_ALL(k) = real(log2(det(eye(N) + (Pt * h * h')/(M*L*sigma_z2))));
            end
            I_D(n,p,iter) = sum(I_D_ALL);
            %--计算近似值
            lambda = log(10)/10;
            tmp1 = 0;
            tmp2 = 0;
            for i = 0:M-1
               tmp1 = tmp1 + log2(gamma(M - i + 1/N));
               tmp2 = tmp2 + log2(gamma(M - i));
            end
            C_D(n,p,iter) = N*(log2(c*Pt/(Rc^alpha*sigma_z2)) + log2(exp(-(4-sqrt(3))*alpha/4)) + ...
                + log2(L) + tmp1 + ...
                + (alpha + lambda^2*detal_sh^2)/(2*log(2)) - tmp2);
              C_D(n,p,iter)=K*C_D(n,p,iter);
        end
        I_D_avg = mean(I_D,3);
        C_D_avg = mean(C_D,3);
        EE_C_D_Real(n,p) = C_D_avg(n,p)/P_D_real;
        EE_I_D_Real(n,p) = I_D_avg(n,p)/P_D_real;
    end
end
相关文章
|
2月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
132 0
|
3月前
|
数据可视化
基于MATLAB的OFDM调制发射与接收仿真
基于MATLAB的OFDM调制发射与接收仿真
|
2月前
|
5G
基于IEEE 802.11a标准的物理层MATLAB仿真
基于IEEE 802.11a标准的物理层MATLAB仿真
193 0
|
2月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
|
3月前
|
数据采集 算法 前端开发
MATLAB|基于3D FDTD的微带线馈矩形天线分析[用于模拟超宽带脉冲通过线馈矩形天线的传播,以计算微带结构的回波损耗参数]
MATLAB|基于3D FDTD的微带线馈矩形天线分析[用于模拟超宽带脉冲通过线馈矩形天线的传播,以计算微带结构的回波损耗参数]
166 2
|
2月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
2月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
3月前
|
传感器 算法 数据挖掘
基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合
基于协方差交叉(CI)的多传感器融合算法,通过MATLAB仿真对比单传感器、SCC与CI融合在位置/速度估计误差(RMSE)及等概率椭圆上的性能。采用MATLAB2022A实现,结果表明CI融合在未知相关性下仍具鲁棒性,有效降低估计误差。
232 15
|
3月前
|
监控
基于MATLAB/Simulink的单机带负荷仿真系统搭建
使用MATLAB/Simulink平台搭建一个单机带负荷的电力系统仿真模型。该系统包括同步发电机、励磁系统、调速系统、变压器、输电线路以及不同类型的负荷模型。
493 5
|
3月前
|
机器学习/深度学习 算法 决策智能
MATLAB中双馈发电机与无刷双馈发电机低电压穿越的异同分析
MATLAB中双馈发电机与无刷双馈发电机低电压穿越的异同分析