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

📄 bpsk.asv

📁 Single/Multipath Channel Model Verificaiton EbNo vs. BER/SER under AWGN BPSK vs. QPSK Theory vs.
💻 ASV
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% File Name: 
% Function:
% Author: 
% Date: 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Preparation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

sr=256000.0; % symbol rate
ml=1;        % number of modulation levels (BPSK:ml=1)
br=sr .* ml; % bit rate
nd = 1000;   % number of symbols
nloop=1000;  % number of simulation loops

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Eb_N0=0:1:10; % Eb/No

for i=1:length(Eb_N0)
    
    BER = 0;
    noe = 0;    % number of error bit
    nod = 0;    % number of transmitted bit
    soe = 0;    % number of error symbol
    sos = 0;    % number of transmitted symbol
    total = 0;
    
    for ii=1:nloop
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Data Generation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  

	data=rand(1,nd)>0.5;  
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Modulation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  

    data1=data.*2-1;
     
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Attenuation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	
    spow=sum(data1.*data1)/nd;
	attn=0.5*spow*sr/br*10.^(-Eb_N0(i)/10);
	attn=sqrt(attn);
   
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% AWGN %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    inoise=randn(1,length(data1)).*attn;  
	data2=data1+inoise;    
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Demodulation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    demodata=data2 > 0;
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BER %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    noe2=sum(abs(data-demodata));  
	nod2=length(data);  
	noe=noe+noe2;
	nod=nod+nod2;
    
    total = total+ noe/nod;
       
    end % for ii=1:nloop   
    
    Avg_BER(i) = total/nloop;
    Theory(i) = (1/2) * erfc(sqrt(10.^(Eb_N0(i)/10)));
    SNR(i) = 10*log10(10.^(Eb_N0(i)/10) ./ ml);
    
end % for i=1:10
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SER = Avg_BER; 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Output EbN0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure;clf;
semilogy(Eb_N0,Avg_BER,'b-o');
title('BPSK EbN0 vs. BER/SER (AWGN)'); 
xlabel('Eb/N0(dB)');
ylabel('BER/SER');
grid on;
hold on;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Theorectical BER %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% semilogy(Eb_N0,Theory,'r-*');

% semilogy(Eb_N0,SER,'r-*');
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Output SNR %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% figure;clf;
% semilogy(SNR,Avg_BER,'b-o');
% title('BPSK SNR vs. BER/SER (AWGN)'); 
% xlabel('SNR(dB)');
% ylabel('BER/SER');
% grid on;
% hold on;
% 
% semilogy(SNR,SER,'r-*');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% End %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -