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.
|
- package main
-
- import "sdr-wideband-suite/internal/pipeline"
-
- func buildWindowStats(windows []pipeline.RefinementWindow) *RefinementWindowStats {
- if len(windows) == 0 {
- return nil
- }
- stats := &RefinementWindowStats{Sources: map[string]int{}}
- minSpan := 0.0
- maxSpan := 0.0
- sum := 0.0
- for i, w := range windows {
- span := w.SpanHz
- if span <= 0 {
- continue
- }
- if i == 0 || span < minSpan {
- minSpan = span
- }
- if i == 0 || span > maxSpan {
- maxSpan = span
- }
- sum += span
- stats.Count++
- if w.Source != "" {
- stats.Sources[w.Source]++
- }
- }
- if stats.Count == 0 {
- return nil
- }
- stats.MinSpan = minSpan
- stats.MaxSpan = maxSpan
- stats.AvgSpan = sum / float64(stats.Count)
- return stats
- }
|