diff options
Diffstat (limited to 'gr-digital/lib/ofdm_equalizer_simpledfe.cc')
-rw-r--r-- | gr-digital/lib/ofdm_equalizer_simpledfe.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gr-digital/lib/ofdm_equalizer_simpledfe.cc b/gr-digital/lib/ofdm_equalizer_simpledfe.cc index 8f518aa454..9483683a25 100644 --- a/gr-digital/lib/ofdm_equalizer_simpledfe.cc +++ b/gr-digital/lib/ofdm_equalizer_simpledfe.cc @@ -90,10 +90,10 @@ namespace gr { if (!d_occupied_carriers[k]) { continue; } - if (d_pilot_carriers.size() && d_pilot_carriers[d_pilot_carr_set][k-d_carr_offset]) { + if (!d_pilot_carriers.empty() && d_pilot_carriers[d_pilot_carr_set][k]) { 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-d_carr_offset]; - frame[i*d_fft_len+k] = d_pilot_symbols[d_pilot_carr_set][k-d_carr_offset]; + + (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); @@ -101,7 +101,9 @@ namespace gr { frame[i*d_fft_len+k] = sym_est; } } - d_pilot_carr_set = (d_pilot_carr_set + 1) % d_pilot_carriers.size(); + if (!d_pilot_carriers.empty()) { + d_pilot_carr_set = (d_pilot_carr_set + 1) % d_pilot_carriers.size(); + } } } |