discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Questions on some formulas used in ofdm_frame_equaliz


From: Frank Restuccia
Subject: [Discuss-gnuradio] Questions on some formulas used in ofdm_frame_equalizer_vcvc_impl.cc
Date: Fri, 3 Nov 2017 11:31:37 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0

Hi everybody,

I was checking out the code of the OFDM Frame Equalizer block to see how we perform equalization on OFDM.

Everything looks clear, however two formulas are a bit obscure to me (file is ofdm_frame_equalizer_vcvc_impl.cc):

1) Lines 146-153:

// Correct the frequency shift on the symbols
gr_complex phase_correction;
for (int i = 0; i < frame_len; i++) {
    phase_correction = gr_expj(-M_TWOPI * carrier_offset * d_cp_len / d_fft_len * (i+1));
    for (int k = 0; k < d_fft_len; k++) {
          out[i*d_fft_len+k] *= phase_correction;
    }
}

What is the rationale behind gr_expj(-M_TWOPI * carrier_offset * d_cp_len / d_fft_len * (i+1))?

Why i+1? Why is the cp_len involved in equalization?

1) Lines 160-164:

// Update the channel state regarding the frequency offset
phase_correction = gr_expj(M_TWOPI * carrier_offset * d_cp_len / d_fft_len * frame_len);
for (int k = 0; k < d_fft_len; k++) {
    d_channel_state[k] *= phase_correction;
}

Again, what is the meaning of gr_expj(M_TWOPI * carrier_offset * d_cp_len / d_fft_len * frame_len)?

Why the positive sign here (the previous phase compensation was negative)?

Thank you very much in advance for your help.

Frank


reply via email to

[Prev in Thread] Current Thread [Next in Thread]