MATLAB仿真报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
无线通信
(MATLAB课后作业仿真)
姓名:
学院:
学号:
班级:
指导教师:
一、分集仿真
现给出最大比合并(MRC)、等增益合并(EGC)和选择性合并的分集合并程序,理解各程序,完成以下习题。将程序运行结果及各题目的解答写入word中:1. 用matlab分别运行“BPSKMRC.m”、“BPSKEGC.m”以及“BPSKSEL.m”
(a)在程序中标注“注释”处加上注释(英文或中文)
BPSKMRC.m注释
nd = 10000; %设置每个循环中的符号数
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);
nloop=100; % 循环次数
noe = 0; % 错误数
nod = 0; % 传输的数量
for iii=1:nloop
data1=rand(1,nd)>0.5;
data2=2.*data1-1;
%以下为衰减量的计算
%在瑞利信道下
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)]; % 瑞利信道
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)]; % 瑞利信道
data42=data2.*h2+sigma.*n;
h22=conj(h2);
data422 =data42.*h22;
%*****************************************
data4=data411+data422;%在两个不相关的信道下的信号进行组合
% BPSK 解调
demodata1=data4 > 0;
%误码率
noe2=sum(abs(data1-demodata1));
nod2=length(data1);
noe=noe+noe2;
nod=nod+nod2;
end
%输出结果
ber(snr_num) = noe/nod
end;
%结尾
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_in_dB/10)+1))),'-'); ylabel('BER');
xlabel('E_b/N_0 [dB]');
legend('simulation BPSK MRC L=2','theory gngauss BPSK','theory reyleigh' );
BPSKEGC.m注释
nd = 10000; %设置每个循环中的符号数
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);
nloop=100; % 设置循环次数
noe = 0; % 错误数量
nod = 0; % 传输数量
for iii=1:nloop
data1=rand(1,nd)>0.5;
data2=2.*data1-1;
%衰减量的计算
%瑞利信道下
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)]; % 瑞利信道
data41=data2.*h1+sigma.*n;
h11=conj(h1)./abs(h1); %取信道质量指数的单位向量
data411 = data41.*h11; %计算组合后在信道1下的价值
%*****************************************
n =[randn(1,nd) + j*randn(1,nd)];
h2 =1/sqrt(2)*[randn(1,nd) + j*randn(1,nd)]; %瑞利信道
data42=data2.*h2+sigma.*n;
h22=conj(h2)./abs(h2);
data422 =data42.*h22;
%*****************************************
data4=data411+data422;
%BPSK 解调
demodata1=data4 > 0;
%误码率计算
noe2=sum(abs(data1-demodata1));
nod2=length(data1);
noe=noe+noe2;
nod=nod+nod2;
end
%结果输出
ber1(snr_num) = noe/nod
end;
%结尾
figure;
semilogy(snr_in_dB,ber1,'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_in_dB/10)+1))),'-'); ylabel('BER');
xlabel('E_b/N_0 [dB]');
legend('simulation BPSK EGC L=2','theory gngauss BPSK','theory reyleigh' );