本文简要介绍 python 语言中 scipy.signal.decimate
的用法。
用法:
scipy.signal.decimate(x, q, n=None, ftype='iir', axis=-1, zero_phase=True)#
应用抗混叠滤波器后对信号进行下采样。
默认情况下,使用 8 阶 Chebyshev I 型滤波器。如果 ftype 为‘fir’,则使用带有汉明窗的 30 点 FIR 滤波器。
- x: array_like
要下采样的信号,作为 N 维数组。
- q: int
下采样因子。使用 IIR 下采样时,建议多次调用
decimate
,以实现高于 13 的下采样因子。- n: 整数,可选
过滤器的顺序(1 小于 ‘fir’ 的长度)。 ‘iir’ 的默认值为 8,‘fir’ 的下采样因子为 20 倍。
- ftype: str {‘iir’, ‘fir’} 或
dlti
实例,可选 如果‘iir’或‘fir’,指定低通滤波器的类型。如果是
dlti
对象的实例,则在下采样之前使用该对象进行过滤。- axis: 整数,可选
要抽取的轴。
- zero_phase: 布尔型,可选
在使用 IIR 滤波器时,通过使用
filtfilt
而不是lfilter
进行滤波来防止相移,并在使用 FIR 滤波器时将输出移回滤波器的群延迟。建议使用默认值True
,因为通常不需要相移。
- y: ndarray
下采样信号。
参数 ::
返回 ::
注意:
zero_phase
关键字是在 0.18.0 中添加的。在 0.18.0 中添加了将dlti
实例用作ftype
的可能性。例子:
>>> import numpy as np >>> from scipy import signal >>> import matplotlib.pyplot as plt
定义波参数。
>>> wave_duration = 3 >>> sample_rate = 100 >>> freq = 2 >>> q = 5
计算样本数。
>>> samples = wave_duration*sample_rate >>> samples_decimated = int(samples/q)
创建余弦波。
>>> x = np.linspace(0, wave_duration, samples, endpoint=False) >>> y = np.cos(x*np.pi*freq*2)
抽取余弦波。
>>> ydem = signal.decimate(y, q) >>> xnew = np.linspace(0, wave_duration, samples_decimated, endpoint=False)
绘制原始波和抽取波。
>>> plt.plot(x, y, '.-', xnew, ydem, 'o-') >>> plt.xlabel('Time, Seconds') >>> plt.legend(['data', 'decimated'], loc='best') >>> plt.show()
相关用法
- Python SciPy signal.deconvolve用法及代码示例
- Python SciPy signal.detrend用法及代码示例
- Python SciPy signal.dfreqresp用法及代码示例
- Python SciPy signal.dbode用法及代码示例
- Python SciPy signal.dlti用法及代码示例
- Python SciPy signal.dimpulse用法及代码示例
- Python SciPy signal.dstep用法及代码示例
- Python SciPy signal.dlsim用法及代码示例
- Python SciPy signal.czt_points用法及代码示例
- Python SciPy signal.chirp用法及代码示例
- Python SciPy signal.residue用法及代码示例
- Python SciPy signal.iirdesign用法及代码示例
- Python SciPy signal.max_len_seq用法及代码示例
- Python SciPy signal.kaiser_atten用法及代码示例
- Python SciPy signal.oaconvolve用法及代码示例
- Python SciPy signal.hilbert用法及代码示例
- Python SciPy signal.ricker用法及代码示例
- Python SciPy signal.group_delay用法及代码示例
- Python SciPy signal.cheb2ord用法及代码示例
- Python SciPy signal.get_window用法及代码示例
- Python SciPy signal.lfilter用法及代码示例
- Python SciPy signal.morlet用法及代码示例
- Python SciPy signal.coherence用法及代码示例
- Python SciPy signal.TransferFunction用法及代码示例
- Python SciPy signal.residuez用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.signal.decimate。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。