Wideband autonomous SDR analysis engine forked from sdr-visual-suite
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

241 lines
6.0KB

  1. bands:
  2. - name: uk-fm-broadcast
  3. start_hz: 87.5e6
  4. end_hz: 108.0e6
  5. center_hz: 99.5e6
  6. sample_rate: 2048000
  7. fft_size: 4096
  8. gain_db: 32
  9. tuner_bw_khz: 1536
  10. use_gpu_fft: true
  11. classifier_mode: combined
  12. agc: true
  13. dc_block: true
  14. iq_balance: true
  15. pipeline:
  16. mode: wideband-balanced
  17. profile: wideband-balanced
  18. goals:
  19. intent: broadcast-monitoring
  20. monitor_start_hz: 88.0e6
  21. monitor_end_hz: 108.0e6
  22. monitor_span_hz: 20000000
  23. signal_priorities: ["wfm", "rds", "broadcast", "digital"]
  24. auto_record_classes: ["wfm"]
  25. auto_decode_classes: ["rds"]
  26. surveillance:
  27. analysis_fft_size: 4096
  28. frame_rate: 12
  29. strategy: multi-resolution
  30. display_bins: 2048
  31. display_fps: 12
  32. derived_detection: auto
  33. refinement:
  34. enabled: true
  35. max_concurrent: 16
  36. detail_fft_size: 4096
  37. min_candidate_snr_db: 0
  38. min_span_hz: 80000
  39. max_span_hz: 250000
  40. auto_span: true
  41. resources:
  42. prefer_gpu: true
  43. max_refinement_jobs: 16
  44. max_recording_streams: 8
  45. max_decode_jobs: 8
  46. decision_hold_ms: 2000
  47. profiles:
  48. - name: legacy
  49. description: Current single-band pipeline behavior
  50. surveillance:
  51. analysis_fft_size: 2048
  52. strategy: single-resolution
  53. display_bins: 2048
  54. display_fps: 15
  55. derived_detection: auto
  56. resources:
  57. prefer_gpu: false
  58. max_refinement_jobs: 8
  59. max_recording_streams: 16
  60. max_decode_jobs: 16
  61. decision_hold_ms: 2000
  62. refinement:
  63. enabled: true
  64. max_concurrent: 8
  65. detail_fft_size: 2048
  66. min_candidate_snr_db: 0
  67. min_span_hz: 0
  68. max_span_hz: 0
  69. auto_span: true
  70. pipeline:
  71. mode: legacy
  72. profile: legacy
  73. goals:
  74. intent: general-monitoring
  75. - name: wideband-balanced
  76. description: Baseline multi-resolution wideband surveillance
  77. surveillance:
  78. analysis_fft_size: 4096
  79. frame_rate: 12
  80. strategy: multi-resolution
  81. display_bins: 2048
  82. display_fps: 12
  83. derived_detection: auto
  84. resources:
  85. prefer_gpu: true
  86. max_refinement_jobs: 16
  87. max_recording_streams: 16
  88. max_decode_jobs: 12
  89. decision_hold_ms: 2000
  90. refinement:
  91. enabled: true
  92. max_concurrent: 16
  93. detail_fft_size: 4096
  94. min_candidate_snr_db: 0
  95. min_span_hz: 4000
  96. max_span_hz: 200000
  97. auto_span: true
  98. pipeline:
  99. mode: wideband-balanced
  100. profile: wideband-balanced
  101. goals:
  102. intent: wideband-surveillance
  103. signal_priorities: ["digital", "wfm"]
  104. - name: wideband-aggressive
  105. description: Higher surveillance/refinement budgets for dense wideband monitoring
  106. surveillance:
  107. analysis_fft_size: 8192
  108. frame_rate: 10
  109. strategy: multi-resolution
  110. display_bins: 4096
  111. display_fps: 10
  112. derived_detection: auto
  113. resources:
  114. prefer_gpu: true
  115. max_refinement_jobs: 32
  116. max_recording_streams: 24
  117. max_decode_jobs: 16
  118. decision_hold_ms: 2000
  119. refinement:
  120. enabled: true
  121. max_concurrent: 32
  122. detail_fft_size: 8192
  123. min_candidate_snr_db: 0
  124. min_span_hz: 6000
  125. max_span_hz: 250000
  126. auto_span: true
  127. pipeline:
  128. mode: wideband-aggressive
  129. profile: wideband-aggressive
  130. goals:
  131. intent: high-density-wideband-surveillance
  132. signal_priorities: ["digital", "wfm", "trunk"]
  133. - name: archive
  134. description: Record-first monitoring profile
  135. surveillance:
  136. analysis_fft_size: 4096
  137. frame_rate: 12
  138. strategy: single-resolution
  139. display_bins: 2048
  140. display_fps: 12
  141. derived_detection: auto
  142. resources:
  143. prefer_gpu: true
  144. max_refinement_jobs: 12
  145. max_recording_streams: 24
  146. max_decode_jobs: 12
  147. decision_hold_ms: 2500
  148. refinement:
  149. enabled: true
  150. max_concurrent: 12
  151. detail_fft_size: 4096
  152. min_candidate_snr_db: 0
  153. min_span_hz: 4000
  154. max_span_hz: 200000
  155. auto_span: true
  156. pipeline:
  157. mode: archive
  158. profile: archive
  159. goals:
  160. intent: archive-and-triage
  161. signal_priorities: ["wfm", "nfm", "digital"]
  162. - name: digital-hunting
  163. description: Digital-first refinement and decode focus
  164. surveillance:
  165. analysis_fft_size: 4096
  166. frame_rate: 12
  167. strategy: multi-resolution
  168. display_bins: 2048
  169. display_fps: 12
  170. derived_detection: auto
  171. resources:
  172. prefer_gpu: true
  173. max_refinement_jobs: 16
  174. max_recording_streams: 12
  175. max_decode_jobs: 16
  176. decision_hold_ms: 2000
  177. refinement:
  178. enabled: true
  179. max_concurrent: 16
  180. detail_fft_size: 4096
  181. min_candidate_snr_db: 0
  182. min_span_hz: 3000
  183. max_span_hz: 120000
  184. auto_span: true
  185. pipeline:
  186. mode: digital-hunting
  187. profile: digital-hunting
  188. goals:
  189. intent: digital-surveillance
  190. signal_priorities: ["ft8", "wspr", "fsk", "psk", "dmr"]
  191. detector:
  192. threshold_db: -55
  193. min_duration_ms: 120
  194. hold_ms: 1200
  195. ema_alpha: 0.35
  196. hysteresis_db: 6
  197. min_stable_frames: 3
  198. gap_tolerance_ms: 1200
  199. cfar_mode: GOSCA
  200. cfar_guard_hz: 15000
  201. cfar_train_hz: 120000
  202. cfar_guard_cells: 3
  203. cfar_train_cells: 24
  204. cfar_rank: 36
  205. cfar_scale_db: 7
  206. cfar_wrap_around: true
  207. edge_margin_db: 4
  208. max_signal_bw_hz: 250000
  209. merge_gap_hz: 12000
  210. class_history_size: 10
  211. class_switch_ratio: 0.6
  212. recorder:
  213. enabled: false
  214. min_snr_db: 10
  215. min_duration: 1s
  216. max_duration: 300s
  217. preroll_ms: 500
  218. record_iq: false
  219. record_audio: false
  220. auto_demod: true
  221. auto_decode: false
  222. max_disk_mb: 0
  223. output_dir: data/recordings
  224. class_filter: []
  225. ring_seconds: 8
  226. deemphasis_us: 50
  227. extraction_fir_taps: 101
  228. extraction_bw_mult: 1.2
  229. decoder:
  230. ft8_cmd: C:/WSJT/wsjtx-2.7.0-rc6/bin/jt9.exe -8 {audio}
  231. wspr_cmd: C:/WSJT/wsjtx-2.7.0-rc6/bin/wsprd.exe {audio}
  232. dmr_cmd: tools/dsd-neo/bin/dsd-neo.exe -fs -i {audio} -s {sr} -o null
  233. dstar_cmd: tools/dsd-neo/bin/dsd-neo.exe -fd -i {audio} -s {sr} -o null
  234. fsk_cmd: tools/fsk/fsk_decoder --iq {iq} --sample-rate {sr}
  235. psk_cmd: tools/psk/psk_decoder --iq {iq} --sample-rate {sr}
  236. web_addr: :8080
  237. event_path: data/events.jsonl
  238. frame_rate: 12
  239. waterfall_lines: 200
  240. web_root: web