Wideband autonomous SDR analysis engine forked from sdr-visual-suite
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

55 行
1.6KB

  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. ClassFSK SignalClass = "FSK"
  12. ClassPSK SignalClass = "PSK"
  13. ClassDMR SignalClass = "DMR"
  14. ClassDStar SignalClass = "D-STAR"
  15. ClassFT8 SignalClass = "FT8"
  16. ClassWSPR SignalClass = "WSPR"
  17. ClassNoise SignalClass = "NOISE"
  18. ClassUnknown SignalClass = "UNKNOWN"
  19. )
  20. // Features are lightweight spectral features derived from a signal slice.
  21. type Features struct {
  22. // Spectral
  23. BW3dB float64 `json:"bw_3db_hz"`
  24. BW90 float64 `json:"bw_90_hz"`
  25. SpectralFlat float64 `json:"spectral_flat"`
  26. PeakToAvg float64 `json:"peak_to_avg_db"`
  27. Symmetry float64 `json:"symmetry"`
  28. RolloffLeft float64 `json:"rolloff_left_db_khz"`
  29. RolloffRight float64 `json:"rolloff_right_db_khz"`
  30. // Temporal
  31. EnvVariance float64 `json:"env_variance"`
  32. ZeroCross float64 `json:"zero_cross_rate"`
  33. InstFreqStd float64 `json:"inst_freq_std"`
  34. CrestFactor float64 `json:"crest_factor"`
  35. }
  36. // Classification is the classifier output attached to signals/events.
  37. type Classification struct {
  38. ModType SignalClass `json:"mod_type"`
  39. Confidence float64 `json:"confidence"`
  40. BW3dB float64 `json:"bw_3db_hz"`
  41. Features Features `json:"features,omitempty"`
  42. SecondBest SignalClass `json:"second_best,omitempty"`
  43. }
  44. // SignalInput is the minimal input needed for classification.
  45. type SignalInput struct {
  46. FirstBin int
  47. LastBin int
  48. SNRDb float64
  49. }