FAILURE MAP
← Case archive

FA-91483 / Digital signal filters / Member archive

Q15 smoother divides with truncation toward zero · case 03

Negative updates round differently from positive ones, producing an asymmetric limit cycle.

Member previewVariant 3 · 3 implementations · 7 checks per implementation

Case contract

Input [alpha, samples]; alpha is Q15 in [0, 32768] ("bad-alpha" otherwise). Inputs are saturated to int16; y += ((x - y) * alpha + 2**14) >> 15 (round half up on the Q15 product via arithmetic shift), starting at y = 0. Return the integer outputs.

Why this case matters

Fixed-point exponential smoothers run on microcontrollers; rounding direction and saturation slips cause bias and limit cycles.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
regression: random smoother 6[4074, 3057, 2099, 5077][4074, 3056, 2097, 5075]Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗