Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

49 строки
1.4KB

  1. package classifier
  2. // SignalClass is a coarse modulation label.
  3. type SignalClass string
  4. const (
  5. ClassAM SignalClass = "AM"
  6. ClassNFM SignalClass = "NFM"
  7. ClassWFM SignalClass = "WFM"
  8. ClassSSBUSB SignalClass = "USB"
  9. ClassSSBLSB SignalClass = "LSB"
  10. ClassCW SignalClass = "CW"
  11. ClassNoise SignalClass = "NOISE"
  12. ClassUnknown SignalClass = "UNKNOWN"
  13. )
  14. // Features are lightweight spectral features derived from a signal slice.
  15. type Features struct {
  16. // Spectral
  17. BW3dB float64 `json:"bw_3db_hz"`
  18. BW90 float64 `json:"bw_90_hz"`
  19. SpectralFlat float64 `json:"spectral_flat"`
  20. PeakToAvg float64 `json:"peak_to_avg_db"`
  21. Symmetry float64 `json:"symmetry"`
  22. RolloffLeft float64 `json:"rolloff_left_db_khz"`
  23. RolloffRight float64 `json:"rolloff_right_db_khz"`
  24. // Temporal
  25. EnvVariance float64 `json:"env_variance"`
  26. ZeroCross float64 `json:"zero_cross_rate"`
  27. InstFreqStd float64 `json:"inst_freq_std"`
  28. CrestFactor float64 `json:"crest_factor"`
  29. }
  30. // Classification is the classifier output attached to signals/events.
  31. type Classification struct {
  32. ModType SignalClass `json:"mod_type"`
  33. Confidence float64 `json:"confidence"`
  34. BW3dB float64 `json:"bw_3db_hz"`
  35. Features Features `json:"features,omitempty"`
  36. SecondBest SignalClass `json:"second_best,omitempty"`
  37. }
  38. // SignalInput is the minimal input needed for classification.
  39. type SignalInput struct {
  40. FirstBin int
  41. LastBin int
  42. SNRDb float64
  43. }