On Thu, Feb 6, 2014 at 11:58 AM, Douglas Geiger
<doug.gei...@bioradiation.net> wrote:
> I'll suggest that the generic kernel should be trusted to do the correct
> thing, or at least have the correct set of intentions, and that if you want
> to change the behavior of the generic kernel, that you are introducing a
> change that will break applications depending on this behavior.
>
> I believe the use of casting the subtraction before the comparison (where:
> ((int16_t) (src0[i] - src0[i + 1]) > 0) ? src0[i] : src0[i+1]; is the full
> comparison) was intentional to ensure overflow subtraction vs. saturation
> subtraction.

Assuming this kernel is used for some type of trellis decoding, the
overflow makes sense as it avoids the need for normalization of
accumulated metrics. It does, however, require that the spread of
input values be bounded for it to work. Otherwise, you have
comparisons between overflow values and non-overflow values, which
makes the comparison ambiguous and the output not-sane.

  -TT

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to