On Thu, Sep 4, 2014 at 11:29 AM, Tiankun Hu <tiankun...@foxmail.com> wrote:
> Hi Aditya, > What's use of pilot symbols in "ofdm_equalizer_simpledfe" ? > I just found pilot symbols update their carrier's channel state, but > didn't find what's the use of these pilot channel state, seems them has no > relate with data symbol, data symbol also only use themselves to update > channel state. > > > for (int i = 0; i < n_sym; i++) { > for (int k = 0; k < d_fft_len; k++) { > if (!d_occupied_carriers[k]) { > continue; > } > if (!d_pilot_carriers.empty() && > d_pilot_carriers[d_pilot_carr_set][k]) { > ======> //didn't find any use of these channel state in pilot > carriers <========= > //seems has not relate with data symbol > d_channel_state[k] = d_alpha * > d_channel_state[k] > + (1-d_alpha) * frame[i*d_fft_len + k] > / d_pilot_symbols[d_pilot_carr_ > set][k]; > frame[i*d_fft_len+k] = > d_pilot_symbols[d_pilot_carr_set][k]; > } else { > sym_eq = frame[i*d_fft_len+k] / > d_channel_state[k]; > d_constellation-> > map_to_points(d_constellation-> > decision_maker(&sym_eq), > &sym_est); > d_channel_state[k] = d_alpha * > d_channel_state[k] > + (1-d_alpha) * frame[i*d_fft_len + k] / > sym_est; > frame[i*d_fft_len+k] = sym_est; > } > } > if (!d_pilot_carriers.empty()) { > d_pilot_carr_set = (d_pilot_carr_set + 1) % > d_pilot_carriers.size(); > } > } Hello Tiankun, That's a good question. The answer depends on how you want to implement DFE -- and there are a couple of options. a) Ignore pilots altogether. This is what I had described in my earlier email. b) Since pilots are known symbols, if a pilot is encountered, the new channel estimate will always be correct. We know the received symbol r_i and the expected symbol E_i, so it is trivial to calculate the channel estimate H_i. However if you ignore the pilots, then Doppler or residual CFO can make the decoding on a non-pilot symbol incorrect, leading to an incorrect estimate of H_i propagating to all subsequent symbol indices on that subcarrier 'i'. Hope that helps. Best, Aditya
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio