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

📄 receiver.m

📁 ofdm系统仿真
💻 M
字号:
%Receiver
function [data_bits, rx_bits] = receiver(rx_signal, cir, sys_parm)
    %Packet search    
    [rx_signal, thres_idx] = rx_find_packet_edge(rx_signal, sys_parm);
    
    %Frequency error estimation and correction
    rx_signal = rx_frequency_sync(rx_signal, thres_idx, sys_parm);
    
    %Fine time synchronization
    fine_time_est = rx_fine_time_sync(rx_signal, sys_parm);
%     fprintf('Fine time estimation is : %d\n', fine_time_est + thres_idx);
    
    %Time synchronized signal
    sync_time_signal = rx_signal(fine_time_est: length(rx_signal));
    
    %FFT operation, downsample and separate the data
    [freq_tr_syms, freq_data_syms, freq_pilot_syms] = rx_timed_to_freqd(sync_time_signal, sys_parm);
    
    %Channel estimation
    channel_est = rx_estimate_channel(freq_tr_syms, cir, sys_parm);
    
    %Phase tracker, returns phase error corrected symbols
    freq_data_syms = rx_phase_tracker(freq_data_syms, freq_pilot_syms, channel_est, sys_parm);
    
    %Channel equalization
    freq_data_syms = rx_channel_equalization(freq_data_syms, channel_est, sys_parm);
    
    %Demodulate
    rx_bits = rx_demodulate(freq_data_syms, sys_parm);
    
    %Define trellis.   
    trellis = poly2trellis(7, [155 171]);  
    %Traceback length for decoding
    tb = 10; 
    %Decode.
    data_bits = vitdec(rx_bits, trellis, tb,'trunc','hard'); 
end

⌨️ 快捷键说明

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