1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y56Ymphr
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
线性预测编码经常用来传输频谱包络信息,这样它就可以容忍传输误差。由于直接传输滤波器系数(参见线性预测中系数定义)对于误差非常敏感,所以人们不希望直接传输滤波器系数。换句话说,一个小的误差不会扭曲整个频谱或使整个频谱质量下降,但是一个小的误差可能使预测滤波器变得不稳定。有许多更加高级的表示方法,如对数面积比(en:log area ratio,LAR)、线谱对(en:line spectral pairs,LSP) 分解以及反射系数等。在这些方法中,LSP 由于它能够保证预测器的稳定性、并且小的系数偏差带来的谱误差也是局部的这些特性,所以得到了广泛应用。
4.部分源码
.....................................................................
%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