diff options
-rw-r--r-- | gr-digital/lib/lms_dd_equalizer_cc_impl.cc | 6 | ||||
-rw-r--r-- | gr-digital/lib/ofdm_equalizer_simpledfe.cc | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gr-digital/lib/lms_dd_equalizer_cc_impl.cc b/gr-digital/lib/lms_dd_equalizer_cc_impl.cc index 530b3aa6fd..296d8feb13 100644 --- a/gr-digital/lib/lms_dd_equalizer_cc_impl.cc +++ b/gr-digital/lib/lms_dd_equalizer_cc_impl.cc @@ -86,6 +86,12 @@ namespace gr { lms_dd_equalizer_cc_impl::error(const gr_complex &out) { gr_complex decision, error; + // The `map_to_points` function will treat `decision` as an array pointer. + // This call is "safe" because `map_to_points` is limited by the + // dimensionality of the constellation. This class calls the + // `constellation` class default constructor, which initializes the + // dimensionality value to `1`. Thus, Only the single `gr_complex` value + // will be dereferenced. d_cnst->map_to_points(d_cnst->decision_maker(&out), &decision); error = decision - out; return error; diff --git a/gr-digital/lib/ofdm_equalizer_simpledfe.cc b/gr-digital/lib/ofdm_equalizer_simpledfe.cc index 9e1ac4e349..f618ba5657 100644 --- a/gr-digital/lib/ofdm_equalizer_simpledfe.cc +++ b/gr-digital/lib/ofdm_equalizer_simpledfe.cc @@ -96,6 +96,12 @@ namespace gr { 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]; + // The `map_to_points` function will treat `sym_est` as an array + // pointer. This call is "safe" because `map_to_points` is limited + // by the dimensionality of the constellation. This class calls the + // `constellation` class default constructor, which initializes the + // dimensionality value to `1`. Thus, Only the single `gr_complex` + // value will be dereferenced. 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; |