预编码ZF,MMSE,THP准则线性预编码误码率仿真

简介: 预编码ZF,MMSE,THP准则线性预编码误码率仿真

1.算法概述
恒定包络( Constant Enve-lope,CE) 预编码;

   该算法规定,每根天线上的发射功率被限定为一个与信道条件和信号符号均无关的常数,各根天线均发射恒包络信号,符号信息由其相位携带,接收端通过将各根天线发出的恒包络信号进行矢量合成后,即可得到一个与之相应的星座点,同时也就降低了 PAPR。

脏纸编码 ( Dirty Paper Coding,DPC) 算法

   脏纸编码( Dirty - Paper Coding,DPC) 算法的基本思想是:假设一张纸上有许多相互独立的污点,且书写者准确知道它们的分布状况(即完美的CSI),那么,只要书写者采用一种与之相适应的书写方式,就可以使得阅读者在不知道污点分布状况的情形下,仍旧可以获取书写者想要传递的信息,这就可以使信道容量达到最大。 简单说就是在节省资源的条件下,将多用户信息叠加在一起。

     如果基站端掌握了完备的 CSI,那么使用 DPC 预编码是最佳的选择,因为它可以使信道的利用率达到最大。同时,虽然在实际系统中获取完备的 CSI 非常困难,即 DPC 算法几乎不可能得到应用,但其理论性能指标可以作为ZF 和 MMSE 等传统预编码算法的参考基准 。

THP 预编码算法

    它是一种连续的非线性预编码技术,可以对下行链路子信道间产生的相互干扰进行均衡。与 DPC 算法极其类似,是一个串行进行的过程,经过反馈之后,第二个用户可以消除来自第一个用户的干扰,第三个用户可以消除来自第一个和第二个用户的干扰,如此类推下去,就可以达到消除符号间干扰、提高误符号率性能的目的,是一种具有实际意义的预编码算法。

     与 DPC 的不同之处在于 THP 预编码算法中加入了模运算,虽然 THP 预编码算法在性能上不如DPC,但它可以有效降低发射功率。当然,它也需要基站端掌握完备的信道状态信息 。

矢量预编码算法

  相对于 THP 而言,向量扰动预编码是更广义的脏纸编码算法。它的算法原理是:在原本要发射的信号上加上一个扰动矢量,可以使原发射信号的发射功率最小化。向量扰动预编码算法面临的问题就转换成为寻找最优扰动矢量的最优化问题 。

  在多输入多输出(MIMO)应用中,大规模 MIMO 和传统 MIMO 相比,除了可以通过预编码提升误比特性能外,还可以大幅提升系统容量。

   现有的多用户预编码可以分为线性和非线性预编码两类,两类预编码有各自的优点,线性预编码实现简单并且性能可观,非线性预编码实现稍显复杂但是性能要远优于线性预编码。与线性预编码相对应,非线性模代数(THP)预编码可以基于迫零准则设计也可以基于最小均方误差准则设计。

   THP预编码算法是基于DPC编码的,相比之下,THP复杂度更低,并同时延续了DPC的诸多优点,由于采用了取模操作,因而属于一种非线性预编码方式。在MIMO系统中,THP能够近似达到系统容量上限,但是,其实现前提是能有效获取到CSI。在目前的THP算法中,主要基于ZF与MMSE准则设计。

    下面针对THP的原理和实现展开详细描述,图1给出了多用户MIMO系统下的THP框图,较传统线性预编码而言,THP较为复杂。

    发送方的预编码主要有两种类型:线性和非线性.线性预编码的典型例子是匹配滤波预编码(MFP)和迫零滤波预编码(ZFP).MFP受制于残留干扰(remaining interference),ZFP受制于发送功率的增强.

   非线性预编码的例子:(THP)原本是用于单用户系统中均衡以消除ISI,它等效于在接收端的判决反馈均衡器.通过部分信号处理由接收端转移到发送端,降低了MS的计算复杂度,可以避免错误传递(error propagation)和立即判决(immediate decision)。

   多入多出技术(MIMO)以满足快速增长的用户需求,而在采用MIMO系统的点对多点通信中,需要采用预编码以抑制用户间干扰,THP预编码就是一种有效的非线性预编码方式,可以获得很好的系统性能.本文从多用户MIMO-THP系统结构模型出发,介绍了基于ZF准则以及MMSE准则的THP预编码算法,并比较两者性能;同时在此基础上,对加入了功率分配的多用户MIMO-THP系统以多用户及排序MIMO-THP进行深入研究,分析和仿真.

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

1.png
2.png

3.核心MATLAB代码预览

   index
   snr = 10.^(SNR(index)/10);
   ea = 1;% 每个天线发射的功率,也即信号向量中每个元素的功率
   es = ea*Nt; % 总共的发射功率
   sigma_n2 = es/snr;% noise power
   
   for cnt = 1:Iter_num;% 信道的实现次数的循环
       
       H = sqrt(1/2)*(randn(Nr,Nt)+j*randn(Nr,Nt));% H
               
       for sym_index = 1:num; %在一帧数据符号中,信道保持不变
           
           Source = floor(M*rand(Nt,1));% random data generator
           Sym = pskmod(Source,M,pi/4,'gray'); % qpsk modulator
           [d_thp,beta] = THP_encoder(Sym,H,period);% 对符号进行THP预编码
           noise = sqrt(sigma_n2/2)*(randn(Nr,1)+j*randn(Nr,1));%生成噪声功率为sigma_n2
           y_thp = H*d_thp + noise(:,1);% 通过信道并加噪声

           r_thp = beta*y_thp;% 进行接收端的缩放
           
           Rec_thp = mod_thp(r_thp,period);

           Rec_Data_thp = pskdemod(Rec_thp,M,pi/4,'gray');% 对接收信号进行判决
           
           [err ratio] = biterr(Rec_Data_thp,Source,log2(M));% ber
           ber_thp(1,index) = ber_thp(1,index) + ratio;

       end; % loop for num
       
   end; % loop for iteration
   
end % loop for snr
A008
相关文章
|
算法 Shell
通信系统中ZF,ML,MRC以及MMSE四种信号检测算法误码率matlab对比仿真
通信系统中ZF,ML,MRC以及MMSE四种信号检测算法误码率matlab对比仿真
3GPP相应的5G UDN场景及性能需求 | 带你读《5G UDN(超密集网络)技术详解》之十九
相比 IMT-2020 推进组,3GPP 对 5G UDN 场景的研究更加具有针对性。 在业务应用独立式部署(SA)技术组的研究中,与 UDN 相关的场景都是服务 室内用户的,具体有两种:办公室和热点区域。
3GPP相应的5G UDN场景及性能需求 | 带你读《5G UDN(超密集网络)技术详解》之十九
|
8月前
|
机器学习/深度学习 存储 PyTorch
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
Neural ODE将神经网络与微分方程结合,用连续思维建模数据演化,突破传统离散层的限制,实现自适应深度与高效连续学习。
751 3
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
|
JavaScript Docker Python
下个时代的开发工具-Nix:声明式的运行环境构建器、简单场景下的docker替身
Nix 是一个独特的包管理工具和构建系统,采用声明式方法管理软件包和运行环境。它通过精确控制依赖关系和环境配置,确保软件的可重复性、隔离性和可追溯性。Nix 支持多语言开发环境,提供声明式配置、环境隔离、回滚与版本控制等核心功能,适用于复杂开发场景,有效解决依赖冲突和环境不一致问题。
2261 4
|
人工智能 网络协议 Android开发
国内首个!高通量以太网协议标准正式发布
近日,在CCF全国高性能计算学术年会上,阿里云、中国科学院计算技术研究所等40余家机构举办发布会,联合发布国内首个高通量以太网ETH+协议标准,可实现集合通信性能30%的提升。
1539 7
|
机器学习/深度学习 传感器 算法
【信道估计】基于LS和MMSE算法导频信道估计(误差率对比)附Matlab代码
【信道估计】基于LS和MMSE算法导频信道估计(误差率对比)附Matlab代码
|
算法
svd,BD,ZF,SLNR,MMSE线性预编码性能对比MATLAB仿真
svd,BD,ZF,SLNR,MMSE线性预编码性能对比MATLAB仿真
750 0
svd,BD,ZF,SLNR,MMSE线性预编码性能对比MATLAB仿真
|
5G 网络架构
深入解析Wi-Fi中的MIMO技术及其优势
【8月更文挑战第31天】
2704 0
|
存储 搜索推荐 Linux
在Linux中,什么是家目录?如何更改用户的家目录?
在Linux中,什么是家目录?如何更改用户的家目录?
|
存储 弹性计算 固态存储
阿里云服务器租用费用1t空间多少钱?全面解析
阿里云服务器租用费用1t空间多少钱?1T空间如果是系统盘SSD云盘价格是3686元一年、ESSD云盘1t空间是5222元一年,ESSD Entry云盘1024G存储空间价格是2580元一年。阿里云百科整理几款不同的云盘1t空间价格