📄 af2.m
字号:
Dsd=5;%db数
Dsr=4;
Drd=1;
Qsd=sqrt(10^(Dsd/10));
Qsr=sqrt(10^(Dsr/10));
Qrd=sqrt(10^(Drd/10));
N=10000;
max_snr=25;
%snr=0:0.5:max_snr;
BER=zeros(1,max_snr);
ber=zeros(1,max_snr);
%m=0;
for SNR=0:max_snr
% m=m+1;
%噪声归一化
N0=1/(10^(SNR/10)); %N0为方差
x=rand(1,N)>0.5;
X=QpskMapping(x);
Xd=[];
M=length(X);
for i=1:M
%产生高斯白噪声
Nsd=sqrt(N0)*(randn+j*randn);
Nsr=sqrt(N0)*(randn+j*randn);
Nrd=sqrt(N0)*(randn+j*randn);
%信道增益
Hsd=Qsd*(randn+j*randn);
Hsr=Qsr*(randn+j*randn);
Hrd=Qrd*(randn+j*randn);
%=============================
Es=1;
Er=1;
%===============================
%协作节点的放大增益
%===============================
B=sqrt(Es/(abs(Qsr)^2*Es+Nsr));
%===============================
%最大合并比加权因子计算(第i个支路的可变增益加权系数为该分集之路的信号幅度与噪声功率之比)
A0=sqrt(Es)*conj(Hsd)/N0;
A1=sqrt(Es)*B*conj(Hsr)*conj(Hrd)/...
((B^2*(abs(Hsr))^2+1)*N0);
%接收信号
Ysr=sqrt(Es)*Hsr*X(i)+Nsr;
Yrd=sqrt(Er)*Hrd*Ysr*B+Nrd;
Ysd=sqrt(Es)*Hsd*X(i)+Nsd;
Y=A0*Ysd+A1*Yrd;
%解调
dh = [1+j -1+j -1-j 1-j]/sqrt(2);
D1=abs(Y*[1 1 1 1]-dh).^2;
[minScale1 positionmin1]=min(D1);
Xd=[Xd dh(positionmin1)];
end
xd=QpskInverseMapping(Xd);
err1=(x==xd);
tot_err1=0;
for i=1:N
if err1(i)==0
tot_err1=tot_err1+1;
end
end
BER(SNR+1)=tot_err1/N;
%理论值
%ber(SNR+1)=(3/8)*N0^2*(1/(Es^2*Qsd^2*Qs1^2)+1/(Es*E1*Qsd^2*Q12^2)+1/(Es*E2*Qsd^2*Q2d^2));
end
semilogy(0:max_snr,BER,'b:h');
hold on;
grid on;
%semilogy(0:max_snr,ber,'r-o');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -