分集+均衡作业 联系客服

发布时间 : 星期一 文章分集+均衡作业更新完毕开始阅读c994b597d5bbfd0a795673a3

%***************************************** 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)./abs(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 *************************** ber1(snr_num) = noe/nod end;

%******************** end of file *************************** 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' ); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

SEL

% close all; % clear all; % clc

snr_in_dB=0:15;

for k=1:length(snr_in_dB) k

N=10000; E=1;

SNR=10^(snr_in_dB(k)/10); sigma=E/sqrt(2*SNR); for i=1:N a=rand; if(a<0.5) data(i)=-1; else

data(i)=1; end end

numofber=0; totolnumber=0; while numofber<1

totolnumber=totolnumber+1; for i=1:N

H1 =1/sqrt(2)*[rand + j*rand]; %注释: 多径信道某一径的幅度和相位(多径信道某一径系数)

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; %注释:对信噪比最大的支路进行解调 end

data2=sign(real(s)); if (data2~=data(i))

numofber=numofber+1; %注释:计算得到误比特数 end end end

p(k)=numofber/(N*totolnumber); %注释:得到误比特率 end

figure;

semilogy(snr_in_dB,p,'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 SEL L=2','theory gngauss BPSK','theory reyleigh');

(b)观察信噪比变化10dB,误比特率变化多少?

EGC 信噪比从0变化成10db时候,误比特率从0.067变成了0.002,误比特率下降了97.01% SEL信噪比从0变化成10db时候,误比特率从0.1752变成了0.003,误比特率下降了98.29% MRC信噪比从0变化成10db时候,误比特率从0.0576变成了0.0016,误比特率下降了97.22% 从这些数据中,我们可以看出,分集的性能是MRC>EGC>SEL,且MRC与SEL在相同信噪比下误码率相差不大;在增加信噪比的时候SEL有显著提升,而MRC,EGC误码率也有比较大的提升,且当信噪比为10db的时候三种分集性能差别不大,说明在信道环境比较好的情况下,三种分集误码率基本上差不多;此外,实验还说明了MRC和EGC比SEL更能适应低信噪比的环境下。

(c)程序中给出的是2分集,将其换为3分集,观察信噪比变化10dB,误比特率变化多少?

EGC 信噪比从0变化成10db时候,误比特率从0.0331变成了2.19*10-4,误比特率下降了99.34%

SEL信噪比从0变化成10db时候,误比特率从0.1657变成了2.0*10-4,误比特率下降了99.88% MRC信噪比从0变化成10db时候,误比特率从0.0251变成了1.27*10-4,误比特率下降了99.49%.

相对比之前的二分集来说,在0db(低信噪比的环境下)三分集的性能要比二分集误码率差不多,三种分集方式误码率有比较大的差别,MRC的误码率大概是SEL的15%左右,EGC大概是19.97%,说明MRC,EGC适合低信噪比环境下,并且此时增加分集支路数对误码率影响不大;在10db环境下,误码率有显著下降,且三种分集差别不是太大,数量级都是10-4,且是二分集的10%左右。这些数据说明了,增加分集支路数在低信噪比的环境下对误码率的影响不大,此时分集方式是影响误码率的主要原因;而在高信噪比的条件下,分集方式对误码率影响不大,但是增加分集支路数能够很大程度改善瑞利信道下的误码率。

(d)将最大比合并和等增益合并及选择式合并的误比特率曲线,画在一张图上,比较这三种合并方法的优劣。

100 二分集误码率曲线simulation BPSK EGC L=2simulation BPSK MRC L=2simulation BPSK SEL L=210-1BER10-210-310 0-45Eb/N0 [dB]1015

simulation BPSK EGC L=2simulation BPSK MRC L=2simulation BPSK SEL L=2100三分集误码率曲线10-110-2BER10-310-410-510 0-65Eb/N0 [dB]1015

很显然,在低信噪比的环境下,MRC,EGC分集效果比SEL效果好得多,相对来说MRC和EGC差别不大,但是EGC实现起来要比MRC容易得多,因此在多数情况下使用EGC;在高信噪比的环境下,MRC,EGC,SEL分集误码率差别不大,但是当增加分集支路数,误码率则会很大程度地改善,由二分集到三分集误码率下降90%;此外我们可以看到,在信噪比增加的过程中,sel分集方式误码率出现了震荡,因此综合各个方面的因素来说,等增益合并EGC是相对来说比较好的一种选择。