Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument mechanism / verified-clean

DSP: Sample Rate & Nyquist Calculator mechanism

The inspectable method record for DSP: Sample Rate & Nyquist Calculator, kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The arithmetic formulas are standard under their stated assumptions, but the instrument needs an explicit unit contract, input validation, an equality rule for the Nyquist boundary, and an honest label such as ideal full-scale sine-wave quantization SNR rather than unrestricted dynamic range.

  • f_nyquist=f_s/2 is correct for the Nyquist frequency and is also the theoretical upper frequency boundary for uniformly sampled real signals, but the specification does not define whether a signal exactly equal to the boundary should trigger the aliasing warning.
  • The aliasing warning rule is underspecified: it says to warn when the signal exceeds Nyquist, but does not define behavior for equality, negative frequencies, bandwidth-containing signals, or signals with multiple frequency components.
  • dynamic_range(dB)≈6.02×bits+1.76 is the standard ideal quantization SNR for a full-scale sine wave, not a universal measured dynamic range. It requires ideal ADC quantization assumptions and should be labeled accordingly.
  • The claimed max representable frequency is not given as a separate formula or output definition; it appears intended to equal f_s/2 for real sampling.

Units and conventions

  • sample_rate is interpreted in Hz before calculation; for example, 48 kHz must be converted to 48,000 Hz.
  • signal frequency is interpreted in Hz and compared against Nyquist using the same units.
  • bit depth is a positive integer number of quantization bits.
  • The dynamic-range formula assumes an ideal N-bit quantizer, a full-scale sinusoidal input, and quantization-noise-limited operation; the result is an approximate dB value.
  • Frequencies are treated as nonnegative magnitudes for the aliasing comparison.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "sample_rate_hz": 48000,
    "bit_depth_bits": 16,
    "signal_frequency_hz": 1000
  },
  "expected_outputs": {
    "nyquist_frequency_hz": 24000,
    "max_representable_frequency_hz": 24000,
    "aliasing_warning": false,
    "dynamic_range_db": 98.08
  },
  "working": "Nyquist = 48,000 / 2 = 24,000 Hz. Max representable frequency = 24,000 Hz. Signal comparison: 1,000 Hz > 24,000 Hz is false, so aliasing_warning = false. Dynamic range = 6.02 × 16 + 1.76 = 96.32 + 1.76 = 98.08 dB."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

The arithmetic formulas produce expected finite results, including at the exact Nyquist boundary and at the largest finite sample rate. However, the specification leaves the signed-frequency convention undefined, allowing the same input (-25000 Hz at a 48000 Hz sample rate) to produce either an aliasing warning or no warning. Input-domain validation for nonphysical or extreme values is also unspecified.

Other records

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json
  • evidence-tranche4/tranche4-results.json
  • BOUNDARY_HAZARD_CATALOG.json