def comb(delay, tau=inf):
  """
  Feedback comb filter for a given time constant (and delay).

    ``y[n] = x[n] + alpha * y[n - delay]``

  Parameters
  ----------
  delay :
    Feedback delay (lag), in number of samples.
  tau :
    Time decay (up to ``1/e``, or -8.686 dB), in number of samples, which
    allows finding ``alpha = e ** (-delay / tau)``. Defaults to ``inf``
    (infinite), which means alpha = 1.

  Returns
  -------
  A ZFilter instance with the comb filter.

  See Also
  --------
  freq2lag :
    Frequency (in rad/sample) to delay (in samples) converter.

  """
  alpha = e ** (-delay / tau)
  return 1 / (1 - alpha * z ** -delay)
Feedback comb filter for a given time constant (and delay).

    ``y[n] = x[n] + alpha * y[n - delay]``

  Parameters
  ----------
  delay :
    Feedback delay (lag), in number of samples.
  tau :
    Time decay (up to ``1/e``, or -8.686 dB), in number of samples, which
    allows finding ``alpha = e ** (-delay / tau)``. Defaults to ``inf``
    (infinite), which means alpha = 1.

  Returns
  -------
  A ZFilter instance with the comb filter.

  See Also
  --------
  freq2lag :
    Frequency (in rad/sample) to delay (in samples) converter.