On Thu, Sep 4, 2014 at 11:29 AM, Tiankun Hu <[email protected]> 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
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio