当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy signal.firwin2用法及代码示例


本文简要介绍 python 语言中 scipy.signal.firwin2 的用法。

用法:

scipy.signal.firwin2(numtaps, freq, gain, *, nfreqs=None, window='hamming', nyq=<object object>, antisymmetric=False, fs=None)#

使用窗口方法设计 FIR 滤波器。

根据给定的频率 freq 和相应的增益增益,此函数构造一个具有线性相位和(近似)给定频率响应的 FIR 滤波器。

参数

numtaps int

FIR 滤波器中的抽头数。 numtaps 必须小于 nfreqs。

freq 数组,一维

频率采样点。通常为 0.0 至 1.0,其中 1.0 为奈奎斯特。奈奎斯特频率是一半fs。中的值频率必须是非减的。一个值可以重复一次以实现不连续性。第一个值在频率必须为 0,并且最后一个值必须为fs/2。值 0 和fs/2不得重复。

gain array_like

滤波器在频率采样点处增益。根据滤波器类型,对增益值应用了某些约束,详细信息请参见注释。

nfreqs 整数,可选

用于构造过滤器的插值网格的大小。对于最有效的行为,这应该是 2 加 1 的幂(例如,129、257 等)。默认值是不小于 numtaps 的 2 的最小幂的 1。 nfreqs 必须大于 numtaps。

window string or (string, float) or float, or None, 可选

要使用的窗口函数。默认为“hamming”。有关可能值的完整列表,请参阅 scipy.signal.get_window 。如果为 None,则不应用窗口函数。

nyq 浮点数,可选,已弃用

这就是奈奎斯特频率。 freq 中的每个频率必须介于 0 和 nyq 之间。默认值为 1。

antisymmetric 布尔型,可选

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

fs 浮点数,可选

信号的采样频率。每个频率在隔断必须介于 0 和fs/2.默认值为 2。

返回

taps ndarray

FIR 滤波器的滤波器系数,作为长度为 numtaps 的一维数组。

注意

根据给定的一组频率和增益,在频域中构建所需的响应。将逆 FFT 应用于所需的响应以创建相关的卷积核,并返回该核的第一个 numtaps 系数,按窗口缩放。

FIR 滤波器将具有线性相位。过滤器的类型由“numtaps”的值和反对称标志决定。有四种可能的组合:

  • odd numtaps, antisymmetric is False, type I filter is produced

  • even numtaps, antisymmetric is False, type II filter is produced

  • odd numtaps, antisymmetric is True, type III filter is produced

  • even numtaps, antisymmetric is True, type IV filter is produced

除了 I 型滤波器之外,所有滤波器的幅度响应均受以下约束:

  • type II - zero at the Nyquist frequency

  • type III - zero at zero and Nyquist frequencies

  • type IV - zero at zero frequency

参考

[1]

Oppenheim, A. V. 和 Schafer, R. W.,“Discrete-Time 信号处理”,Prentice-Hall,新泽西州恩格尔伍德悬崖 (1989)。 (例如,参见第 7.4 节。)

[2]

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

例子

一个低通 FIR 滤波器,其响应在 [0.0, 0.5] 上为 1,并且在 [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]

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.signal.firwin2。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。