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

instrument / verified-clean

FFT Bin Width / Frequency Resolution Calculator

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: VERIFIED_CLEANLifecycle: verified-clean

Inspectable records

Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Area
Computing & Information
Tranche
tranche-4
Evidence ID
t4-220
Ledger rows
1

No ledger note is attached.

Review findings

Core arithmetic formulas are correct under the stated unit and FFT-length assumptions. Verdict is NEEDS_REVIEW because the exact frequency-bin convention and the meaning of 'frequency resolution' are unspecified, and the blank honest_label leaves an important limitation undisclosed. Recommended honest label: 'Bin spacing is f_s/N. Actual ability to distinguish nearby frequencies depends on the selected window, signal duration, leakage, and spectrum convention; bins above Nyquist represent negative frequencies for a standard FFT.'

Formula and scope findings

  • Δf=f_s/N is the standard FFT bin spacing when f_s is the sampling rate in Hz and N is the FFT length.
  • bin_k_freq=k·Δf is correct for FFT-bin indexing k=0 through N−1 under the unwrapped nonnegative-frequency convention, but bins above Nyquist are normally interpreted as negative frequencies: f_k=(k−N)·Δf for k>N/2.
  • time_resolution=N/f_s is the input record duration, not universally the practical frequency resolution. Window-dependent main-lobe width and equivalent noise bandwidth are omitted.
  • The optional window function is not used by any formula, so the instrument cannot claim window-dependent frequency-resolution results.
  • The output requirement of the first N bin frequencies is ambiguous about whether it means raw FFT-bin frequencies from 0 through just below f_s, a one-sided spectrum through Nyquist, or signed frequencies above Nyquist.

Unit assumptions

  • sample rate f_s is a positive value expressed in Hz, not kHz; convert 48 kHz to 48000 Hz before calculation.
  • FFT size N is a positive integer equal to the FFT length and the number of time-domain samples represented by the transform.
  • Δf and bin frequencies are in Hz; time_resolution is in seconds, with milliseconds obtained by multiplying seconds by 1000.
  • The stated formulas assume uniformly sampled data and a conventional N-point FFT.
  • The window function does not change the bin spacing or record duration, but it does affect practical spectral resolution and leakage.

Boundary hardening

BREAK_CLAIMED · SELF_FLAGGED

A zero sample rate creates an undefined time resolution and must be rejected. The calculator is also vulnerable to a 1000-fold frequency and time error when a value such as 44.1 lacks an explicit Hz/kHz convention.

Errata and corrections

No applied erratum is attached to this unique-name record.

Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

{
  "inputs": {
    "sample_rate_hz": 48000,
    "fft_size": 1024,
    "window": "rectangular"
  },
  "expected_outputs": {
    "bin_width_hz": 46.875,
    "time_resolution_s": 0.0213333333333333,
    "bin_center_frequency_checks_hz": {
      "k=0": 0,
      "k=1": 46.875,
      "k=512": 24000,
      "k=1023": 47953.125
    }
  },
  "working": "Δf = f_s/N = 48000/1024 = 46.875 Hz. time_resolution = N/f_s = 1024/48000 = 0.0213333333333333 s = 21.3333333333333 ms. bin_0 = 0×46.875 = 0 Hz. bin_1 = 1×46.875 = 46.875 Hz. bin_512 = 512×46.875 = 24000 Hz. bin_1023 = 1023×46.875 = (1024−1)×46.875 = 48000−46.875 = 47953.125 Hz. The raw first-N sequence is k×46.875 for k=0..1023."
}

Related workflows

No source-defined multi-instrument workflow membership is recorded.

Sources and evidence

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

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