parameters: (N, rp)
return_statement: return z, p, k
docstring: Return (z,p,k) for Nth-order Chebyshev type I analog lowpass filter.
  
      The returned filter prototype has `rp` decibels of ripple in the passband.
  
      The filter's angular (e.g. rad/s) cutoff frequency is normalized to 1,
      defined as the point at which the gain first drops below ``-rp``.
  
      See Also
      --------
      cheby1 : Filter design function using this prototype
docstring_summary: Return (z,p,k) for Nth-order Chebyshev type I analog lowpass filter.
docstring_tokens: Return ( z p k ) for Nth - order Chebyshev type I analog lowpass filter .
function: def cheb1ap(N, rp):
      """
      Return (z,p,k) for Nth-order Chebyshev type I analog lowpass filter.
  
      The returned filter prototype has `rp` decibels of ripple in the passband.
  
      The filter's angular (e.g. rad/s) cutoff frequency is normalized to 1,
      defined as the point at which the gain first drops below ``-rp``.
  
      See Also
      --------
      cheby1 : Filter design function using this prototype
  
      """
      if abs(int(N)) != N:
          raise ValueError("Filter order must be a nonnegative integer")
      elif N == 0:
          # Avoid divide-by-zero error
          # Even order filters have DC gain of -rp dB
          return numpy.array([]), numpy.array([]), 10**(-rp/20)
      z = numpy.array([])
  
      # Ripple factor (epsilon)
      eps = numpy.sqrt(10 ** (0.1 * rp) - 1.0)
      mu = 1.0 / N * arcsinh(1 / eps)
  
      # Arrange poles in an ellipse on the left half of the S-plane
      m = numpy.arange(-N+1, N, 2)
      theta = pi * m / (2*N)
      p = -sinh(mu + 1j*theta)
  
      k = numpy.prod(-p, axis=0).real
      if N % 2 == 0:
          k = k / sqrt((1 + eps * eps))
  
      return z, p, k
function_tokens: def cheb1ap ( N , rp ) : if abs ( int ( N ) ) != N : raise ValueError ( "Filter order must be a nonnegative integer" ) elif N == 0 : # Avoid divide-by-zero error # Even order filters have DC gain of -rp dB return numpy . array ( [ ] ) , numpy . array ( [ ] ) , 10 ** ( - rp / 20 ) z = numpy . array ( [ ] ) # Ripple factor (epsilon) eps = numpy . sqrt ( 10 ** ( 0.1 * rp ) - 1.0 ) mu = 1.0 / N * arcsinh ( 1 / eps ) # Arrange poles in an ellipse on the left half of the S-plane m = numpy . arange ( - N + 1 , N , 2 ) theta = pi * m / ( 2 * N ) p = - sinh ( mu + 1j * theta ) k = numpy . prod ( - p , axis = 0 ) . real if N % 2 == 0 : k = k / sqrt ( ( 1 + eps * eps ) ) return z , p , k