%jmmse预编码性能
clear all
close all
format long; %将数据显示为长整型科学计数
Ns=4;%天线个数
Nr=4;
Nd=4;
SNR1=[0:5:30];%设置不同信噪比
SNR2=20;
channel_n=100*ones(1,length(SNR1));
error_mmselinp=zeros(1,length(SNR1));%初始化误码率
for loop_ebno=1:length(SNR1)%不同信噪比的循环
snr1=10.^(SNR1(loop_ebno)/10);%将信噪比从分贝形式转化成比例表示
snr2=10.^(SNR2);
ea=1;%每个天线发射的功率,也即信号向量中每个元素的功率
es=ea*Ns;%总共的发射功率
er=ea*Nr;
sigma_n1=es/snr1;%噪声功率
sigma_n2=er/snr2;
num=200;%发送数据个数
tic,
for loop_channel=1:channel_n(loop_ebno)%信道的实现次数的循环
H1=sqrt(1/2)*(randn(Nr,Ns)+j*randn(Nr,Ns));%信道增益矩阵
H2=sqrt(1/2)*(randn(Nr,Ns)+j*randn(Nr,Ns));
F=eye(Ns);
Q=eye(Nr);%初始化F,Q
mseF=1;
mseQ=1;%初始化差值
while(mseF>0.0001||mseQ>0.0001);%迭代过程
W=F'*H1'*Q'*H2'*inv(H2*Q*H1*F*F'*H1'*Q'*H2'+sigma_n1*H2*Q*Q'*H2'+sigma_n2*eye(Nd));
nemt2=sigma_n2*trace(W*W')/er;
nemt1=(trace(sigma_n1*W*H2*Q*Q'*H2'*W')+nemt2*trace(sigma_n1*Q*Q'))/es;
Q1=inv(H2'*W'*W*H2+nemt2*eye(Nr))*H2'*W'*F'*H1'*inv(H1*F*F'*H1'+sigma_n1*eye(Nr));
F1=inv(H1'*Q'*H2'*W'*W*H2*Q*H1+nemt1*eye(Ns)+nemt2*H1'*Q'*Q*H1)*H1'*Q'*H2'*W';%更新F,Q
mseF=norm(F1-F,'fro').^2;
mseF=norm(Q1-Q,'fro').^2;
F=F1;
Q=Q1;
end
for loop_num=1:num%在一帧数据符号中,信道保持不变。一帧总共有num个数据发送
gen_u=(sign(randn(Ns,1))+j*sign(randn(Ns,1)));%产生信号
u=sqrt(1/2)*gen_u;%归一化信号功率
noise1=sqrt(sigma_n1/2)*(randn(Nr,1)+j*randn(Nr,1));%生成噪声功率为sigma_n2的噪声
noise2=sqrt(sigma_n2/2)*(randn(Nr,1)+j*randn(Nr,1));
yr=H1*F*u+noise1;
yd=H2*Q*yr+noise2;
x1=W*yd;
rev_data_mmse=sign(real(x1))+j*sign(imag(x1));%对接收信号进行判决
error_mmselinp(1,loop_ebno)=error_mmselinp(1,loop_ebno)+sum(((abs(rev_data_mmse-gen_u)).^2)/4);%计算误比特数
end
end
toc
ber_mmselinp(1,loop_ebno)=error_mmselinp(1,loop_ebno)/(num*Ns*2*channel_n(loop_ebno));%注意每一个信噪比产生的数据数=channel_n(loop_ebno)*num*Nt*2,
%乘以2是因为,产生的数据符号式复数,相当于进行了4QAM调制
end
%画出不同准则下误码率和信噪比的曲线
P1=semilogy(SNR1,ber_mmselinp,'o-r');
hold on
set(P1,'Linewidth',[2]);%P1线宽2号
grid on;
xlabel('symbol SNR(dB)');ylabel('BER');
title('基于ZF准则和MMSE准则的预编码性能比较')
leg1='mmselinear';%设置图例
legend(leg1);
diedai.rar_MIMO最优化_MIMO最优预编码_MIMO预编码_通信最优化_预编码
版权申诉
77 浏览量
2022-09-22
23:03:01
上传
评论
收藏 1KB RAR 举报
周楷雯
- 粉丝: 80
- 资源: 1万+
最新资源
- java-leetcode题解之第111题二叉树的最小深度.zip
- java-leetcode题解之第110题平衡二叉树.zip
- java-leetcode题解之第109题有序链表转换二叉搜索树.zip
- java-leetcode题解之第108题将有序数组转换为二叉搜索树.zip
- java-leetcode题解之第107题二叉树的层序遍历II.zip
- java-leetcode题解之第102题二叉树的层序遍历.zip
- java-leetcode题解之第103题二叉树的锯齿形层序遍历.zip
- java-leetcode题解之第104题二叉树的最大深度.zip
- java-leetcode题解之第173题二叉搜索树迭代器.zip
- java-leetcode题解之第100题相同的树.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈