FAILURE MAP
← Case archive

FA-91696 / Digital signal filters / Open access

Resampling plan multiplies the input rate by the decimation factor · case 01

48 kHz to 44.1 kHz reports an intermediate rate of 7.68 MHz instead of 7.056 MHz.

Verified by executionVariant 1 · 7 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The intermediate rate is fin M instead of fin L.

VERIFIED REPAIR

The filter runs at fin L after zero-stuffing.

Unsuccessful approach: The attempted repair multiplies the higher of the two rates by L.

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.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(x):
    fin, fout, roll = x[0], x[1], Fraction(x[2])
    if fin <= 0 or fout <= 0 or not 0 < roll <= 1:
        return 'bad-spec'
    g = math.gcd(fin, fout)
    L, M = fout // g, fin // g
    inter = fin * M
    cutoff = Fraction(min(fin, fout), 2) * roll
    return {'up': L, 'down': M, 'intermediate_rate': inter, 'cutoff_hz': str(cutoff), 'cutoff_norm': str(cutoff / Fraction(inter, 2))}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: 48k to 44.1k{'cutoff_hz': '19845', 'cutoff_norm': '1323/256000', 'down': 160, 'intermediate_rate': 7680000, 'up': 147}{'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 160, 'intermediate_rate': 7056000, 'up': 147}Failed
regression: 44.1k to 48k{'cutoff_hz': '19845', 'cutoff_norm': '3/490', 'down': 147, 'intermediate_rate': 6482700, 'up': 160}{'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 147, 'intermediate_rate': 7056000, 'up': 160}Failed
regression: upsample by 2{'cutoff_hz': '3200', 'cutoff_norm': '4/5', 'down': 1, 'intermediate_rate': 8000, 'up': 2}{'cutoff_hz': '3200', 'cutoff_norm': '2/5', 'down': 1, 'intermediate_rate': 16000, 'up': 2}Failed
control: identity{'cutoff_hz': '8000', 'cutoff_norm': '1', 'down': 1, 'intermediate_rate': 16000, 'up': 1}{'cutoff_hz': '8000', 'cutoff_norm': '1', 'down': 1, 'intermediate_rate': 16000, 'up': 1}Passed
control: bad rolloffbad-specbad-specPassed
regression: downsample by 3{'cutoff_hz': '8000', 'cutoff_norm': '1/9', 'down': 3, 'intermediate_rate': 144000, 'up': 1}{'cutoff_hz': '8000', 'cutoff_norm': '1/3', 'down': 3, 'intermediate_rate': 48000, 'up': 1}Failed
regression: odd ratio{'cutoff_hz': '41895/4', 'cutoff_norm': '19/8820', 'down': 441, 'intermediate_rate': 9724050, 'up': 640}{'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800', 'down': 441, 'intermediate_rate': 14112000, 'up': 640}Failed

SHA-256 / fecd90237897343cbf0742906d7c2ce37acf40029842ff65b2d8a83014871927

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(x):
    fin, fout, roll = x[0], x[1], Fraction(x[2])
    if fin <= 0 or fout <= 0 or not 0 < roll <= 1:
        return 'bad-spec'
    g = math.gcd(fin, fout)
    L, M = fout // g, fin // g
    inter = max(fin, fout) * L
    cutoff = Fraction(min(fin, fout), 2) * roll
    return {'up': L, 'down': M, 'intermediate_rate': inter, 'cutoff_hz': str(cutoff), 'cutoff_norm': str(cutoff / Fraction(inter, 2))}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: 48k to 44.1k{'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 160, 'intermediate_rate': 7056000, 'up': 147}{'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 160, 'intermediate_rate': 7056000, 'up': 147}Passed
regression: 44.1k to 48k{'cutoff_hz': '19845', 'cutoff_norm': '1323/256000', 'down': 147, 'intermediate_rate': 7680000, 'up': 160}{'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 147, 'intermediate_rate': 7056000, 'up': 160}Failed
regression: upsample by 2{'cutoff_hz': '3200', 'cutoff_norm': '1/5', 'down': 1, 'intermediate_rate': 32000, 'up': 2}{'cutoff_hz': '3200', 'cutoff_norm': '2/5', 'down': 1, 'intermediate_rate': 16000, 'up': 2}Failed
control: identity{'cutoff_hz': '8000', 'cutoff_norm': '1', 'down': 1, 'intermediate_rate': 16000, 'up': 1}{'cutoff_hz': '8000', 'cutoff_norm': '1', 'down': 1, 'intermediate_rate': 16000, 'up': 1}Passed
control: bad rolloffbad-specbad-specPassed
regression: downsample by 3{'cutoff_hz': '8000', 'cutoff_norm': '1/3', 'down': 3, 'intermediate_rate': 48000, 'up': 1}{'cutoff_hz': '8000', 'cutoff_norm': '1/3', 'down': 3, 'intermediate_rate': 48000, 'up': 1}Passed
regression: odd ratio{'cutoff_hz': '41895/4', 'cutoff_norm': '8379/8192000', 'down': 441, 'intermediate_rate': 20480000, 'up': 640}{'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800', 'down': 441, 'intermediate_rate': 14112000, 'up': 640}Failed

SHA-256 / 63dcd5ccb9db9d9720d82fb9200391a2ab48ba66480380c0f84fbc1d67cc0d21

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(x):
    fin, fout, roll = x[0], x[1], Fraction(x[2])
    if fin <= 0 or fout <= 0 or not 0 < roll <= 1:
        return 'bad-spec'
    g = math.gcd(fin, fout)
    L, M = fout // g, fin // g
    inter = fin * L
    cutoff = Fraction(min(fin, fout), 2) * roll
    return {'up': L, 'down': M, 'intermediate_rate': inter, 'cutoff_hz': str(cutoff), 'cutoff_norm': str(cutoff / Fraction(inter, 2))}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: 48k to 44.1k{'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 160, 'intermediate_rate': 7056000, 'up': 147}{'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 160, 'intermediate_rate': 7056000, 'up': 147}Passed
regression: 44.1k to 48k{'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 147, 'intermediate_rate': 7056000, 'up': 160}{'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 147, 'intermediate_rate': 7056000, 'up': 160}Passed
regression: upsample by 2{'cutoff_hz': '3200', 'cutoff_norm': '2/5', 'down': 1, 'intermediate_rate': 16000, 'up': 2}{'cutoff_hz': '3200', 'cutoff_norm': '2/5', 'down': 1, 'intermediate_rate': 16000, 'up': 2}Passed
control: identity{'cutoff_hz': '8000', 'cutoff_norm': '1', 'down': 1, 'intermediate_rate': 16000, 'up': 1}{'cutoff_hz': '8000', 'cutoff_norm': '1', 'down': 1, 'intermediate_rate': 16000, 'up': 1}Passed
control: bad rolloffbad-specbad-specPassed
regression: downsample by 3{'cutoff_hz': '8000', 'cutoff_norm': '1/3', 'down': 3, 'intermediate_rate': 48000, 'up': 1}{'cutoff_hz': '8000', 'cutoff_norm': '1/3', 'down': 3, 'intermediate_rate': 48000, 'up': 1}Passed
regression: odd ratio{'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800', 'down': 441, 'intermediate_rate': 14112000, 'up': 640}{'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800', 'down': 441, 'intermediate_rate': 14112000, 'up': 640}Passed

SHA-256 / 6c17f9eeb9594800427783a9e34bbc32b209c3ff222187cbc9afa1cf1131fade

Verification & scope

A deterministic bounded teaching model with a stipulated toy contract; exact rational arithmetic or fixed-decimal rounding keeps outputs strict JSON. It is not a production DSP library and claims no standards conformance. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:51:38.281277+00:00.

Case digest / d4c9d42dc69d282921e5395e4fd29b4aff3a42671e4276c869f689c2d8d8a207