该【2025年分集合并 】是由【读书百遍】上传分享,文档一共【17】页,该文档可以免费在线阅读,需要了解更多关于【2025年分集合并 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。分集合并技术MATLAB仿真 - [毕设]
版权申明:转载时请以超链接形式标明文章原始出处和作者信息及本申明
clc
clear
c=sqrt(2)/2;
j=sqrt(-1);
Cons=[1,c+j*c, j, c-j*c,-1, -c-j*c, -j, -c+j*c];
Es=1;
SNRIndex=1;
for SNR=0:5:50
SNRValue(SNRIndex)=SNR;
SNR1=10^(SNR/10);
NoisePower=2*Es/(SNR1);
RealNoisePower=NoisePower/2;
Frame=5000;
TotalBit1=0;
ErrorNum1_M=0;
ErrorNum2_M=0;
ErrorNum3_M=0;
ErrorNum4_M=0;
ErrorNum5_M=0;
ErrorNum1_E=0;
ErrorNum2_E=0;
ErrorNum3_E=0;
ErrorNum4_E=0;
ErrorNum5_E=0;
ErrorNum1_S=0;
ErrorNum2_S=0;
ErrorNum3_S=0;
ErrorNum4_S=0;
ErrorNum5_S=0;
for loop=1:1:Frame
h1=(randn(1)+j*randn(1))*sqrt(1/2);
for i=1:1:2
h2(i,1)=(randn(1)+j*randn(1))*sqrt(1/2);
end
for i=1:1:4
h3(i,1)=(randn(1)+j*randn(1))*sqrt(1/2);
end
for i=1:1:6
h4(i,1)=(randn(1)+j*randn(1))*sqrt(1/2);
end
for i=1:1:8
h5(i,1)=(randn(1)+j*randn(1))*sqrt(1/2);
end
TotalBit1=TotalBit1+1;
for i=1:1:2
InStream(i)=(rand(1)>=);
end
xx1=2*InStream(1)+InStream(2)+1;
x=Cons(xx1);
noise1=(randn(1)+j*randn(1))*sqrt(RealNoisePower);
for i=1:1:2
noise2(i,1)=(randn(1)+j*randn(1))*sqrt(RealNoisePower);
end
for i=1:1:4
noise3(i,1)=(randn(1)+j*randn(1))*sqrt(RealNoisePower);
end
for i=1:1:6
noise4(i,1)=(randn(1)+j*randn(1))*sqrt(RealNoisePower);
end
for i=1:1:8
noise5(i,1)=(randn(1)+j*randn(1))*sqrt(RealNoisePower);
end
r1=h1*x+noise1;
r2=h2*x+noise2;
r3=h3*x+noise3;
r4=h4*x+noise4;
r5=h5*x+noise5;
%%%%%%%%MRC%%%%%%%
s1_m=r2(1)*conj(h2(1))+r2(2)*conj(h2(2));
s2_m=r3(1)*conj(h3(1))+r3(2)*conj(h3(2))+r3(3)*conj(h3(3))+r3(4)*conj(h3(4));
s3_m=r4(1)*conj(h4(1))+r4(2)*conj(h4(2))+r4(3)*conj(h4(3))+r4(4)*conj(h4(4))+r4(5)*conj(h4(5))+r4(6)*conj(h4(6));
s4_m=r5(1)*conj(h5(1))+r5(2)*conj(h5(2))+r5(3)*conj(h5(3))+r5(4)*conj(h5(4))+r5(5)*conj(h5(5))+r5(6)*conj(h5(6))+r5(7)*conj(h5(7))+r5(8)*conj(h5(8));
for i=1:1:4
M1(i)=abs(r1-h1*Cons(i));
M2(i)=abs(s1_m-Cons(i));
M3(i)=abs(s2_m-Cons(i));
M4(i)=abs(s3_m-Cons(i));
M5(i)=abs(s4_m-Cons(i));
end
Minvalue_M=min(M1);
n1_m=find(M1==Minvalue_M);
l1_m=Cons(n1_m);
Minvalue_M=min(M2);
n2_m=find(M2==Minvalue_M);
l2_m=Cons(n2_m);
Minvalue_M=min(M3);
n3_m=find(M3==Minvalue_M);
l3_m=Cons(n3_m);
Minvalue_M=min(M4);
n4_m=find(M4==Minvalue_M);
l4_m=Cons(n4_m);
Minvalue_M=min(M5);
n5_m=find(M5==Minvalue_M);
l5_m=Cons(n5_m);
ErrorNum1_M=ErrorNum1_M+(l1_m~=x);
ErrorNum2_M=ErrorNum2_M+(l2_m~=x);
ErrorNum3_M=ErrorNum3_M+(l3_m~=x);
ErrorNum4_M=ErrorNum4_M+(l4_m~=x);
ErrorNum5_M=ErrorNum5_M+(l5_m~=x);
%%%%%EGC%%%%%
s1_e=r2(1)*conj(h2(1))/abs(h2(1))+r2(2)*conj(h2(2))/abs(h2(2));
s2_e=r3(1)*conj(h3(1))/abs(h3(1))+r3(2)*conj(h3(2))/abs(h3(2))+r3(3)*conj(h3(3))/abs(h3(3))+r3(4)*conj(h3(4))/abs(h3(4));
s3_e=r4(1)*conj(h4(1))/abs(h4(1))+r4(2)*conj(h4(2))/abs(h4(2))+r4(3)*conj(h4(3))/abs(h4(3))+r4(4)*conj(h4(4))/abs(h4(4))+r4(5)*conj(h4(5))/abs(h4(5))+r4(6)*conj(h4(6))/abs(h4(6));
s4_e=r5(1)*conj(h5(1))/abs(h5(1))+r5(2)*conj(h5(2))/abs(h5(2))+r5(3)*conj(h5(3))/abs(h5(3))+r5(4)*conj(h5(4))/abs(h5(4))+r5(5)*conj(h5(5))/abs(h5(5))+r5(6)*conj(h5(6))/abs(h5(6))+r5(7)*conj(h5(7))/abs(h5(7))+r5(8)*conj(h5(8))/abs(h5(8));
for i=1:1:4
E1(i)=abs(r1-h1*Cons(i));
E2(i)=abs(s1_e-Cons(i));
E3(i)=abs(s2_e-Cons(i));
E4(i)=abs(s3_e-Cons(i));
E5(i)=abs(s4_e-Cons(i));
end
Minvalue_E=min(E1);
n1_e=find(E1==Minvalue_E);
l1_e=Cons(n1_e);
Minvalue_E=min(E2);
n2_e=find(E2==Minvalue_E);
l2_e=Cons(n2_e);
Minvalue_E=min(E3);
n3_e=find(E3==Minvalue_E);
l3_e=Cons(n3_e);
Minvalue_E=min(E4);
n4_e=find(E4==Minvalue_E);
l4_e=Cons(n4_e);
Minvalue_E=min(E5);
n5_e=find(E5==Minvalue_E);
l5_e=Cons(n5_e);
ErrorNum1_E=ErrorNum1_E+(l1_e~=x);
ErrorNum2_E=ErrorNum2_E+(l2_e~=x);
ErrorNum3_E=ErrorNum3_E+(l3_e~=x);
ErrorNum4_E=ErrorNum4_E+(l4_e~=x);
ErrorNum5_E=ErrorNum5_E+(l5_e~=x);
%%%%%SC%%%%%
Maxvalue1=max(h2);
a=find(h2==Maxvalue1);
Maxvalue2=max(h3);
b=find(h3==Maxvalue2);
Maxvalue3=max(h4);
c=find(h4==Maxvalue3);
Maxvalue4=max(h5);
d=find(h5==Maxvalue4);
s1_s=r2(a);
s2_s=r3(b);
s3_s=r4(c);
s4_s=r5(d);
for i=1:1:4
S1(i)=abs(r1-h1*Cons(i));
S2(i)=abs(s1_s-h2(a)*Cons(i));
S3(i)=abs(s2_s-h3(b)*Cons(i));
S4(i)=abs(s3_s-h4(c)*Cons(i));
S5(i)=abs(s4_s-h5(d)*Cons(i));
end
Minvalue_S=min(S1);
n1_s=find(S1==Minvalue_S);
l1_s=Cons(n1_s);
Minvalue_S=min(S2);
n2_s=find(S2==Minvalue_S);
l2_s=Cons(n2_s);
Minvalue_S=min(S3);
n3_s=find(S2==Minvalue_S);
l3_s=Cons(n2_s);
Minvalue_S=min(S4);
n4_s=find(S4==Minvalue_S);
l4_s=Cons(n4_s);
Minvalue_S=min(S5);
n5_s=find(S5==Minvalue_S);
l5_s=Cons(n5_s);
ErrorNum1_S=ErrorNum1_S+(l1_s~=x);
ErrorNum2_S=ErrorNum2_S+(l2_s~=x);
ErrorNum3_S=ErrorNum3_S+(l3_s~=x);
ErrorNum4_S=ErrorNum4_S+(l4_s~=x);
ErrorNum5_S=ErrorNum5_S+(l5_s~=x);
end
BER1_M(SNRIndex)=ErrorNum1_M/TotalBit1;
BER2_M(SNRIndex)=ErrorNum2_M/TotalBit1;
BER3_M(SNRIndex)=ErrorNum3_M/TotalBit1;
BER4_M(SNRIndex)=ErrorNum4_M/TotalBit1;
BER5_M(SNRIndex)=ErrorNum5_M/TotalBit1;
BER1_E(SNRIndex)=ErrorNum1_E/TotalBit1;
BER2_E(SNRIndex)=ErrorNum2_E/TotalBit1;
BER3_E(SNRIndex)=ErrorNum3_E/TotalBit1;
BER4_E(SNRIndex)=ErrorNum4_E/TotalBit1;
BER5_E(SNRIndex)=ErrorNum5_E/TotalBit1;
2025年分集合并 来自淘豆网m.daumloan.com转载请标明出处.