cupyx.scipy.signal.group_delay#

cupyx.scipy.signal.group_delay(system, w=512, whole=False, fs=6.283185307179586)[source]#

计算数字滤波器的群延时。

群延时衡量了信号中各种频谱分量的幅度包络被滤波器延迟了多少个样本。它正式定义为连续(未展开)相位的导数

          d        jw
D(w) = - -- arg H(e)
         dw
参数:
  • system (元组array_like对象 (b, a)) – 滤波器传递函数的分子和分母系数。

  • w ({None, int, array_like对象}, 可选) –

    如果是一个整数,则在该数量的频率处计算(默认值为 N=512)。

    如果是 array_like 对象,则在给定的频率处计算延迟。这些频率的单位与 fs 相同。

  • whole (布尔值, 可选) – 通常,频率计算范围是 0 到奈奎斯特频率(fs/2,单位圆的上半部分)。如果 whole 为 True,则计算频率范围是 0 到 fs。如果 w 是 array_like 对象,则忽略此参数。

  • fs (浮点数, 可选) – 数字系统的采样频率。默认为 2*pi 弧度/样本(因此 w 的范围是 0 到 pi)。

返回:

  • w (ndarray) – 计算群延时所用的频率,单位与 fs 相同。默认情况下,w 被归一化到 [0, pi) 范围(弧度/样本)。

  • gd (ndarray) – 群延时。

另请参阅

freqz

数字滤波器的频率响应

注意

MATLAB 中的类似函数称为 grpdelay

如果传递函数 \(H(z)\) 在单位圆上有零点或极点,则相应频率处的群延时是未定义的。当出现这种情况时,会发出警告,并且在这些频率处将群延时设置为 0。

有关群延时数值计算的详细信息,请参阅 [1]

参考