Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

30 rindas
584B

  1. package demod
  2. import "math"
  3. type AM struct{}
  4. func (AM) Name() string { return "AM" }
  5. func (AM) OutputSampleRate() int { return 48000 }
  6. func (AM) Channels() int { return 1 }
  7. func (AM) Demod(iq []complex64, sampleRate int) []float32 {
  8. if len(iq) == 0 {
  9. return nil
  10. }
  11. out := make([]float32, len(iq))
  12. var mean float64
  13. for i, v := range iq {
  14. mag := math.Hypot(float64(real(v)), float64(imag(v)))
  15. mean += mag
  16. out[i] = float32(mag)
  17. }
  18. mean /= float64(len(iq))
  19. for i := range out {
  20. out[i] -= float32(mean)
  21. }
  22. return out
  23. }
  24. func init() { Register(AM{}) }