大规模 MIMO 检测的近似消息传递 (AMP)附matlab代码

该工作引入了一种混合框架,通过结合零强迫(ZF)和基于减少晶格基的逐次干扰消除(SIC),改进了VP预编码在多用户通信系统的性能。然后利用LR-ZF或LR-SIC预编码后的信号空间限制和晶格基的正交性,为近似消息传递(AMP)算法的应用铺平道路,进一步提升任何次优预编码器的性能。AMP算法在数据符号位于整数且晶格基的条目非独立同分布时,对晶格解码问题有益。数值结果表明,低复杂度的AMP算法能显著提高LR辅助预编码的误符号率性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

Vector perturbation (VP) precoding is a promising technique for multiuser communication systems operating in the downlink. In this work, we introduce a hybrid framework to improve the performance of lattice reduction (LR) aided precoding in VP. First, we perform a simple precoding using zero forcing (ZF) or successive interference cancellation (SIC) based on a reduced lattice basis. Since the signal space after LR-ZF or LR-SIC precoding can be shown to be bounded to a small range, then along with sufficient orthogonality of the lattice basis guaranteed by LR, they collectively pave the way for the subsequent application of an approximate message passing (AMP) algorithm, which further boosts the performance of any suboptimal precoder. Our work shows that the AMP algorithm can be beneficial for a lattice decoding problem whose data symbols lie in integers and entries of the lattice basis may not be i.i.d. Gaussian. Numerical results confirm that the low-complexity AMP algorithm can improve the symbol error rate performance of LR-aided precoding significantly. 

⛄ 部分代码

​clc;clear all;close all;

linestyles = cellstr(char('-','--','-.','--'));

SetColors=lines(10);  

Markers=['o','x','+','*'];

legendbox={'MMSE','MMSE-AMPT', 'MMSE-AMPG'};

   

n=32;% # of users

m=64;% # of received antennas; m is much larger than n in massive mimo

SNR_range=[0:4:16]; % the tested range of SNR

count=0;

algorithms=[1:1:3];

for SNR=SNR_range

for monte=1:4e3 % the number of MonteCarlo simulations

    H=randn(m,n); %channel matrix

    A=7;% size of constellations

    u=1*randi([-A,A],n,1);% symbols in users 

    

    sigmas2=A*(A+1)/3;              % theoretical signal power;  

    sigma2=sigmas2/((10^(SNR/10))); % noise power

    y=H*u+sqrt(sigma2)*randn(m,1);  %the received signal

     for j=algorithms

          switch j

             case 1 %  MMSE

            xhat=round(pinv([H;sigma2/sigmas2*eye(n)])*[y;zeros(n,1)]);

            x_mmse=xhat;

             case 2 % MMSE-AMPT

            yp=y-H*x_mmse; %yp is the difference vector

            xhat=x_mmse+AMPT(yp,H,.5,.5); % AMP with ternery priors

             case 3  % MMSE-AMPG

            yp=y-H*x_mmse;

            xhat=x_mmse+AMPG(yp,H,sigmas2/20,.5);% AMP with Gaussian priors;the signal power is unknown

          end   

        uhat=max(min(xhat,A*ones(n,1)),-A*ones(n,1));%estimated symbols

        ser(j,monte)=sum(u~=uhat)/n; % symbol error rate    

     end

end

    count=count+1;

    SER(:,count)=mean(ser,2);

end

figure(1)

    for j=algorithms

semilogy(SNR_range,SER(j,:),[linestyles{j} Markers(j)],'Color',SetColors(j,:),'Linewidth',2);

        hold on;

        grid on;

    end

hold off;

h=legend(legendbox(algorithms)); 

xlabel('SNR/dB');ylabel('SER');

⛄ 运行结果

​⛄ 参考文献

[1] Lyu S ,  Ling C . Hybrid Vector Perturbation Precoding: The Blessing of Approximate Message Passing[J]. IEEE Transactions on Signal Processing, 2017, PP:1-1.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值