%1发2收,ML-MRC合并和DS单点合并比较
clear all;
close all;
BeginSNR = 0; %起始SNR
SNRdis = 2; %SNR间隔
SNRNum = 11; %SNR数目
BlockNum = 1000; %块数目
BitNum = 100; %每块比特数
snr_in_db = zeros(1,SNRNum);
errNum = zeros(1,SNRNum);
for ii = 1:SNRNum
snr_in_db(1,ii) = BeginSNR+SNRdis*(ii-1); %snr_in_dB向量
snr = 10^(snr_in_db(1,ii)/10); %SNR换算
for jj = 1:BlockNum
Bit = randsrc(1,BitNum,[1 -1;0.5 0.5]); %比特序列
H = randn(2,1); %信道
sigPow = norm(H)^2; %接收信号总能量
RSignal = H*Bit+sqrt(sigPow/snr/2)*randn(2,BitNum); %接收信号
MRC_Dec = H(1,1)*RSignal(1,:)+H(2,1)*RSignal(2,:); %MRC判决门限
MRC_Out = MRC_Dec./abs(MRC_Dec); %MRC判决结果
errMRC = sum(sum(abs(Bit-MRC_Out)));%MRC判决错误统计
errNum(1,ii) = errNum(1,ii)+errMRC; %对块累加错误数目
end
errNum(1,ii)=errNum(1,ii)/(BlockNum*BitNum); %错误概率计算
end
P1=semilogy(snr_in_db,errNum(1,:),'b-o'); %蓝线表示MRC
hold on;
legend('MRC');