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

📄 qpsk.asv

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


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Preparation part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

sr=256000.0; % symbol rate
ml=2;        % number of modulation levels (QPSK:ml=2)
br=sr .* ml; % bit rate
nd = 1000;   % number of symbols that simulates in each loop
Eb_N0=0:1:10;% Eb/N0
nloop=10;    % number of simulation loops

for i=1:length(Eb_N0)
    
    noe = 0;    % number of error data
    nod = 0;    % number of transmitted data
    soe = 0;    % number of error symbol
    sos = 0;    % number of transmitted symbol
    totalb = 0;
    totals = 0;
    
    for ii=1:nloop
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Data Generation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
	
    data1=rand(1,nd*ml)>0.5;
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% QPSK Modulation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  

    [ich,qch]=qpskmod(data1,nd,ml);
     
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Attenuation Calculation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	
    spow=sum(ich.*ich+qch.*qch)/nd;  
	attn=0.5*spow*sr/br*10.^(-ebn0/10);
	attn=sqrt(attn); 
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% AWGN %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	
    [ich2,qch2]= qpskawgn(ich,qch,attn);
        
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% QPSK Demodulation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    [demodata]=qpskdemod(ich2,qch2,nd,ml);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BER %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    noe2=sum(abs(data1-demodata));
	nod2=length(data1); 
	noe=noe+noe2;
	nod=nod+nod2;
	totalb = totalb + noe/nod;
    
    soe = soe + qpskser(data1,demodata,ml);
    sos = sos + length(data) ./ ml;
    totals = totals + soe/sos;
    
    end % for ii=1:nloop   
    
    Avg_BER(i) = totalb/nloop;
    
end

SNR = Eb_N0 .* ml;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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;

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 + -