Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

22 lines
422B

  1. package dsp
  2. // ApplyFIRReal applies real FIR taps to real signal.
  3. func ApplyFIRReal(x []float32, taps []float64) []float32 {
  4. if len(x) == 0 || len(taps) == 0 {
  5. return nil
  6. }
  7. out := make([]float32, len(x))
  8. for i := 0; i < len(x); i++ {
  9. var acc float64
  10. for k := 0; k < len(taps); k++ {
  11. idx := i - k
  12. if idx < 0 {
  13. break
  14. }
  15. acc += float64(x[idx]) * taps[k]
  16. }
  17. out[i] = float32(acc)
  18. }
  19. return out
  20. }