⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bpsk1.m

📁 移动通信中BPSK调制的仿真
💻 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 + -