|
- bands:
- - name: uk-fm-broadcast
- start_hz: 87.5e6
- end_hz: 108.0e6
- center_hz: 99.5e6
- sample_rate: 2048000
- fft_size: 4096
- gain_db: 32
- tuner_bw_khz: 1536
- use_gpu_fft: true
- classifier_mode: combined
- agc: true
- dc_block: true
- iq_balance: true
- pipeline:
- mode: wideband-balanced
- profile: wideband-balanced
- goals:
- intent: broadcast-monitoring
- monitor_start_hz: 88.0e6
- monitor_end_hz: 108.0e6
- monitor_span_hz: 20000000
- signal_priorities: ["wfm", "rds", "broadcast", "digital"]
- auto_record_classes: ["wfm"]
- auto_decode_classes: ["rds"]
- surveillance:
- analysis_fft_size: 4096
- frame_rate: 12
- strategy: multi-resolution
- display_bins: 2048
- display_fps: 12
- derived_detection: auto
- refinement:
- enabled: true
- max_concurrent: 16
- detail_fft_size: 4096
- min_candidate_snr_db: 0
- min_span_hz: 80000
- max_span_hz: 250000
- auto_span: true
- resources:
- prefer_gpu: true
- max_refinement_jobs: 16
- max_recording_streams: 8
- max_decode_jobs: 8
- decision_hold_ms: 2000
- profiles:
- - name: legacy
- description: Current single-band pipeline behavior
- surveillance:
- analysis_fft_size: 2048
- strategy: single-resolution
- display_bins: 2048
- display_fps: 15
- derived_detection: auto
- resources:
- prefer_gpu: false
- max_refinement_jobs: 8
- max_recording_streams: 16
- max_decode_jobs: 16
- decision_hold_ms: 2000
- refinement:
- enabled: true
- max_concurrent: 8
- detail_fft_size: 2048
- min_candidate_snr_db: 0
- min_span_hz: 0
- max_span_hz: 0
- auto_span: true
- pipeline:
- mode: legacy
- profile: legacy
- goals:
- intent: general-monitoring
- - name: wideband-balanced
- description: Baseline multi-resolution wideband surveillance
- surveillance:
- analysis_fft_size: 4096
- frame_rate: 12
- strategy: multi-resolution
- display_bins: 2048
- display_fps: 12
- derived_detection: auto
- resources:
- prefer_gpu: true
- max_refinement_jobs: 16
- max_recording_streams: 16
- max_decode_jobs: 12
- decision_hold_ms: 2000
- refinement:
- enabled: true
- max_concurrent: 16
- detail_fft_size: 4096
- min_candidate_snr_db: 0
- min_span_hz: 4000
- max_span_hz: 200000
- auto_span: true
- pipeline:
- mode: wideband-balanced
- profile: wideband-balanced
- goals:
- intent: wideband-surveillance
- signal_priorities: ["digital", "wfm"]
- - name: wideband-aggressive
- description: Higher surveillance/refinement budgets for dense wideband monitoring
- surveillance:
- analysis_fft_size: 8192
- frame_rate: 10
- strategy: multi-resolution
- display_bins: 4096
- display_fps: 10
- derived_detection: auto
- resources:
- prefer_gpu: true
- max_refinement_jobs: 32
- max_recording_streams: 24
- max_decode_jobs: 16
- decision_hold_ms: 2000
- refinement:
- enabled: true
- max_concurrent: 32
- detail_fft_size: 8192
- min_candidate_snr_db: 0
- min_span_hz: 6000
- max_span_hz: 250000
- auto_span: true
- pipeline:
- mode: wideband-aggressive
- profile: wideband-aggressive
- goals:
- intent: high-density-wideband-surveillance
- signal_priorities: ["digital", "wfm", "trunk"]
- - name: archive
- description: Record-first monitoring profile
- surveillance:
- analysis_fft_size: 4096
- frame_rate: 12
- strategy: single-resolution
- display_bins: 2048
- display_fps: 12
- derived_detection: auto
- resources:
- prefer_gpu: true
- max_refinement_jobs: 12
- max_recording_streams: 24
- max_decode_jobs: 12
- decision_hold_ms: 2500
- refinement:
- enabled: true
- max_concurrent: 12
- detail_fft_size: 4096
- min_candidate_snr_db: 0
- min_span_hz: 4000
- max_span_hz: 200000
- auto_span: true
- pipeline:
- mode: archive
- profile: archive
- goals:
- intent: archive-and-triage
- signal_priorities: ["wfm", "nfm", "digital"]
- - name: digital-hunting
- description: Digital-first refinement and decode focus
- surveillance:
- analysis_fft_size: 4096
- frame_rate: 12
- strategy: multi-resolution
- display_bins: 2048
- display_fps: 12
- derived_detection: auto
- resources:
- prefer_gpu: true
- max_refinement_jobs: 16
- max_recording_streams: 12
- max_decode_jobs: 16
- decision_hold_ms: 2000
- refinement:
- enabled: true
- max_concurrent: 16
- detail_fft_size: 4096
- min_candidate_snr_db: 0
- min_span_hz: 3000
- max_span_hz: 120000
- auto_span: true
- pipeline:
- mode: digital-hunting
- profile: digital-hunting
- goals:
- intent: digital-surveillance
- signal_priorities: ["ft8", "wspr", "fsk", "psk", "dmr"]
- detector:
- threshold_db: -55
- min_duration_ms: 120
- hold_ms: 1200
- ema_alpha: 0.35
- hysteresis_db: 6
- min_stable_frames: 3
- gap_tolerance_ms: 1200
- cfar_mode: GOSCA
- cfar_guard_hz: 15000
- cfar_train_hz: 120000
- cfar_guard_cells: 3
- cfar_train_cells: 24
- cfar_rank: 36
- cfar_scale_db: 7
- cfar_wrap_around: true
- edge_margin_db: 4
- max_signal_bw_hz: 250000
- merge_gap_hz: 12000
- class_history_size: 10
- class_switch_ratio: 0.6
- recorder:
- enabled: false
- min_snr_db: 10
- min_duration: 1s
- max_duration: 300s
- preroll_ms: 500
- record_iq: false
- record_audio: false
- auto_demod: true
- auto_decode: false
- max_disk_mb: 0
- output_dir: data/recordings
- class_filter: []
- ring_seconds: 8
- deemphasis_us: 50
- extraction_fir_taps: 101
- extraction_bw_mult: 1.2
- decoder:
- ft8_cmd: C:/WSJT/wsjtx-2.7.0-rc6/bin/jt9.exe -8 {audio}
- wspr_cmd: C:/WSJT/wsjtx-2.7.0-rc6/bin/wsprd.exe {audio}
- dmr_cmd: tools/dsd-neo/bin/dsd-neo.exe -fs -i {audio} -s {sr} -o null
- dstar_cmd: tools/dsd-neo/bin/dsd-neo.exe -fd -i {audio} -s {sr} -o null
- fsk_cmd: tools/fsk/fsk_decoder --iq {iq} --sample-rate {sr}
- psk_cmd: tools/psk/psk_decoder --iq {iq} --sample-rate {sr}
- web_addr: :8080
- event_path: data/events.jsonl
- frame_rate: 12
- waterfall_lines: 200
- web_root: web
|