?? af3.m
字號:
%29/8/2008 ZHANGSONG%根據論文《AF三跳協作分集...》編寫仿真程序%===========================================function BER=AF3(Dsd,Ds1,D12,D2d)Qsd=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 + -