# Sample Experiment: RC Low-Pass Filter Frequency Response

> **Reference page.** This page was prepared for the NSF PCL FAIR-data due diligence
> (July 2026) as a working sample of how every Adom experiment is published. The
> experiment is a **computed characterization**: a closed-form model evaluated by the
> included code, not a bench measurement: and is **fully reproducible bit-for-bit**
> from the files on this page. Real bench experiments follow this exact same structure,
> with instrument captures (oscilloscope/spectrum-analyzer screenshots and CSV/JSON
> exports) in place of the model.

## Objective

Characterize the frequency response (magnitude and phase) of a first-order RC low-pass
filter (R = 1 kΩ, C = 100 nF) from 10 Hz to 1 MHz, and publish the result the standard
Adom way: write-up + JSONL dataset + sidecar metadata + provenance + the AI skill that
reproduces it.

## Method

The transfer function `H(f) = 1 / (1 + j·2πf·RC)` is evaluated at 20 points per decade
(101 points total). Expected cutoff: `fc = 1/(2πRC) ≈ 1591.5 Hz`. The whole run is
deterministic: `python3 analysis/run_experiment.py` regenerates the dataset, its
sidecar, and the plot exactly.

## Results

![Bode plot](docs/bode-plot.png)

| Check | Expected | Measured (dataset) |
|---|---|---|
| Gain at fc | −3.01 dB | −2.99 dB (at 1584.9 Hz grid point) |
| Phase at fc | −45° | −44.88° |
| Rolloff past fc | −20 dB/decade | −56.0 dB at 1 MHz (2.8 decades) ✓ |

## How the data is organized (the part NSF asked about)

| FAIR concern | Where it lives on this page |
|---|---|
| **Data** | [`data/rc_lowpass_response.jsonl`](data/rc_lowpass_response.jsonl): one JSON row per point: `frequency_hz`, `gain_linear`, `gain_db`, `phase_deg` |
| **Metadata** | [`data/rc_lowpass_response.sidecar.json`](data/rc_lowpass_response.sidecar.json): the sidecar JSON **is the dataset's metadata**, a small file that rides alongside the data with its schema (fields + units), parameters, generator, row count, sha256, and license |
| **Provenance** | [`provenance.json`](provenance.json): who ran it (human-prompted, AI-executed), the input model and code, design-reference part numbers, output hashes, and the full chain from request to publication |
| **Reproducibility** | [`skills/reproduce-rc-characterization/SKILL.md`](skills/reproduce-rc-characterization/SKILL.md): the AI skill; one command regenerates everything |
| **Persistent identifier** | this page's URL: `wiki.adom.inc/adom/sample-experiment-rc-lowpass` (git-backed and versioned) |
| **Timeline** | published immediately on completion, no embargo |

## Reproduce it

```bash
adom-wiki repo clone adom/sample-experiment-rc-lowpass
cd sample-experiment-rc-lowpass
python3 analysis/run_experiment.py   # regenerates data + sidecar + plot, bit-for-bit
```

## License

Data and code on this page: CC-BY-4.0.
