Skip to content

assets: 20m real-HF noise bed for OTASim noise-overlay (task #71)#34

Merged
secup merged 1 commit into
mainfrom
assets/20m-noise-bed-2026-05-18
May 18, 2026
Merged

assets: 20m real-HF noise bed for OTASim noise-overlay (task #71)#34
secup merged 1 commit into
mainfrom
assets/20m-noise-bed-2026-05-18

Conversation

@secup
Copy link
Copy Markdown
Owner

@secup secup commented May 18, 2026

Summary

Reference 10-minute capture of 20m band noise at 14.100 MHz, captured
this morning via Yaesu FT-891 USB data out → `ultra_gui -rec`. Drops
into the gitignore-already-permitted `recordings/` directory pattern
(new exception added for `ota_noise_bed_*`).

Metric Value
Duration 600 s exact
Format 16-bit mono 48 kHz WAV
RMS 0.0363
Peak 0.4738 (no clipping)
Per-5s RMS stddev 0.003 (very stable bed)
Energy 300-3000 Hz ~98% (clean SSB passband)
Size 55 MB

Real-HF content: broadband structured noise + NCDXF beacon rotation
(~60+ beacons interleaved over 10 min) + no dominant local QSO.

Why

OTASim today only has AWGN + Watterson channel models — synthetic noise
that doesn't represent real HF character. Task #71 ("noise bed feature
using diagnostic bundle WAV") will load a recording like this as the
noise source instead of AWGN, scaled by the same SNR formula.

This asset unblocks #71 — there's now real data committed to the
repo that can be wired in.

Changes

  • New: `recordings/ota_noise_bed_2026-05-18_20m_14100/noise_bed.wav` (55 MB)
  • New: `recordings/ota_noise_bed_2026-05-18_20m_14100/README.md`
    provenance / levels / usage notes
  • `.gitignore`: add `!recordings/ota_noise_bed_*/` exception so future
    noise beds (different bands, different conditions) can be committed
    alongside.

Test plan

Asset-only commit. No code, no tests.

  • File ungitignored after pattern addition
  • WAV plays back correctly (format verified, no clipping)
  • CI smoke (default matrix; should be a no-op for this PR)

🤖 Generated with Claude Code

Reference 10-minute capture of 20m band noise at 14.100 MHz
(~11:30 AST 2026-05-18). Captured via Yaesu FT-891 USB data out
through ultra_gui's -rec path, packaged as 16-bit mono 48 kHz WAV.

Recording stats:
- Duration: 600.00 s (10:00 exactly)
- RMS: 0.0363, peak: 0.4738, no clipping
- Per-5s segment RMS stddev: 0.003 (very stable, no dominant spikes)
- 98% of energy in 300-3000 Hz SSB passband
- 55 MB binary

Content character:
- Steady real-HF broadband noise (structured, not Gaussian)
- NCDXF beacon rotation interleaved (~60+ beacon hits over 10 min)
- No dominant local QSO

Intended use:
- Task #71 (OTASim noise-overlay feature) loads this as the noise
  source instead of AWGN. Normalize to unit RMS at load time, scale
  per tick by kModemReferenceRms * 10^(-snr_db/20) (same formula as
  the AWGN model in src/ota_channel_core/models.cpp), and mix into
  each receiver's outbox.
- ota_simulator v2 real-HF noise overlay path can already overlay
  this on synthetic transmissions today (see commit 88a2acb).
- Smaller test fixtures for tests/fixtures/ can be extracted later.

Adds:
- recordings/ota_noise_bed_2026-05-18_20m_14100/noise_bed.wav
- recordings/ota_noise_bed_2026-05-18_20m_14100/README.md (provenance,
  levels, spectral profile, usage notes)
- .gitignore: new exception !recordings/ota_noise_bed_*/ so future
  noise beds can be committed alongside existing OTA capture
  directories.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@secup secup merged commit 382890c into main May 18, 2026
5 checks passed
@secup secup deleted the assets/20m-noise-bed-2026-05-18 branch May 18, 2026 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant