📄 af3.asv
字号:
%29/8/2008 ZHANGSONG%根据论文《AF三跳协作分集...》编写仿真程序%===========================================function BER=vzQsd=sqrt(10^(Dsd/10));Qs1=sqrt(10^(Ds1/10));Q12=sqrt(10^(D12/10));Q2d=sqrt(10^(D2d/10)); N=10240;max_snr=25;BER=zeros(1,max_snr);ber=zeros(1,max_snr);for SNR=0:max_snr %噪声归一化 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); Ns1=sqrt(N0)*(randn+j*randn); N12=sqrt(N0)*(randn+j*randn); N2d=sqrt(N0)*(randn+j*randn); %信道增益 Hsd=Qsd*(randn+j*randn); Hs1=Qs1*(randn+j*randn); H12=Q12*(randn+j*randn); H2d=Q2d*(randn+j*randn); %优化功率分配算法 %============================= A=(Q2d+Q12)^2*Q12*Qs1^2; B=Q2d^2*Q12^3; if A~=B Es=(A-4*B+sqrt(A^2+8*A*B))/(4*(A-B)); else Es=2/3; end E1=Q2d/(Q2d+Q12)*(1-Es); E2=1-E1-Es; %=============================== %协作节点的放大增益 %=============================== B1=sqrt(E1/(Es*Hs1^2+N0)); B2=sqrt(E2/(E1*H12^2+N0)); %=============================== %最大合并比加权因子计算 A0=sqrt(Es)*conj(Hsd)/N0; A1=sqrt(Es)*B1*B1*conj(Hs1)*conj(H12)*conj(H2d)/... (B1^2*B2^2*abs(H12)^2*abs(H2d)^2+B2^2*abs(H2d)^2+1)/N0; %接收信号 Y1=sqrt(Es)*X(i)*Hs1+Ns1; Y2=B1*Y1*H12+N12; % Y=A0*(sqrt(Es)*X(i)*Hsd+Nsd)+A1*(B2*Y2*H2d+N2d); Y=A0*(sqrt(Es)*X(i)*Hsd+Nsd)+A1*(B2*Y2*H2d+N2d); %解调 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,'r');%hold onsemilogy(0:max_snr,ber);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -