svd,BD,ZF,SLNR,MMSE线性预编码性能对比MATLAB仿真

简介: svd,BD,ZF,SLNR,MMSE线性预编码性能对比MATLAB仿真

1.算法仿真效果
matlab2022a仿真结果如下:

bc4d3c489ae7a6fc09075279790e3dbd_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
8675b29e68eb2e729c8d7b3c7978aa89_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
38855475c456824fcfd0b1e720dc73c3_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
12f7f701fb23be258c6c577b9719be71_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要

    线性预测编码(LPC)是主要用于音频信号处理与语音处理中根据线性预测模型的信息用压缩形式表示数字语音信号谱包络(en:spectral envelope)的工具。它是最有效的语音分析技术之一,也是低位速下编码方法高质量语音最有用的方法之一,它能够提供非常精确的语音参数预测。

   线性预测编码经常用来传输频谱包络信息,这样它就可以容忍传输误差。由于直接传输滤波器系数(参见线性预测中系数定义)对于误差非常敏感,所以人们不希望直接传输滤波器系数。换句话说,一个小的误差不会扭曲整个频谱或使整个频谱质量下降,但是一个小的误差可能使预测滤波器变得不稳定。有许多更加高级的表示方法,如对数面积比(en:log area ratio,LAR)、线谱对(en:line spectral pairs,LSP) 分解以及反射系数等。在这些方法中,LSP 由于它能够保证预测器的稳定性、并且小的系数偏差带来的谱误差也是局部的这些特性,所以得到了广泛应用。

2.1svd线性预编码

   单用户 SVD 预编码技术是一种点对点的 MIMO 系统,需要对发送端和接收端进行联合处理。 单用户 SVD 预编码技术利用了单用户 MIMO 信道的所有通道来传送信息,需要在发送端需要进行预编码,同时在接收端也要进行赋形处理。信道矩阵H的 SVD 分解为:

1d7daa0b3244a7f6e5f06c6d9061cc47_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

   其中 U 和 V 都是正交矩阵且Σ=diag(a1,a2,...)为对角矩阵。令发射信号x=Va,即发送预处理矩阵使用信道矩阵HSVD 分解后的右奇异矩阵V ,则处理机则用矩阵U来进行接收赋形,得:

826b27e258766d7c16312aaea5062c0c_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.2BD线性预编码

    块对角化预编码是在多用户MIMO系统下行链路中受到广泛认可的一种线性预编码,它将多用户MIMO系统的下行信道矩阵分解为块对角化形式,等效为多个互不干扰的单用户MIMO系统,完全消除了用户间干扰,通过合理的功率分配,能获得比迫零线性预编码更高的系统容量。块对角化预编码是对 ZF 预编码算法的改进,它在线性预编码矩阵前乘入了零空间矩阵,可以有效减小其他用户产生的干扰。.

d8b37c10622574244c9af76b640930c7_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.3ZF线性预编码

   ZF预编码可以理解为把user自身因为多天线空间信道传输而产生的在同时同频的自干扰消掉(但没有考虑消去高斯分布的noise),从而最小化了真实信号和估计的误差平方和,而从统计来看就是Maximize likelihood这个模型

3.MATLAB核心程序

            [W1,M1]=svdprecoding(H,K,S,P);
            [U,D,V]=svd(H);
            p1 = ones(1,K*S);
            % p1 = waterfilling(D,SNR,Nt,K,S);
           [count_temp] = receiver(H,Nt,S,K,Tc,P,n,W1,M1,s,q);
            count1=count1+count_temp;
            G=M1*H*W1;
            capacity1=capacity1+log2(det(eye(K*S,K*S)+P/(sigma2*Nt)*G*G'));       
  % BD
            [W2,D2 M2] = BD2(Nt,Nri,S,K,H,P);
            p2 = ones(1,K*S);
            [count_temp] = receiver(H,Nt,S,K,Tc,P,n,W2,M2,s,q);
            count2=count2+count_temp;
            capacity2=capacity2+sumrate(H,W2,M2,K,S,Nri,Nt,sigma2,P);        
  %ZF
           [W3]=ZF(H,P,K,S);
           [count_temp] = receiver(H,Nt,S,K,Tc,P,n,W3,eye(K*Nri),s,q);
            count3=count3+count_temp;
            capacity3=capacity3+sumrate(H,W3,eye(K*Nri),K,S,Nri,Nt,sigma2,P);          
%SLNR
       %[W5]  = SLNR(Nt,Nri,S,K,H,sigma2,P);
        [W5]=SLNR2(H,sigma2,P,K,Nri,S,Nt);
        [count_temp] = receiver(H,Nt,S,K,Tc,P,n,W5,eye(K*Nri),s,q);
            count5=count5+count_temp;
     
       capacity5=capacity5+sumrate(H,W5,eye(K*Nri),K,S,Nri,Nt,sigma2,P);
%MMSE
        [W6,M6]=MMSE(H,sigma2,P,K,Nri,S,Nt);
        [count_temp] = receiver(H,Nt,S,K,Tc,P,n,W6,M6,s,q);
            count6=count6+count_temp;
        
       capacity6=capacity6+sumrate(H,W6,M6,K,S,Nri,Nt,sigma2,P);
相关文章
|
2月前
|
5G
基于IEEE 802.11a标准的物理层MATLAB仿真
基于IEEE 802.11a标准的物理层MATLAB仿真
193 0
|
2月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
|
2月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
272 0
|
2月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
132 0
|
2月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
118 0
|
2月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
132 0
|
2月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
178 8
|
2月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
172 8
|
2月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)

热门文章

最新文章