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

📄 dpsk_fading.m

📁 瑞利衰落信道下
💻 M
字号:

function [avg_ber, snr_db] = DPSK_fading(max_doppler, sample_freq, ...
    NF, NUM_FRAMES, SNR_POINTS);

% gives the BER for a given Doppler and a range of SNR_POINTS
%inputs: max_doppler (Hz), sample_freq (symbols/sec),
% NF number of bits per frame, 
% NUM_FRAMES number of frames of each of size NF bits,
% SNR_POINTS number different SNR points

%outputs: avg_ber -- vector of size SNR_POINTS,
% snr_db -- vector of size SNR_POINTS

seed=15; %some arbitrary seed for random number generator
initial_time=3.2323; %arbitrary start time for jakes generator in seconds

for isnr=1:SNR_POINTS
    avg_ber(isnr)=0;
end
    
for iframe=1:NUM_FRAMES
    iframe
    
    %get the bit generator
    a_k = bit_gen(NF, seed);
    
    %bit-to-symbol mapper 
    d_k = QPSK_Gray(a_k, NF/2);
    
    %differentail encoder
    c_k = diff_enc(d_k, NF/2);
    
    %generate the fades
    [alpha, end_time] = jakes_HW3(max_doppler, sample_freq, NF/2, ...
        initial_time);
    initial_time = end_time;
    
    for isnr=1:SNR_POINTS;
        snr_db(isnr)=(isnr-1)*3+10;
        
        
        %channel output 
        x_k = channel(c_k, alpha, snr_db(isnr), NF/2);
        
        % differential decoder
        z_k = diff_dec(x_k, NF/2);
        
        % symbol-to-bit demapper
        ahat = symbol_to_bit(z_k, NF/2);
        
        % BER computation
        ber = ber_compute(a_k, ahat, NF);
        avg_ber(isnr) = ber/iframe + avg_ber(isnr)*(iframe-1)/iframe
        
        
    end
       
end
    









⌨️ 快捷键说明

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