1、 %设置每个循环中的符号数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
2、=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; %计算组合后的价值%* 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;%在
3、两个不相关的信道下的信号进行组合% 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),+- semilogy(snr_in_dB,0.5.*(1
4、-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 BPSKtheory reyleigh );BPSKEGC.m注释 % 设置循环次数 % 错误数量 % 传输数量%衰减量的计算%瑞利信道下 h11=conj(h1)./abs(h1); %取信道质量指数的单位向量 %计算组合后在信道1下的价值 %瑞利信道 h22=conj(h2)./abs(h2);%BPSK 解调%误码率计算%结果输出ber1(sn
5、r_num) = noe/nod semilogy(snr_in_dB,ber1,simulation BPSK EGC L=2BPSKSEL.m注释snr_in_dB=0:15;for k=1: kN=10000;E=1;SNR=10(snr_in_dB(k)/10);sigma=E/sqrt(2*SNR);for i=1:N a=rand;if(a0.5) data(i)=-1;else data(i)=1;numofber=0;totolnumber=0;while numofber1 totolnumber=totolnumber+1;H1 =1/sqrt(2)*rand + j*ra
6、nd; %第一个瑞利信道H2 =1/sqrt(2)*rand + j*rand; %第二个瑞利信道H=H1;H2;y1=H(1)*data(i)+sigma*(rand + j*rand); %在第一个信道下计算数据y2=H(2)*data(i)+sigma*(rand + j*rand); %在第二个信道下计算数据y=abs(y1),abs(y2);s=max(y); %选择其中最大的数据if (s=abs(y2) s=y2/H2;else s=y1/H1;enddata2=sign(real(s);if (data2=data(i) numofber=numofber+1; %计算误比特率
7、p(k)=numofber/(N*totolnumber); %计算误码率 semilogy(snr_in_dB,p,simulation BPSK SEL L=2 (b)观察信噪比变化10dB,误比特率变化多少?MRC误比特率变化:0.0588-0.0017=0.0571EGC误比特率变化:0.0650-0.0018=0.0632SEL 误比特率变化:0.1733-0.0030=0.1703 (c)程序中给出的是2分集,将其换为3分集,观察信噪比变化10dB,误比特率变化多少?MRC 误比特率变化:0.0248-0.0001=0.0247EGC 误比特率变化:0.0330-0.0002=0.
8、0328SEl 误比特率变化:0.1780-0.0003=0.1777 (d)将最大比合并和等增益合并及选择式合并的误比特率曲线,画在一张图上,比较这三种合并方法的优劣。由图可得,MRC方法所得到的误码率是最小的,性能也最稳定;EGC方法在误码率和稳定性方面次之;SEL方法在同一SNR下得到的误码率最高,而且稳定性很差,有时候能够得到比MRC、EGC更低的误码率,有时候就不行,增大SNR只能使BER总体趋向下降,不保证增大SNR就能直接降低BER。二、调制解调仿真现给出bpsk、qpsk及“书上习题”的调制解调程序,理解各程序,完成以下习题。1.用matlab运行书上习题中的“bpskqpsk
9、125.m”(a)说明bpsk、qpsk解调判决方法答:由该m文件可得,其中的判决设置为:BPSK:if a (zero mean)noise sample is larger than sqrt(Eb) a wrong decsion is made.如果一个噪声的样值比平均比特能量大的话,那么就会产生错误的判决。QPSK:if the constellation point angle is within pi/4 ang -pi/4 a corerect decision is made.如果星座点上的角偏差在pi/4和-pi/4之间的话,判决就正确了。(b)误比特率为1e-2、1e-3及1e-4时的Eb/N0分别是多少?运行该程序,可以得出如下的图像:当误
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1