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

📄 bpsk_fading.m

📁 Single/Multipath Channel Model Verificaiton EbNo vs. BER/SER under AWGN BPSK vs. QPSK Theory vs.
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% File Name: bpsk_fading.m
% Function: bpsk fading simulation
% Author: 
% Date: 11.29
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fading Initialization %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
v=0;         % v: speed of MS (km/h)
%v=120;
fc=2e9;                
c=3e8; 
fd=1000*fc/c/3600; % v=0
%fd=1000*v*fc/c/3600; % calculate maximum Doppler frequency
fs=10*fd;    
tstp=1/fs;   % minimum time resolution
no=16;       % number of oscillator
counter=1000;% fading counter
flat = 1; % flat fading

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Eb_N0=0:5:30; % 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);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fading %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    [ifade,qfade] = fade(data1,zeros(1,length(data1)),nd,tstp,fd,no,counter,flat);
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% AWGN %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

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

    demodata=data3 > 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;
    SNR(i) = 10*log10(10.^(Eb_N0(i)/10) ./ ml);
    
end % for i=1:10

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Output SNR %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

semilogy(SNR,Avg_BER,'r-*');
title('BPSK(Flat Fading)'); 
xlabel('SNR(dB)');
ylabel('BER');
grid on;
hold on;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% End %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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