function ber_22=vblastML(snr2,Nr)
Nt=2;
Nr=Nr;
%p=p;
no_bit_sym=1;
bits=10000;
%iter=0;
toterr=0;
% while toterr<soglia
% iter=iter+1;
for i=1:bits
a=rand;
if(a<0.25)
trans1(i)=(1+j)/2;
elseif(a<0.5)
trans1(i)=(1-j)/2;
elseif(a<0.75)
trans1(i)=(-1+j)/2;
else
trans1(i)=(-1-j)/2;
end
b=rand;
if(b<0.25)
trans2(i)=(1+j)/2;
elseif(b<0.5)
trans2(i)=(1-j)/2;
elseif(b<0.75)
trans2(i)=(-1+j)/2;
else
trans2(i)=-(1-j)/2;
end
% a=16*rand;
% if(a<1)
% trans1(i)=3+j*3;
% elseif(a<2)
% trans1(i)=3+j;
% elseif(a<3)
% trans1(i)=3-j;
% elseif(a<4)
% trans1(i)=3-j*3;
% elseif(a<5)
% trans1(i)=1+j*3;
% elseif(a<6)
% trans1(i)=1+j;
% elseif(a<7)
% trans1(i)=1-j;
% elseif(a<8)
% trans1(i)=1-j*3;
% elseif(a<9)
% trans1(i)=-1+j*3;
% elseif(a<10)
% trans1(i)=-1+j;
% elseif(a<11)
% trans1(i)=-1-j;
% elseif(a<12)
% trans1(i)=-1-j*3;
% elseif(a<13)
% trans1(i)=-3+j*3;
% elseif(a<14)
% trans1(i)=-3+j;
% elseif(a<15)
% trans1(i)=-3-j;
% else
% trans1(i)=-3-j*3;
% end
%
% b=16*rand;
% if(b<1)
% trans2(i)=3+j*3;
% elseif(b<2)
% trans2(i)=3+j;
% elseif(b<3)
% trans2(i)=3-j;
% elseif(b<4)
% trans2(i)=3-j*3;
% elseif(b<5)
% trans2(i)=1+j*3;
% elseif(b<6)
% trans2(i)=1+j;
% elseif(b<7)
% trans2(i)=1-j;
% elseif(b<8)
% trans2(i)=1-j*3;
% elseif(b<9)
% trans2(i)=-1+j*3;
% elseif(b<10)
% trans2(i)=-1+j;
% elseif(b<11)
% trans2(i)=-1-j;
% elseif(b<12)
% trans2(i)=-1-j*3;
% elseif(b<13)
% trans2(i)=-3+j*3;
% elseif(b<14)
% trans2(i)=-3+j;
% elseif(b<15)
% trans2(i)=-3-j;
% else
% trans2(i)=-3-j*3;
% end
data1=trans1(i);
data2=trans2(i);
%Channel
H=rey(Nr,Nt);
%AWGN
sig=sqrt(0.5/(10^(snr2/10)));
n=sig*(randn(Nr,1)+j*randn(Nr,1));
X=[data1;data2];
R=H*X+n;
%Combiner
s1=norm(R-H*[(1+j)/2;(1+j)/2],'fro')^2;
s2=norm(R-H*[(1+j)/2;(1-j)/2],'fro')^2;
s3=norm(R-H*[(1+j)/2;(-1+j)/2],'fro')^2;
s4=norm(R-H*[(1+j)/2;(-1-j)/2],'fro')^2;
s5=norm(R-H*[(1-j)/2;(1+j)/2],'fro')^2;
s6=norm(R-H*[(1-j)/2;(1-j)/2],'fro')^2;
s7=norm(R-H*[(1-j)/2;(-1+j)/2],'fro')^2;
s8=norm(R-H*[(1-j)/2;(-1-j)/2],'fro')^2;
s9=norm(R-H*[(-1+j)/2;(1+j)/2],'fro')^2;
s10=norm(R-H*[(-1+j)/2;(1-j)/2],'fro')^2;
s11=norm(R-H*[(-1+j)/2;(-1+j)/2],'fro')^2;
s12=norm(R-H*[(-1+j)/2;(-1-j)/2],'fro')^2;
s13=norm(R-H*[(-1-j)/2;(1+j)/2],'fro')^2;
s14=norm(R-H*[(-1-j)/2;(1-j)/2],'fro')^2;
s15=norm(R-H*[(-1-j)/2;(-1+j)/2],'fro')^2;
s16=norm(R-H*[(-1-j)/2;(-1-j)/2],'fro')^2;
S=[s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16];
SS=[(1+j)/2,(1+j)/2,(1+j)/2,(1+j)/2,(1-j)/2,(1-j)/2,(1-j)/2,(1-j)/2,(-1+j)/2,(-1+j)/2,(-1+j)/2,(-1+j)/2,(-1-j)/2,(-1-j)/2,(-1-j)/2,(-1-j)/2;...
(1+j)/2,(1-j)/2,(-1+j)/2,(-1-j)/2,(1+j)/2,(1-j)/2,(-1+j)/2,(-1-j)/2,(1+j)/2,(1-j)/2,(-1+j)/2,(-1-j)/2,(1+j)/2,(1-j)/2,(-1+j)/2,(-1-j)/2];
[v,p]=min(S);
Decoded1=SS(1,p);
Decoded2=SS(2,p);
%Decoding
% Decoded1=0;
% Decoded2=0;
% switch (D)
% case(s1)
% Decoded1=(1+j)/2;
% Decoded2=(1+j)/2;
% case(s2)
% Decoded1=(1+j)/2;
% Decoded2=(1-j)/2;
% case(s3)
% Decoded1=(1+j)/2;
% Decoded2=(-1+j)/2;
% case(s4)
% Decoded1=(1+j)/2;
% Decoded2=(-1-j)/2;
% case(s5)
% Decoded1=(1-j)/2;
% Decoded2=(1+j)/2;
% case(s6)
% Decoded1=(1-j)/2;
% Decoded2=(1-j)/2;
% case(s7)
% Decoded1=(1-j)/2;
% Decoded2=(-1+j)/2;
% case(s8)
% Decoded1=(1-j)/2;
% Decoded2=(-1-j)/2;
% case(s9)
% Decoded1=(-1+j)/2;
% Decoded2=(1+j)/2;
% case(s10)
% Decoded1=(-1+j)/2;
% Decoded2=(1-j)/2;
% case(s11)
% Decoded1=(-1+j)/2;
% Decoded2=(-1+j)/2;
% case(s12)
% Decoded1=(-1+j)/2;
% Decoded2=(-1-j)/2;
% case(s13)
% Decoded1=(-1-j)/2;
% Decoded2=(1+j)/2;
% case(14)
% Decoded1=(-1-j)/2;
% Decoded2=(1-j)/2;
% case(s15)
% Decoded1=(-1-j)/2;
% Decoded2=(-1+j)/2;
% case(s16)
% Decoded1=(-1-j)/2;
% Decoded2=(-1-j)/2;
% end
% if(real(s0)>0&imag(s0)>0)
% Decoded1=(1+j)/2;
% elseif(real(s0)>0&imag(s0)<0)
% Decoded1=(1-j)/2;
% elseif(real(s0)<0&imag(s0)>0)
% Decoded1=(-1+j)/2;
% elseif(real(s0)<0&imag(s0)<0)
% Decoded1=(-1-j)/2;
% end
%
% if(real(s1)>0&imag(s1)>0)
% Decoded2=(1+j)/2;
% elseif(real(s1)>0&imag(s1)<0)
% Decoded2=(1-j)/2;
% elseif(real(s1)<0&imag(s1)>0)
% Decoded2=(-1+j)/2;
% elseif(real(s1)<0&imag(s1)<0)
% Decoded2=(-1-j)/2;
% end
% Decoded1=0;
% Decoded2=0;
% if(real(s0)>2&imag(s0)>2)
% Decoded1=(3+j*3);
% elseif(real(s0)>2&imag(s0)>0)
% Decoded1=(3+j);
% elseif(real(s0)>2&imag(s0)>-2)
% Decoded1=(3-j);
% elseif(real(s0)>2)
% Decoded1=(3-j*3);
% elseif(real(s0)>0&imag(s0)>2)
% Decoded1=(1+j*3);
% elseif(real(s0)>0&imag(s0)>0)
% Decoded1=(1+j);
% elseif(real(s0)>0&imag(s0)>-2)
% Decoded1=(1-j);
% elseif(real(s0)>0)
% Decoded1=(1-j*3);
% elseif(real(s0)>-2&imag(s0)>2)
% Decoded1=(-1+j*3);
% elseif(real(s0)>-2&imag(s0)>0)
% Decoded1=(-1+j);
% elseif(real(s0)>-2&imag(s0)>-2)
% Decoded1=(-1-j);
% elseif(real(s0)>-2)
% Decoded1=(-1-j*3);
% elseif(imag(s0)>2)
% Decoded1=(-3+j*3);
% elseif(imag(s0)>0)
% Decoded1=(-3+j);
% elseif(imag(s0)>-2)
% Decoded1=(-3-j);
% else
% Decoded1=(-3-j*3);
% end
%
% if(real(s0)>2&imag(s0)>2)
% Decoded2=(3+j*3);
% elseif(real(s0)>2&imag(s0)>0)
% Decoded2=(3+j);
% elseif(real(s0)>2&imag(s0)>-2)
% Decoded2=(3-j);
% elseif(real(s0)>2)
% Decoded2=(3-j*3);
% elseif(real(s0)>0&imag(s0)>2)
% Decoded2=(1+j*3);
% elseif(real(s0)>0&imag(s0)>0)
% Decoded2=(1+j);
% elseif(real(s0)>0&imag(s0)>-2)
% Decoded2=(1-j);
% elseif(real(s0)>0)
% Decoded2=(1-j*3);
% elseif(real(s0)>-2&imag(s0)>2)
% Decoded2=(-1+j*3);
% elseif(real(s0)>-2&imag(s0)>0)
% Decoded2=(-1+j);
% elseif(real(s0)>-2&imag(s0)>-2)
% Decoded2=(-1-j);
% elseif(real(s0)>-2)
% Decoded2=(-1-j*3);
% elseif(imag(s0)>2)
% Decoded2=(-3+j*3);
% elseif(imag(s0)>0)
% Decoded2=(-3+j);
%
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1.版本:matlab2022A,包含仿真操作录像,代码中文注释,操作录像使用windows media player播放。 2.领域:Alamouti和MRC 3.内容:MIMO通信系统中对比Alamouti和MRC的误码率性能matlab仿真。Alamouti和MRC在MIMO通信系统中各有优势。Alamouti通过空时编码实现发射分集,不需要信道信息,而MRC,即最大比合并(Maximal Ratio Combining),是分集合并技术中的最优选择。相对于选择合并和等增益合并,MRC可以获得更好的性能 4.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
资源推荐
资源详情
资源评论
收起资源包目录
MIMO通信系统中对比Alamouti和MRC的误码率性能matlab仿真.rar (17个子文件)
2.jpg 21KB
20231126_012657.mp4 2.82MB
1.jpg 23KB
3.jpg 31KB
code
vblastML.m 9KB
Cor_H.m 508B
plot_Cor_alam.m 591B
SRC1xNr.m 2KB
rey.m 230B
vblastzf.m 2KB
plot_Cor_MRC21.m 395B
alam22sg.m 2KB
MRRC1xNr_Cor.m 1KB
plot_MRC_EGC_SC.m 576B
alamqpsk_test.m 2KB
EGRC1xNr.m 1KB
vblastMMSE.m 2KB
共 17 条
- 1
资源评论
fpga和matlab
- 粉丝: 17w+
- 资源: 2629
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- acline_P(1).sql
- 技术资料分享ucOS-II入门教程(任哲)很好的技术资料.zip
- 技术资料分享UCOSII 2.90 ReleaseNotes很好的技术资料.zip
- 技术资料分享Ucos-II-中文注释版很好的技术资料.zip
- 技术资料分享uCGUI的性能与资源占用很好的技术资料.zip
- 技术资料分享uCGUI 简介很好的技术资料.zip
- 性能测试工具(cpu、mem、io、net、RT)
- LPC1768微控制器手册-全面解析硬件功能及应用场景
- spring-boot-starter-2.3.5.RELEASE.jar
- 【java毕业设计】粮食仓库管理系统源码(springboot+前端+mysql+说明文档+LW).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功