cupyx.scipy.signal.invres#
- cupyx.scipy.signal.invres(r, p, k, tol=0.001, rtype='avg')[源码]#
根据部分分式展开式计算 b(s) 和 a(s)。
如果分子 b 的阶数是 M,分母 a 的阶数是 N,
b(s) b[0] s**(M) + b[1] s**(M-1) + ... + b[M] H(s) = ------ = ------------------------------------------ a(s) a[0] s**(N) + a[1] s**(N-1) + ... + a[N]
则部分分式展开式 H(s) 定义为
r[0] r[1] r[-1] = -------- + -------- + ... + --------- + k(s) (s-p[0]) (s-p[1]) (s-p[-1])
如果存在重复根(彼此之间的距离小于 tol),则 H(s) 包含以下形式的项:
r[i] r[i+1] r[i+n-1] -------- + ----------- + ... + ----------- (s-p[i]) (s-p[i])**2 (s-p[i])**n
此函数用于 s 或 z 的正幂次多项式,例如模拟滤波器或控制工程中的数字滤波器。对于 z 的负幂次(DSP 中数字滤波器典型),请使用 invresz。
- 参数:
r (array_like) – 与极点对应的留数。对于重复极点,留数必须按幂次升序排列。
p (array_like) – 极点。相等的极点必须相邻。
k (array_like) – 直通项多项式的系数。
tol (float, optional) – 两个根之间距离小于此容差时,被视为相等。默认为 1e-3。更多详细信息请参阅 unique_roots。
rtype ({'avg', 'min', 'max'}, optional) – 用于计算代表一组相同根的根的方法。默认为 ‘avg’。更多详细信息请参阅 unique_roots。
- 返回:
b (ndarray) – 分子多项式系数。
a (ndarray) – 分母多项式系数。