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

📄 rx_phase_tracker.m

📁 ofdm系统仿真
💻 M
字号:
%Phase tracker, returns phase error corrected symbols
function corrected_syms = rx_phase_tracker(freq_data_syms, freq_pilot_syms, channel_est, sys_parm)

    global ofdm_data_parm_var;
    
    ofdm_data_parm_var.Index = 0;
    
    if sys_parm.PilotPhaseTracking    
        
        correction_phases = zeros(size(freq_data_syms));
        
        %Estimate the phase change using the pilots
        for n = 1 : sys_parm.NumOFDMSymbols
            update_ofdm_data_parm_var;
            
            if ofdm_data_parm_var.HavePilot
                correction_phases(n, :) = angle(sum(freq_pilot_syms(n, ofdm_data_parm_var.PilotSubcIdx) ./ channel_est(ofdm_data_parm_var.PilotSubcIdx) ...
                    ./ ofdm_data_parm_var.PilotSymbol));
            else
                if n > 1
                    correction_phases(n, :) = correction_phases(n - 1, :);
                end
            end
        end
        
        %Correct symbol using the phase estimate of this one OFDM symbol
        corrected_syms = exp(- j * correction_phases) .* freq_data_syms;        
    else
        corrected_syms = freq_data_syms;
    end
end

⌨️ 快捷键说明

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