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


Python cusignal.filtering.resample.resample用法及代码示例


用法:

cusignal.filtering.resample.resample(x, num, t=None, axis=0, window=None, domain='time')

沿给定轴使用傅里叶方法将 x 重新采样到 num 样本。

重新采样的信号以与 x 相同的值开始,但以 len(x) / num * (spacing of x) 的间距进行采样。因为使用了傅里叶方法,所以假设信号是周期性的。

参数

xarray_like

要重新采样的数据。

numint

重采样信号中的样本数。

t数组,可选

如果给出t,则假定它是与x中的信号数据相关联的样本位置。

axis整数,可选

重新采样的x 的轴。默认值为 0。

window数组,可调用,字符串,浮点数或元组,可选

指定应用于傅里叶域中的信号的窗口。详情见下文。

domain字符串,可选

指示输入域的字符串 x

time

将输入x 视为time-domain。 (默认)

freq

将输入x 视为frequency-domain。

返回

resampled_x 或 (resampled_x, resampled_t)

重采样数组,或者,如果给定 t,则为包含重采样数组和相应重采样位置的元组。

注意

参数 window 控制一个 Fourier-domain 窗口,该窗口在补零之前使傅里叶频谱逐渐变窄,以减轻您不打算将其解释为 band-limited 的采样信号的重采样值中的振铃。

如果 window 是一个函数,则使用指示频率区间的输入向量(即 fftfreq(x.shape[axis]) )调用它。

如果 window 是与 x.shape[axis] 长度相同的数组,则假定它是直接应用于傅里叶域的窗口(首先是 dc 和 low-frequency)。

对于任何其他类型的 window ,调用函数 cusignal.get_window 来生成窗口。

返回向量的第一个样本与输入向量的第一个样本相同。样本之间的间距从 dx 更改为 dx * len(x) / num

如果t 不是None,则表示旧样本位置,新样本位置将与新样本一起返回。

如前所述,resample 使用 FFT 变换,如果输入或输出样本的数量很大且为素数,这可能会非常慢;见scipy.fftpack.fft

例子

请注意,重采样数据的末尾上升以满足下一个周期的第一个样本:

>>> import cusignal
>>> import cupy as cp
>>> x = cp.linspace(0, 10, 20, endpoint=False)
>>> y = cp.cos(-x**2/6.0)
>>> f = cusignal.resample(y, 100)
>>> xnew = cp.linspace(0, 10, 100, endpoint=False)
>>> import matplotlib.pyplot as plt
>>> plt.plot(cp.asnumpy(x), cp.asnumpy(y), 'go-', cp.asnumpy(xnew),                 cp.asnumpy(f), '.-', 10, cp.asnumpy(y[0]), 'ro')
>>> plt.legend(['data', 'resampled'], loc='best')
>>> plt.show()

相关用法


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