cupyx.scipy.signal.firwin2#
- cupyx.scipy.signal.firwin2(numtaps, freq, gain, nfreqs=None, window='hamming', nyq=None, antisymmetric=False, fs=2.0)[source]#
使用窗函数法设计 FIR 滤波器。
根据给定的频率 freq 和对应的增益 gain,此函数构造一个具有线性相位和(近似)给定频率响应的 FIR 滤波器。
- 参数:
numtaps (int) – FIR 滤波器中的抽头数。numtaps 必须小于 nfreqs。
freq (array_like, 1-D) – 频率采样点。通常范围为 0.0 到 1.0,其中 1.0 是奈奎斯特频率。奈奎斯特频率是 fs 的一半。freq 中的值必须是非递减的。一个值可以重复一次以实现不连续性。freq 中的第一个值必须为 0,最后一个值必须为
fs/2
。值 0 和fs/2
不得重复。gain (array_like) – 频率采样点处的滤波器增益。根据滤波器类型,会对增益值施加某些约束,详见注意事项。
nfreqs (int, optional) – 用于构造滤波器的插值网格大小。为了获得最高效率,此值应为 2 的幂加 1(例如 129、257 等)。默认值为不小于 numtaps 的最小 2 的幂再加 1。nfreqs 必须大于 numtaps。
window (string or (string, float) or float, or None, optional) – 要使用的窗函数。默认为“hamming”。有关可能值的完整列表,请参阅 scipy.signal.get_window。如果为 None,则不应用窗函数。
antisymmetric (bool, optional) – 结果脉冲响应是否对称/反对称。更多详细信息请参阅注意事项。
fs (float, optional) – 信号的采样频率。freq 中的每个频率必须在 0 和
fs/2
之间。默认为 2。
- 返回:
taps – FIR 滤波器的滤波器系数,作为长度为 numtaps 的 1-D 数组。
- 返回类型:
另请参阅
scipy.signal.firwin2
,firls
,firwin
,minimum_phase
,remez
注意事项
根据给定的频率和增益集,在频域中构造期望的响应。对期望响应应用逆 FFT 以创建相关的卷积核,并返回此核的前 numtaps 个系数(按 window 缩放)。FIR 滤波器将具有线性相位。滤波器的类型由 'numtaps' 的值和 antisymmetric 标志确定。有四种可能的组合:
奇数 numtaps,antisymmetric 为 False,产生类型 I 滤波器
偶数 numtaps,antisymmetric 为 False,产生类型 II 滤波器
奇数 numtaps,antisymmetric 为 True,产生类型 III 滤波器
偶数 numtaps,antisymmetric 为 True,产生类型 IV 滤波器
除类型 I 滤波器外,所有滤波器的幅度响应都受以下约束:
类型 II – 在奈奎斯特频率处为零
类型 III – 在零频率和奈奎斯特频率处为零
类型 IV – 在零频率处为零