FA-91682 / Digital signal filters / Member archive
Resampling plan swaps the interpolation and decimation factors · case 02
48 kHz to 44.1 kHz is planned as up 160, down 147 instead of up 147, down 160.
Case contract
Input [fin, fout, rolloff] (positive integer rates, rolloff in (0, 1]). Reduce fout/fin to up/down = L/M by gcd, intermediate rate = fin L, anti-alias cutoff = min(fin, fout)/2 * rolloff in Hz and normalized to the intermediate Nyquist. Return {"up", "down", "intermediate_rate", "cutoff_hz", "cutoff_norm"} or "bad-spec".
Why this case matters
Sample-rate converters are planned from these numbers; a wrong cutoff reference aliases or dulls the output.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: upsample by 2 | {"cutoff_hz": "3200", "cutoff_norm": "4/5", "down": 2, "intermediate_rate": 8000, "up": 1} | {"cutoff_hz": "3200", "cutoff_norm": "2/5", "down": 1, "intermediate_rate": 16000, "up": 2} | 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 ↗