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);
%


fpga和matlab
- 粉丝: 18w+
- 资源: 2657
最新资源
- 2023-04-06-项目笔记 - 第四百一十四阶段 - 4.4.2.412全局变量的作用域-412 -2025.02.19
- 基于STM32的智能环境系统设计20250211
- 基于元胞自动机法的枝晶生长模拟:任意角度偏心正方算法结合流体动力学LBM研究,基于元胞自动机法的枝晶生长模拟:任意角度偏心正方算法结合流体动力学LBM分析,C++程序,基于元胞自动机法模拟枝晶生长,能
- 单相全波可控整流电路:变压器中心抽头下的电流与波形特性研究,深入理解单相全波可控整流电路:原理、应用与参数计算,单相全波可控整流电路 此电路变压器是带中心抽头的,在u2正半周T1工作,变压器二次绕组
- terraform solace provider plugins
- MATLAB中蚁群算法在TSP问题上的应用研究,MATLAB实现蚁群算法求解旅行商TSP问题的优化策略,MATLAB 用蚁群算法解决旅行商TSP问题 ,MATLAB; 蚁群算法; 旅行商TSP问题
- 路径规划算法仿真:A星算法改进版,高效搜索与路径优化,带梯度下降及S-G滤波器处理,Matlab实现,可定量比较不同算法效果,改进A*算法:权重系数提升搜索效率、冗余拐角优化及路径平滑处理(Matla
- 基于C51单片机的花椒智能烘干设备的设计20250218
- 转速电流双闭环无传感器无刷直流电机Simulink模型解析:探究转速、转矩、反向电动势与三相电流之间的关系,转速电流双闭环无传感器无刷直流电机Simulink模型解析:探究转速、转矩、反向电动势与三相
- LaTeX-OCR-PRO图像识别项目实战
- Malab Simulink MW级直驱风机模型解析及参考文献资源分享,基于Malab Simulink构建的MW级直驱风机模型及其相关参考文献,Malab Simulink MW级直驱风机模型,附赠
- 风力永磁同步发电机设计及仿真分析:Maxwell电磁仿真在1.5兆瓦风力发电机中的应用与工况研究,基于Maxwell电磁仿真的1.5兆瓦风力永磁同步发电机设计与工况分析,1.5兆瓦风力发电机 maxw
- SCI计算复现系列:Pandat代算与自操作实践下的共晶成分设计-以Al-Cu-Si三元合金共晶点成分寻找为例,SCI计算复现:共晶成分设计实例-Al-Cu-Si三元合金共晶点成分的相图计算与Pa
- DeepSeek:本地搭建
- 基于双馈发电机与电池储能系统的频率调节控制策略Simulink模型研究,基于双馈发电机与电池储能系统的频率调节控制策略Simulink模型研究,风储调频 使用双馈发电机(DFIG)相关的电池储能系统
- 永磁同步电机PMSM模糊PI控制策略:详细搭建过程、仿真效果及与传统PI对比资料全套打包介绍,永磁同步电机PMSM模糊PI控制策略详解:搭建过程、参考资料、与传统PI对比及仿真效果展示,永磁同步电机P
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


