svd,BD,ZF,SLNR,MMSE线性预编码性能对比MATLAB仿真
目录
1.算法仿真效果
matlab2022a仿真结果如下:
2.MATLAB核心程序
.....................................................................
%svd
[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);
A309
3.算法涉及理论知识概要
线性预测编码(LPC)是主要用于音频信号处理与语音处理中根据线性预测模型的信息用压缩形式表示数字语音信号谱包络(en:spectral envelope)的工具。它是最有效的语音分析技术之一,也是低位速下编码方法高质量语音最有用的方法之一,它能够提供非常精确的语音参数预测。
线性预测编码经常用来传输频谱包络信息,这样它就可以容忍传输误差。由于直接传输滤波器系数(参见线性预测中系数定义)对于误差非常敏感,所以人们不希望直接传输滤波器系数。换句话说,一个小的误差不会扭曲整个频谱或使整个频谱质量下降,但是一个小的误差可能使预测滤波器变得不稳定。有许多更加高级的表示方法,如对数面积比(en:log area ratio,LAR)、线谱对(en:line spectral pairs,LSP) 分解以及反射系数等。在这些方法中,LSP 由于它能够保证预测器的稳定性、并且小的系数偏差带来的谱误差也是局部的这些特性,所以得到了广泛应用。
3.1svd线性预编码
单用户 SVD 预编码技术是一种点对点的 MIMO 系统,需要对发送端和接收端进行联合处理。 单用户 SVD 预编码技术利用了单用户 MIMO 信道的所有通道来传送信息,需要在发送端需要进行预编码,同时在接收端也要进行赋形处理。信道矩阵H的 SVD 分解为:
其中 U 和 V 都是正交矩阵且Σ=diag(a1,a2,...)为对角矩阵。令发射信号x=Va,即发送预处理矩阵使用信道矩阵HSVD 分解后的右奇异矩阵V ,则处理机则用矩阵U来进行接收赋形,得:
3.2BD线性预编码
块对角化预编码是在多用户MIMO系统下行链路中受到广泛认可的一种线性预编码,它将多用户MIMO系统的下行信道矩阵分解为块对角化形式,等效为多个互不干扰的单用户MIMO系统,完全消除了用户间干扰,通过合理的功率分配,能获得比迫零线性预编码更高的系统容量。块对角化预编码是对 ZF 预编码算法的改进,它在线性预编码矩阵前乘入了零空间矩阵,可以有效减小其他用户产生的干扰。.
3.3ZF线性预编码
ZF预编码可以理解为把user自身因为多天线空间信道传输而产生的在同时同频的自干扰消掉(但没有考虑消去高斯分布的noise),从而最小化了真实信号和估计的误差平方和,而从统计来看就是Maximize likelihood这个模型
4.完整MATLAB
V
相关文章
- matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明
- 【雷达通信】非相干多视处理(CSA)(Matlab代码实现)
- 【信号处理】天线分集与空时编码技术——Alamouti空时块码(matlab代码实现)
- DQN算法控制模拟旋转摆研究(Matlab代码实现)
- 【语音处理】使用块反射器的基于DFT的系统中用于旁瓣抑制的正交预编码(Matlab代码实现)
- 【MATLAB】图像压缩编码(DCT、RLE)
- 【MATLAB】求偏导数
- 数学建模学习(61):双因素方差分析详细讲解与matlab应用
- 数学建模学习(60):matlab回归分析及残差图绘制
- matlab快速入门(14):获取文档帮助
- 基于OFDM的通信链路误码率matlab仿真,采用多径信道,卷积编码,16QAM
- m瑞利信道下对比ZF-SIC,MMSE-SIC,MRC三种均衡算法的误码率matlab仿真
- 单载波频域均衡matlab仿真,包括卷积编码维特比译码,矩阵交织,QPSK调制解调,导频插入,MMSE-FDE频域均衡
- m基于EAN13字符编码规则的一维条形码条码宽度计算和数字译码matlab仿真
- m基于matlab的图像方块编码仿真,输出编码后PSNR图像质量指标
- 基于matlab的医学成像技术滤波反投影仿真,包括直接反投影,S-L滤波,R-L滤波,Lewitt滤波
- m基于ESN+BP神经网络的数据预测算法matlab仿真,测试数据为太阳黑子变化数据
- 基于LEACH的随机网络生成无线传感器网络路由协议的仿真比较(Matlab代码实现)
- 【信号处理】天线分集与空时编码技术——瑞利衰落信道下MRC性能(matlab代码实现)
- 【信号处理】天线分集与空时编码技术——空时格码(matlab代码实现)
- 【语音处理】基于加权压力匹配方法(WPMM)的声音系统研究(Matlab代码实现)
- 【语音编码】基于matlab ADPCM编解码(Matlab代码实现)
- matlab也可以画出浪漫爱心
- m基于matlab的卷积编码维特比译码误码率仿真
- BCH编码译码误码率性能matlab仿真