该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
MRC合并
clear, clf
L_frame=130; N_packet=4000; %130个编码后符号,仿真4000组
b=2; % 1/2/3/4 for BPSK/QPSK/16QAM/64QAM
SNRdBs=[0:2:20]; sq2=sqrt(2);
for iter=1:3
if iter==1, NT=1; NR=1; gs='-kx'; % SISO,黑色x
elseif iter==2, NT=1; NR=2; gs='-^'; % 1发2收,倒三角
else NT=1; NR=4; gs='-ro'; % 1发4收,红色圈
end
sq_NT=sqrt(NT);
for i_SNR=1:length(SNRdBs)
SNRdB=SNRdBs(i_SNR); sigma=sqrt(0.5/(10^(SNRdB/10))); %瑞利分布参数,噪声标准差
for i_packet=1:N_packet
symbol_data=randint(L_frame*b,NT); %产生L_frame*b行NT列二进制信息
[temp,sym_tab,P]=modulator(symbol_data.',b); %调制
X=temp.'; %X为调制后序列(L_frame行1列)
Hr = (randn(L_frame,NR)+j*randn(L_frame,NR))/sq2; %瑞利信道衰落系数
H = reshape(Hr,L_frame,NR); %重置Hr行列(L_frame行NR列)
Habs =sum(abs(H).^2,2);
Z=0;
for i=1:NR
R(:,i) = sum(H(:,i).*X,2)/sq_NT +sigma*(randn(L_frame,1)+j*randn(L_frame,1)); %经过信道并加复高斯白噪声
Z = Z + R(:,i).*conj(H(:,i)); %MRC合并,合并系数为conj(H(:,i))
end
for m=1:P %最大似然译码
d1(:,m)=abs(sum(Z,2)-sym_tab(m)).^2+(-1+sum(Habs,2))*abs(sym_tab(m))^2;
end
[y1,i1] =min(d1,[],2); Xd=sym_tab(i1).';
temp1 = X>0; temp2 = Xd>0;
noeb_p(i_packet)=sum(sum(temp1~=temp2)); %累加错误比特
end
BER(iter,i_SNR) =sum(noeb_p)/(N_packet*L_frame*b); %计算误比特率
end %循环结束
semilogy(SNRdBs,BER(iter,:),gs), hold on, axis([SNRdBs([1end]) 1e-6 1e0]) %画图
end
title('BER perfoemancde of MRC Scheme'), xlabel('SNR[dB]'), ylabel('BER')
grid on, set(gca,'fontsize',9)
legend('SISO','MRC(Tx:1,Rx:2)','MRC(Tx:1,Rx:4)')