code: func (s *Sinc) LowPassCoefs() []float64 {
  	if s == nil {
  		return nil
  	}
  	if s._lowPassCoefs != nil && len(s._lowPassCoefs) > 0 {
  		return s._lowPassCoefs
  	}
  	size := s.Taps + 1
  	// sample rate is 2 pi radians per second.
  	// we get the cutt off frequency in radians per second
  	b := (2 * math.Pi) * s.TransitionFreq()
  	s._lowPassCoefs = make([]float64, size)
  	// we use a window of size taps + 1
  	winData := s.Window(size)
  
  	// we only do half the taps because the coefs are symmetric
  	// but we fill up all the coefs
  	for i := 0; i < (s.Taps / 2); i++ {
  		c := float64(i) - float64(s.Taps)/2
  		y := math.Sin(c*b) / (math.Pi * c)
  		s._lowPassCoefs[i] = y * winData[i]
  		s._lowPassCoefs[size-1-i] = s._lowPassCoefs[i]
  	}
  
  	// then we do the ones we missed in case we have an odd number of taps
  	s._lowPassCoefs[s.Taps/2] = 2 * s.TransitionFreq() * winData[s.Taps/2]
  	return s._lowPassCoefs
  }
docs: // LowPassCoefs returns the coeficients to create a low pass filter