Source: https://guthlabs.ai/docs/instruments/comb-filtering-phase-cancellation-predictor/

instrument / verified-clean

# Comb Filtering / Phase Cancellation Predictor

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

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

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/comb-filtering-phase-cancellation-predictor/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/comb-filtering-phase-cancellation-predictor/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/comb-filtering-phase-cancellation-predictor/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/comb-filtering-phase-cancellation-predictor/qualification/>)

## Ledger state

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

**Area**: Audio, Music, Photography & Color

**Tranche**: tranche-4

**Evidence ID**: t4-061

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The distance-based null formula is standard under the idealized two-source model, but the exact ambiguity requiring review is whether the input is Δd or Δt and what explicit formula and units apply to each. The peak expression, n range, and frequency-list limits must also be specified before implementation.

### Formula and scope findings

- The cancellation formula f_null = n*c/(2*Δd) is correct for positive odd integer n when Δd is a nonzero path-length difference.

- The peak formula is incomplete: it should explicitly be f_peak = n*c/(2*Δd) for positive even integer n, equivalently f_peak = m*c/Δd for positive integer m.

- The input is ambiguous because it says distance/time difference, but the stated formula uses distance only. For a time difference Δt, the corresponding formulas are f_null = n/(2*Δt) and f_peak = n/(2*Δt), or use Δd = c*Δt first.

- The valid domain and output frequency range are unspecified: n should be a positive integer, and the instrument should state how many harmonics or what maximum frequency to return.

- The model should specify that Δd is the absolute path-length difference; a negative signed difference produces the same frequency locations.

### Unit assumptions

- For distance-based calculations, Δd is in metres and c is in metres per second, producing frequencies in hertz.

- For time-based calculations, Δt is in seconds, producing frequencies in hertz.

- c is the propagation speed in the relevant medium; 343 m/s is assumed for air near room temperature.

- The two sources emit phase-coherent versions of the same signal, with equal effective amplitudes and matching polarity for exact nulls and peaks.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The predictor reaches an undefined division-by-zero condition when the path-length difference is exactly zero and can produce physically invalid negative frequencies if a signed time or distance difference is used without an absolute-value 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": {
    "delta_d_m": 0.5,
    "speed_of_sound_m_per_s": 343,
    "null_n": [
      1,
      3,
      5
    ],
    "peak_n": [
      2,
      4
    ]
  },
  "expected_outputs": {
    "null_frequencies_hz": [
      343,
      1029,
      1715
    ],
    "peak_frequencies_hz": [
      686,
      1372
    ]
  },
  "working": "Base frequency = c/(2*Δd) = 343/(2*0.5) = 343/1 = 343 Hz. Nulls use odd n: n=1 -> 1*343 = 343 Hz; n=3 -> 3*343 = 1029 Hz; n=5 -> 5*343 = 1715 Hz. Peaks use even n: n=2 -> 2*343 = 686 Hz; n=4 -> 4*343 = 1372 Hz."
}
````

## Related workflows

[Audio Engineer's Rackmic placement](<https://guthlabs.ai/docs/instrument-workflows/audio-rack/>)

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