发布时间 : 星期一 文章分集+均衡作业更新完毕开始阅读
《matlab分集+均衡》实验报告
姓 名 李聪 学 号 11211060 指导教师 姚冬萍 时 间 2014年5月25日
分集matlab作业
现给出最大比合并(MRC)、等增益合并(EGC)和选择性合并的分集合并程序,理解各程序,完成以下习题。将程序运行结果及各题目的解答写入word中:
1. 用matlab分别运行“BPSKMRC.m”、“BPSKEGC.m”以及“BPSKSEL.m” (a)在程序中标注“注释”处加上注释(英文或中文)
MRC
% bpsk.m
% Simulation program to realize BPSK transmission system
%******************** Preparation part ********************** nd = 10000; % Number of symbols that simulates in each loop snr_in_dB=[0:15] ;
ber=zeros(1,length(snr_in_dB));
for snr_num=1:length(snr_in_dB)
SNR=exp(snr_in_dB(snr_num)*log(10)/10);
%******************** START CALCULATION ********************* nloop=100; % Number of simulation loops noe = 0; % Number of error data
nod = 0; % Number of transmitted data
for iii=1:nloop
%******************** Data generation ********************************
data1=rand(1,nd)>0.5; data2=2.*data1-1;
%****************** Attenuation Calculation ***************** %****************** rayleigh channel *****************
code_rate=1; E=1;
sigma=E/sqrt(2*SNR*code_rate);
n =[randn(1,nd) + j*randn(1,nd)];
h1 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; % Rayleigh channel data41=data2.*h1+sigma.*n;
h11=conj(h1); %注释:根据测得的信号幅度相位得到各支路加权系数 data411 = data41.*h11; %注释:将各个支路信号调整为同相信号 %***************************************** n =[randn(1,nd) + j*randn(1,nd)];
h2 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; % Rayleigh channel data42=data2.*h2+sigma.*n; h22=conj(h2);
data422 =data42.*h22;
%*****************************************
data4=data411+data422;% 注释:各个已调为同相信号支路作相关电压的叠加
%******************** BPSK Demodulation *********************
demodata1=data4 > 0;
%******************** Bit Error Rate (BER) ******************
noe2=sum(abs(data1-demodata1)); nod2=length(data1); noe=noe+noe2; nod=nod+nod2;
end
%********************** Output result ***************************
ber(snr_num) = noe/nod
end;
%******************** end of file *************************** figure;
semilogy(snr_in_dB,ber,'O-'); hold on
semilogy(snr_in_dB,0.5*erfc(sqrt(2*10.^(snr_in_dB/10))/sqrt(2)),'+-'); hold on
semilogy(snr_in_dB,0.5.*(1-sqrt((10.^(snr_in_dB/10))./(10.^(snr_i
n_dB/10)+1))),'-'); ylabel('BER');
xlabel('E_b/N_0 [dB]');
legend('simulation BPSK MRC L=2','theory gngauss BPSK','theory reyleigh' );
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
EGC
% bpsk.m
% Simulation program to realize BPSK transmission system
%******************** Preparation part ********************** nd = 10000; % Number of symbols that simulates in each loop snr_in_dB=[0:15] ;
ber=zeros(1,length(snr_in_dB));
for snr_num=1:length(snr_in_dB)
SNR=exp(snr_in_dB(snr_num)*log(10)/10);
%******************** START CALCULATION ********************* nloop=100; % Number of simulation loops noe = 0; % Number of error data
nod = 0; % Number of transmitted data
for iii=1:nloop
%******************** Data generation ******************************** data1=rand(1,nd)>0.5; data2=2.*data1-1;
%****************** Attenuation Calculation ***************** %****************** rayleigh channel *****************
code_rate=1; E=1;
sigma=E/sqrt(2*SNR*code_rate); n =[randn(1,nd) + j*randn(1,nd)];
h1 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; % Rayleigh channel data41=data2.*h1+sigma.*n;
h11=conj(h1)./abs(h1); %注释:得到各个支路等增益合并的加权系数 data411 = data41.*h11; %注释:将支路信号调整为同相信号