mars.tensor.fft.rfftfreq#

mars.tensor.fft.rfftfreq(n, d=1.0, gpu=None, chunk_size=None)[来源]#

返回离散傅里叶变换样本频率 (用于 rfft,irfft)。

返回的浮点张量 f 包含以样本间隔单位的周期为单位的频率槽中心(从零开始)。例如,如果样本间隔是以秒为单位,则频率单位为周期/秒。

给定一个窗口长度 n 和一个采样间隔 d

f = [0, 1, ...,     n/2-1,     n/2] / (d*n)   if n is even
f = [0, 1, ..., (n-1)/2-1, (n-1)/2] / (d*n)   if n is odd

fftfreq 不同(但与 scipy.fftpack.rfftfreq 类似),奈奎斯特频率分量被认为是正值。

Parameters
  • n (int) – 窗口长度。

  • d (标量, 可选) – 采样间隔(采样率的倒数)。默认为 1。

  • gpu (bool, 可选) – 如果为True,则在GPU上分配张量,默认为False

  • chunk_size (inttupleinttupleints, 可选) – 每个维度上所需的块大小

Returns

f – 长度为 n//2 + 1 的张量,包含样本频率。

Return type

张量

示例

>>> import mars.tensor as mt
>>> signal = mt.array([-2, 8, 6, 4, 1, 0, 3, 5, -3, 4], dtype=float)
>>> fourier = mt.fft.rfft(signal)
>>> n = signal.size
>>> sample_rate = 100
>>> freq = mt.fft.fftfreq(n, d=1./sample_rate)
>>> freq.execute()
array([  0.,  10.,  20.,  30.,  40., -50., -40., -30., -20., -10.])
>>> freq = mt.fft.rfftfreq(n, d=1./sample_rate)
>>> freq.execute()
array([  0.,  10.,  20.,  30.,  40.,  50.])