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 numtaps 。 nfreqs 必须大于 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 旗帜。有四种可能的组合:
奇数 numtaps , antisymmetric 为假,则生产I型过滤
甚至 numtaps , antisymmetric 为假,则生产类型II过滤
奇数 numtaps , antisymmetric 是真的,生产的是III型过滤
甚至 numtaps , antisymmetric 是真的,生产的是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]