📄 bpsk1.m
字号:
global speed
Max_SNR=20;
ber_m=[];
N_trial=1000;
N=256;
Eb=1;
for trial=1:N_trial
trial
%______________________________________________________
% the channel
fs=20.*1e+6;
Ts=1./fs;
Fc=2.4*1e+9;
c=3*10.^8;
lambda=c./Fc;
speed=10; %km/h
fd=(speed./3.6)./lambda;
NN=25;
N_path=1;
k_user=1;
rayleigh_parameter=rayleigh_init_med(NN,lambda,Ts);
Envelope_M=[];
for k=1:k_user
for path=1:N_path;
%fad=flat(N,fd,fs);
fad= rayleigh_fading(path,rayleigh_parameter,N);
rmsfad=sqrt(mean(abs(fad).^2));
envelope=abs(fad);
Envelope_M=[Envelope_M;envelope];
end
end
msg=round(rand(1,N)); % 1, 0 sequence
s=1-msg.*2; %0---1, 1-- -1
n=randn(1,N)+j.*randn(1,N);
ber_v=[];
for snr_db=1:2:Max_SNR
snr=10.^(snr_db./10);
No=Eb./snr;
sgma=sqrt(No./2);
y=sqrt(Eb).*Envelope_M.*s+sgma.*n;
y1=sign(real(y));
y2=(1-y1)./2; % 1, 0 sequence
error=sum(abs( msg- y2));
ber_snr=error./(N);
ber_v=[ber_v,ber_snr];
end
ber_m=[ber_m;ber_v];
end
ber=mean(ber_m);
%ber_theory=[];
%for snr_db=1:2:Max_SNR
% snr=10.^(snr_db./10);
% snr_1=qfunct(sqrt(2*snr));
% ber_theory=[ber_theory,snr_1];
%end
ber_theory=[];
for snr_dB=1:2:Max_SNR;
snr=10.^(snr_dB./10); %from snr_db to snr_nondB
ber_theory=[ber_theory,(1-sqrt(snr/(1+snr)))./2];
end
i=1:2:Max_SNR;
semilogy(i,ber,'-r',i,ber_theory,'*b');
xlabel('E_b/N_0 (dB)')
ylabel('BER')
legend('Monte Carlo', 'Theoretic')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -