FAILURE MAP
← Case archive

FA-91794 / Digital signal filters / Member archive

Q15 FIR shifts each product before accumulating · case 04

Many small products each truncate to zero or -1, biasing the output.

Member previewVariant 4 · 3 implementations · 7 checks per implementation

Case contract

Input [coeffs, samples] as Q15 integers. Each output accumulates the full-precision products c_k x[n-k] (zero history) in a wide accumulator, then rounds once (add 2**14, arithmetic shift 15) and saturates to int16. Return {"y": outputs, "saturations": number of clipped outputs}.

Why this case matters

DSP MAC units keep guard bits and round once; per-product rounding or missing overflow accounting degrades fixed-point FIRs.

One recorded failure

Sample boundary fixture

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

Boundary fixtureActualExpectedOutcome
regression: random q15 fir 7{"saturations": 0, "y": [11, 290, -32, -258]}{"saturations": 0, "y": [11, 291, -31, -257]}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 ↗