code: def cheby1(
      N, rp, Wn, btype="low", analog=False, output="ba", fs=None
  ):
      """
      Chebyshev type I digital and analog filter design.
  
      Design an Nth-order digital or analog Chebyshev type I filter and
      return the filter coefficients.
  
      Parameters
      ----------
      N : int
          The order of the filter.
      rp : float
          The maximum ripple allowed below unity gain in the passband.
          Specified in decibels, as a positive number.
      Wn : array_like
          A scalar or length-2 sequence giving the critical frequencies.
          For Type I filters, this is the point in the transition band at which
          the gain first drops below -`rp`.
  
          For digital filters, `Wn` are in the same units as `fs`. By default,
          `fs` is 2 half-cycles/sample, so these are normalized from 0 to 1,
          where 1 is the Nyquist frequency. (`Wn` is thus in
          half-cycles / sample.)
  
          For analog filters, `Wn` is an angular frequency (e.g., rad/s).
      btype : {'lowpass', 'highpass', 'bandpass', 'bandstop'}, optional
          The type of filter.  Default is 'lowpass'.
      analog : bool, optional
          When True, return an analog filter, otherwise a digital filter is
          returned.
      output : {'ba', 'zpk', 'sos'}, optional
          Type of output:  numerator/denominator ('ba'), pole-zero ('zpk'), or
          second-order sections ('sos'). Default is 'ba' for backwards
          compatibility, but 'sos' should be used for general-purpose filtering.
      fs : float, optional
          The sampling frequency of the digital system.
  
      Returns
      -------
      b, a : ndarray, ndarray
          Numerator (`b`) and denominator (`a`) polynomials of the IIR filter.
          Only returned if ``output='ba'``.
      z, p, k : ndarray, ndarray, float
          Zeros, poles, and system gain of the IIR filter transfer
          function.  Only returned if ``output='zpk'``.
      sos : ndarray
          Second-order sections representation of the IIR filter.
          Only returned if ``output='sos'``.
  
      See Also
      --------
      cheb1ord, cheb1ap
      iirfilter
      scipy.signal.cheby1
  
      Notes
      -----
      The Chebyshev type I filter maximizes the rate of cutoff between the
      frequency response's passband and stopband, at the expense of ripple in
      the passband and increased ringing in the step response.
  
      Type I filters roll off faster than Type II (`cheby2`), but Type II
      filters do not have any ripple in the passband.
  
      The equiripple passband has N maxima or minima (for example, a
      5th-order filter has 3 maxima and 2 minima). Consequently, the DC gain is
      unity for odd-order filters, or -rp dB for even-order filters.
      """
      return iirfilter(
          N,
          Wn,
          rp=rp,
          btype=btype,
          analog=analog,
          output=output,
          ftype="cheby1",
          fs=fs,
      )
  
file_path: cupy/cupyx/scipy/signal/_iir_filter_design.py
imports: from math import pi
  import math
  import cupy
  from cupyx.scipy.signal._iir_filter_conversions import lp2bp_zpk, lp2lp_zpk, lp2hp_zpk, lp2bs_zpk, bilinear_zpk, zpk2tf, zpk2sos
  from cupyx.scipy.signal._iir_filter_conversions import buttap, cheb1ap, cheb2ap, ellipap, buttord, ellipord, cheb1ord, cheb2ord, _validate_gpass_gstop
label_desc: Use image node_id 4 for calling a global function with example usage: cheby1(N, rp, Wn, btype, analog, output, fs) and returns: iirfilter