Source: https://guthlabs.ai/docs/instruments/fft-bin-width-frequency-resolution-calculator/mechanism/

instrument mechanism / verified-clean

# FFT Bin Width / Frequency Resolution Calculator mechanism

The inspectable method record for FFT Bin Width / Frequency Resolution Calculator, kept separate from implementation and qualification.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Model scope

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.'

- Δ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.

## Units and conventions

- 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.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "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."
}
````

## Failure boundary

**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.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/fft-bin-width-frequency-resolution-calculator/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/fft-bin-width-frequency-resolution-calculator/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/fft-bin-width-frequency-resolution-calculator/qualification/>)

## 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`
