bundles / scipy 1.17.1 / scipy / signal / _filter_design / besselap
function
scipy.signal._filter_design:besselap
Signature
def besselap ( N , norm = phase , * , xp = None , device = None ) Summary
Return (z,p,k) for analog prototype of an Nth-order Bessel filter.
Parameters
N: intThe order of the filter.
norm: {'phase', 'delay', 'mag'}, optionalFrequency normalization:
phaseThe filter is normalized such that the phase response reaches its midpoint at an angular (e.g., rad/s) cutoff frequency of 1. This happens for both low-pass and high-pass filters, so this is the "phase-matched" case. [6]
The magnitude response asymptotes are the same as a Butterworth filter of the same order with a cutoff of
Wn.This is the default, and matches MATLAB's implementation.
delayThe filter is normalized such that the group delay in the passband is 1 (e.g., 1 second). This is the "natural" type obtained by solving Bessel polynomials
magThe filter is normalized such that the gain magnitude is -3 dB at angular frequency 1. This is called "frequency normalization" by Bond. [1]
xp: array_namespace, optionalOptional array namespace. Should be compatible with the array API standard, or supported by array-api-compat. Default:
numpydevice: anyoptional device specification for output. Should match one of the supported device specification in
xp.
Returns
z: ndarray[float64]Zeros of the transfer function. Is always an empty array.
p: ndarray[complex128]Poles of the transfer function.
k: floatGain of the transfer function. For phase-normalized, this is always 1.
Notes
To find the pole locations, approximate starting points are generated [2] for the zeros of the ordinary Bessel polynomial [3], then the Aberth-Ehrlich method [4] [5] is used on the Kv(x) Bessel function to calculate more accurate zeros, and these locations are then inverted about the unit circle.
Array API Standard Support
besselap has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable SCIPY_ARRAY_API=1 and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.
==================== ==================== ==================== Library CPU GPU ==================== ==================== ==================== NumPy ✅ n/a CuPy n/a ✅ PyTorch ✅ ✅ JAX ✅ ✅ Dask ✅ n/a ==================== ==================== ====================
See
dev-arrayapifor more information.
See also
- bessel
Filter design function using this prototype
Aliases
-
scipy.signal.besselap