jax.numpy.fft.rfft

内容

jax.numpy.fft.rfft#

jax.numpy.fft.rfft(a, n=None, axis=-1, norm=None)[source]#

计算实值数组的一维离散傅里叶变换。

JAX 实现 numpy.fft.rfft().

参数:
  • a (ArrayLike) – 实值输入数组。

  • n (int | None | None) – int。指定输入沿 axis 的有效维度。如果未指定,则默认为输入沿 axis 的维度。

  • axis (int) – int,默认为 -1。指定计算变换的轴。如果未指定,则沿轴 -1 计算变换。

  • norm (str | None | None) – string。规范化模式。“backward”、“ortho” 和 “forward” 受支持。

返回值:

包含 a 的一维离散傅里叶变换的数组。沿着 axis 轴的数组维度为 (n/2)+1(如果 n 为偶数)或 (n+1)/2(如果 n 为奇数)。

返回类型:

数组

另请参阅

示例

jnp.fft.rfft 默认情况下沿 axis -1 计算变换。

>>> x = jnp.array([[1, 3, 5],
...                [2, 4, 6]])
>>> with jnp.printoptions(precision=2, suppress=True):
...   jnp.fft.rfft(x)
Array([[ 9.+0.j  , -3.+1.73j],
       [12.+0.j  , -3.+1.73j]], dtype=complex64)

n=5 时,沿轴 -1 的变换维度将为 (5+1)/2 =3,其他轴的维度将与输入相同。

>>> with jnp.printoptions(precision=2, suppress=True):
...   jnp.fft.rfft(x, n=5)
Array([[ 9.  +0.j  , -2.12-5.79j,  0.12+2.99j],
       [12.  +0.j  , -1.62-7.33j,  0.62+3.36j]], dtype=complex64)

n=4axis=0 时,沿 axis 0 的变换维度将为 (4/2)+1 =3,其他轴的维度将与输入相同。

>>> with jnp.printoptions(precision=2, suppress=True):
...   jnp.fft.rfft(x, n=4, axis=0)
Array([[ 3.+0.j,  7.+0.j, 11.+0.j],
       [ 1.-2.j,  3.-4.j,  5.-6.j],
       [-1.+0.j, -1.+0.j, -1.+0.j]], dtype=complex64)