FA-91691 / Digital signal filters / Open access
Resampling plan normalizes the cutoff to the input Nyquist · case 01
The normalized cutoff handed to the filter designer is L times too large.
ROOT CAUSE
The cutoff is divided by fin / 2 although the filter runs at the intermediate rate.
VERIFIED REPAIR
Normalize to the intermediate Nyquist fin L / 2.
Unsuccessful approach: The attempted repair divides by the full intermediate rate, halving the normalized cutoff.
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 * 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(fin, 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'}], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['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: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['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'}], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['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: 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'}], ['repair check: 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: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}]], [['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'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['repair check: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}]], [['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: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['repair check: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: 48k to 44.1k | {'cutoff_hz': '19845', 'cutoff_norm': '1323/1600', 'down': 160, 'intermediate_rate': 7056000, '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': '9/10', 'down': 147, 'intermediate_rate': 7056000, 'up': 160} | {'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 147, 'intermediate_rate': 7056000, 'up': 160} | Failed |
| repair check: 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 |
| control: bad rolloff | bad-spec | bad-spec | Passed |
| regression: upsample by 2 | {'cutoff_hz': '3200', 'cutoff_norm': '4/5', 'down': 1, 'intermediate_rate': 16000, 'up': 2} | {'cutoff_hz': '3200', 'cutoff_norm': '2/5', 'down': 1, 'intermediate_rate': 16000, 'up': 2} | Failed |
| regression: odd ratio | {'cutoff_hz': '41895/4', 'cutoff_norm': '19/20', 'down': 441, 'intermediate_rate': 14112000, 'up': 640} | {'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800', 'down': 441, 'intermediate_rate': 14112000, 'up': 640} | Failed |
| regression: coprime rates | {'cutoff_hz': '5/4', 'cutoff_norm': '5/14', 'down': 7, 'intermediate_rate': 35, 'up': 5} | {'cutoff_hz': '5/4', 'cutoff_norm': '1/14', 'down': 7, 'intermediate_rate': 35, 'up': 5} | Failed |
SHA-256 / ee1894e9c947f76a600c50beef364b67dd62a30c4555b86cbf72f1eea6fa4dba
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 = 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 / inter)}
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'}], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['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: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['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'}], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['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: 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'}], ['repair check: 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: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}]], [['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'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['repair check: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}]], [['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: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['repair check: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: 48k to 44.1k | {'cutoff_hz': '19845', 'cutoff_norm': '9/3200', 'down': 160, 'intermediate_rate': 7056000, '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': '9/3200', 'down': 147, 'intermediate_rate': 7056000, 'up': 160} | {'cutoff_hz': '19845', 'cutoff_norm': '9/1600', 'down': 147, 'intermediate_rate': 7056000, 'up': 160} | Failed |
| repair check: downsample by 3 | {'cutoff_hz': '8000', 'cutoff_norm': '1/6', 'down': 3, 'intermediate_rate': 48000, 'up': 1} | {'cutoff_hz': '8000', 'cutoff_norm': '1/3', 'down': 3, 'intermediate_rate': 48000, 'up': 1} | Failed |
| control: bad rolloff | bad-spec | bad-spec | Passed |
| regression: upsample by 2 | {'cutoff_hz': '3200', 'cutoff_norm': '1/5', 'down': 1, 'intermediate_rate': 16000, 'up': 2} | {'cutoff_hz': '3200', 'cutoff_norm': '2/5', 'down': 1, 'intermediate_rate': 16000, 'up': 2} | Failed |
| regression: odd ratio | {'cutoff_hz': '41895/4', 'cutoff_norm': '19/25600', 'down': 441, 'intermediate_rate': 14112000, 'up': 640} | {'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800', 'down': 441, 'intermediate_rate': 14112000, 'up': 640} | Failed |
| regression: coprime rates | {'cutoff_hz': '5/4', 'cutoff_norm': '1/28', 'down': 7, 'intermediate_rate': 35, 'up': 5} | {'cutoff_hz': '5/4', 'cutoff_norm': '1/14', 'down': 7, 'intermediate_rate': 35, 'up': 5} | Failed |
SHA-256 / 4fb61880330f5c2ce7e51d911b536c7acc2f4c3c11cb9522ae4d59c08dfa0dd3
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'}], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['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: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['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'}], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['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: 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'}], ['repair check: 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: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}]], [['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'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['repair check: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}]], [['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: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['repair check: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['repair check: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}]]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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 |
| repair check: 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 |
| control: bad rolloff | bad-spec | bad-spec | 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 |
| 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 |
| regression: coprime rates | {'cutoff_hz': '5/4', 'cutoff_norm': '1/14', 'down': 7, 'intermediate_rate': 35, 'up': 5} | {'cutoff_hz': '5/4', 'cutoff_norm': '1/14', 'down': 7, 'intermediate_rate': 35, 'up': 5} | Passed |
SHA-256 / 6152b044ce9d2eaf9f167a2e44d83d2634502004b9e455476cb768e262addae0
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.276275+00:00.
Case digest / c098988849f0fb3e3731bac7168dcf573804bdedc895120511bdf371590b0e67