用法:
cusignal.filtering.resample.resample_poly(x, up, down, axis=0, window=('kaiser', 5.0), gpupath=True)
使用多相滤波沿给定轴重新采样
x
。信号
x
上采样系数up
,应用 zero-phase low-pass FIR 滤波器,然后下采样系数down
。结果采样率是up / down
乘以原始采样率。在滤波步骤期间,超出信号边界的值被假定为零。- x:array_like
要重新采样的数据。
- up:int
上采样因子。
- down:int
下采样因子。
- axis:整数,可选
重新采样的
x
的轴。默认值为 0。- window:字符串、元组或类似数组,可选
用于设计low-pass 滤波器或要采用的 FIR 滤波器系数的所需窗口。详情见下文。
- gpupath:布尔型,可选
滤波器设计的可选路径。如果过滤器尺寸很小,gpupath == False 可能是可取的。
- resampled_x:数组
重新采样的数组。
参数:
返回:
注意:
当样本数量很大且为素数时,或者当样本数量很大且
up
和down
共享较大的最大公分母时,这种多相方法可能会比cusignal.resample
中的傅立叶方法更快。使用的 FIR 滤波器的长度将取决于max(up, down) // gcd(up, down)
,多相滤波期间的操作数将取决于滤波器长度和down
(详见cusignal.upfirdn
)。参数
window
指定 FIR low-pass 滤波器设计。如果
window
是数组,则假定它是FIR 滤波器系数。请注意,FIR 滤波器是在上采样步骤之后应用的,因此应将其设计为以比原始采样频率高up//gcd(up, down)
的因子对信号进行操作。此函数的输出将相对于此数组居中,因此如果通常需要 zero-phase 过滤器,则最好通过具有奇数个样本的对称过滤器。对于任何其他类型的
window
,调用函数cusignal.get_window
和cusignal.firwin
以生成适当的滤波器系数。返回向量的第一个样本与输入向量的第一个样本相同。样本之间的间距从
dx
更改为dx * down / float(up)
。例子:
请注意,对于 FFT 方法,重采样数据的末尾会上升以满足下一个周期的第一个样本,而对于多相方法,则接近于零:
>>> import cusignal >>> import cupy as cp
>>> x = cp.linspace(0, 10, 20, endpoint=False) >>> y = cp.cos(-x**2/6.0) >>> f_fft = cusignal.resample(y, 100) >>> f_poly = cusignal.resample_poly(y, 100, 20) >>> xnew = cp.linspace(0, 10, 100, endpoint=False)
>>> import matplotlib.pyplot as plt >>> plt.plot(cp.asnumpy(xnew), cp.asnumpy(f_fft), 'b.-', cp.asnumpy(xnew), cp.asnumpy(f_poly), 'r.-') >>> plt.plot(cp.asnumpy(x), cp.asnumpy(y), 'ko-') >>> plt.plot(10, cp.asnumpy(y[0]), 'bo', 10, 0., 'ro') # boundaries >>> plt.legend(['resample', 'resamp_poly', 'data'], loc='best') >>> plt.show()
相关用法
- Python cusignal.filtering.resample.resample用法及代码示例
- Python cusignal.filter_design.fir_filter_design.cmplx_sort用法及代码示例
- Python cusignal.filter_design.fir_filter_design.firwin用法及代码示例
- Python cusignal.windows.windows.hann用法及代码示例
- Python cusignal.windows.windows.general_gaussian用法及代码示例
- Python cusignal.waveforms.waveforms.chirp用法及代码示例
- Python cusignal.windows.windows.gaussian用法及代码示例
- Python cusignal.windows.windows.hamming用法及代码示例
- Python cusignal.windows.windows.get_window用法及代码示例
- Python cusignal.waveforms.waveforms.gausspulse用法及代码示例
- Python cusignal.peak_finding.peak_finding.argrelmin用法及代码示例
- Python cusignal.windows.windows.bartlett用法及代码示例
- Python cusignal.spectral_analysis.spectral.welch用法及代码示例
- Python cusignal.windows.windows.chebwin用法及代码示例
- Python cusignal.windows.windows.general_cosine用法及代码示例
- Python cusignal.peak_finding.peak_finding.argrelextrema用法及代码示例
- Python cusignal.convolution.convolve.convolve2d用法及代码示例
- Python cusignal.convolution.correlate.correlate用法及代码示例
- Python cusignal.convolution.convolve.fftconvolve用法及代码示例
- Python cusignal.waveforms.waveforms.unit_impulse用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cusignal.filtering.resample.resample_poly。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。