scipy.signal.firwin2

scipy.signal.firwin2(numtaps, freq, gain, nfreqs=None, window='hamming', nyq=None, antisymmetric=False, fs=None)[源代码]

冷杉过滤采用窗口法设计。

从给定的频率 freq 以及相应的增益 gain ,此函数构造具有线性相位和(近似)给定频率响应的FIR过滤。

参数
numtaps集成

冷杉过滤中的点击次数。 numtaps 必须小于 nfreqs

freq类阵列,一维

频率采样点。通常为0.0到1.0,其中1.0表示奈奎斯特。奈奎斯特的频率是一半 fs 。中的值 freq 必须是非递减的。一个值可以重复一次以实现不连续。中的第一个值 freq 必须为0,最后一个值必须为 fs/2 。值0和 fs/2 不能重复。

gainarray_like

过滤在频率采样点获得收益。根据过滤类型的不同,会应用某些增益值限制,有关详细信息,请参阅注释。

nfreqs整型,可选

用于构建过滤的插值网格的大小。对于最有效的行为,这应该是2加1的幂(例如,129、257等)。缺省值是不小于的最小2次方加1 numtapsnfreqs 必须大于 numtaps

windowString or(String,Float)或Float或None,可选

要使用的窗口函数。默认值为“Hamming”。看见 scipy.signal.get_window 有关可能值的完整列表,请执行以下操作。如果无,则不应用任何窗口函数。

nyq浮动,可选

Deprecated. Use `fs` instead. 这是奈奎斯特的频率。输入的每个频率 freq 必须介于0和0之间 nyq 。默认值为1。

antisymmetric布尔值,可选

产生的脉冲响应是对称的还是反对称的。有关更多详细信息,请参阅注释。

fs浮动,可选

信号的采样频率。输入的每个频率 cutoff 必须介于0和0之间 fs/2 。默认值为2。

退货
tapsndarray

作为一维长度数组的FIR过滤的过滤系数 numtaps

注意事项

根据给定的一组频率和增益,在频域中构造期望的响应。逆FFT被应用于期望的响应以创建相关联的卷积核,并且第一 numtaps 此核的系数,按 window ,则返回。

杉木过滤将具有线性相位。过滤的类型由‘NUMBALTPS’的值和 antisymmetric 旗帜。有四种可能的组合:

  • 奇数 numtapsantisymmetric 为假,则生产I型过滤

  • 甚至 numtapsantisymmetric 为假,则生产类型II过滤

  • 奇数 numtapsantisymmetric 是真的,生产的是III型过滤

  • 甚至 numtapsantisymmetric 是真的,生产的是IV型过滤

除类型I滤波器外,所有滤波器的幅值响应均受以下限制:

  • 类型II--奈奎斯特频率为零

  • 类型III--零频率和奈奎斯特频率为零

  • 类型IV--零频率时为零

0.9.0 新版功能.

参考文献

1

奥本海姆和谢弗,“离散时间信号处理”,普伦蒂斯-霍尔,恩格尔伍德悬崖,新泽西州(1989)。(例如,参见7.4节。)

2

“数字信号处理的科学家和工程师指南”,CH。17.http://www.dspguide.com/ch17/1.htm

示例

响应为1开的低通冷杉过滤 [0.0,0.5] ,并且随着时间的推移呈线性下降 [0.5、1.0] 从1到0:

>>> from scipy import signal
>>> taps = signal.firwin2(150, [0.0, 0.5, 1.0], [1.0, 1.0, 0.0])
>>> print(taps[72:78])
[-0.02286961 -0.06362756  0.57310236  0.57310236 -0.06362756 -0.02286961]