Pycom helps you detect and identify signals visible on the waterfall display. The system has two layers:
- Signal Detection — automatically finds signals that stand out above the noise, using statistical analysis (no machine learning required) — this page
- Signal Identification (AI) — classifies detected signals by type (CW, FT8, FM, etc.), using a trained neural network model
Signal Detection
Signal detection is off by default. When enabled in the Signal Detection configuration tab, the app continuously analyzes each spectrum frame and finds peaks that stand out from the surrounding noise floor. This runs automatically while you operate — no training or configuration beyond selecting a preset or adjusting sensitivity parameters is needed.
What You See on the Waterfall
Colored markers appear next to detected signals:
| Marker Color | Meaning |
|---|---|
| Red | Strong signal (peak-to-noise ratio ≥ 6.0) |
| Orange | Moderate signal (peak-to-noise ratio 3.0–5.9) |
| Light blue | Weak or marginal signal (peak-to-noise ratio < 3.0) |
Each marker also shows a frequency label in MHz. Detected signals that temporarily vanish from the spectrum are kept on the display for about 30 frames before fading out, preventing markers from blinking on and off for intermittent or drifting signals.
Sensitivity Presets
Choose a detection preset from the Signal Detection configuration tab:
| Preset | Best For | Key Values |
|---|---|---|
| Strong Only | Clear, dominant signals | z=1.5, score=8.0, percentile=95 |
| Normal | General use | z=1.5, score=4.0, percentile=85 |
| Sensitive | Marginally visible signals (FT8, JT65, WSPR) | z=1.0, score=2.5, percentile=75 |
Each preset sets all detection parameters at once. Selecting a preset fills in the parameter fields, and you can still adjust individual values afterward.
Detection Parameters
Eight tunable parameters give you fine control over detection behavior:
| Parameter | Range | Default | What It Controls |
|---|---|---|---|
| Detection Percentile | 50–99 | 85 | Percentile of scope history used to build the detection spectrum. Higher values preserve more signal energy; lower values are more stable. |
| Averaging Frames | 1–30 | 1 | Number of recent frames for temporal analysis. Higher values smooth the spectrum but slow response. |
| Min Contrast Z | 0.5–3.0 | 1.5 | How many standard deviations a bin must exceed local background to form a detection group. Lower values are more sensitive. |
| Merge Gap (Hz) | 0–5000 | 1000 | Maximum gap between adjacent groups that will be merged into one signal. |
| Min Group Width (Hz) | 50–5000 | 500 | Minimum width for a group to be considered a real signal. |
| Min Score | 1.5–8.0 | 4.0 | Combined detection quality threshold. Candidates below this score are filtered out. |
| Min Persistence | 1–20 | 2 | How many consecutive frames a candidate must appear before being reported. |
| Min Distance (Hz) | 25–5000 | 200 | Minimum frequency gap between two reported candidates. |
All detection settings are saved to your configuration and restored on startup.
Configuration
The Signal Detection tab in the Configuration window provides all signal detection and identification settings:
- Enable Signal Detection — toggle automatic detection on or off (off by default)
- Show Detection Overlay — show or hide all overlays (markers and labels)
- Overlay Candidate Markers — show or hide the colored signal markers
- Overlay Frequency Labels — show or hide the MHz labels next to markers
- Presets — one-click settings for common detection scenarios
- Download Training Resources — deploys training scripts and documentation to
~/Pycom/signals/ - Reload Model — reloads the ONNX model from disk after retraining, without restarting the app
All settings persist to your configuration file.