jax.numpy.fft.irfftn#
- jax.numpy.fft.irfftn(a, s=None, axes=None, norm=None)[source]#
计算实值多维逆离散傅里叶变换。
JAX 实现
numpy.fft.irfftn()
.- 参数:
a (ArrayLike) – 输入数组。
s (Shape | None | None) – 可选的整数序列。指定每个指定轴上的输出大小。如果没有指定,则沿轴
axes[-1]
的输出维度为2*(m-1)
,m
是沿轴axes[-1]
的输入大小,其他轴的维度将与输入相同。axes (Sequence[int] | None | None) – 可选的整数序列,默认值为 None。指定沿其计算变换的轴。如果没有指定,则沿最后
len(s)
个轴计算变换。如果既没有指定axes
也没有指定s
,则沿所有轴计算变换。norm (str | None | None) – 字符串,默认值为“backward”。归一化模式。“backward”、“ortho”和“forward”受支持。
- 返回值:
包含
a
的多维逆离散傅里叶变换的实值数组,大小为s
,沿指定的axes
,其他轴与输入相同。- 返回类型:
另请参见
jax.numpy.fft.rfftn()
: 计算实值数组的多维离散傅里叶变换。jax.numpy.fft.irfft()
: 计算实值一维逆离散傅里叶变换。jax.numpy.fft.irfft2()
: 计算实值二维逆离散傅里叶变换。
示例
jnp.fft.irfftn
默认计算沿所有轴的变换。>>> x = jnp.array([[[1, 3, 5], ... [2, 4, 6]], ... [[7, 9, 11], ... [8, 10, 12]]]) >>> jnp.fft.irfftn(x) Array([[[ 6.5, -1. , 0. , -1. ], [-0.5, 0. , 0. , 0. ]], [[-3. , 0. , 0. , 0. ], [ 0. , 0. , 0. , 0. ]]], dtype=float32)
当
s=[3, 4]
时,沿axes (-2, -1)
的变换大小将为(3, 4)
,其他轴的大小将与输入相同。>>> with jnp.printoptions(precision=2, suppress=True): ... jnp.fft.irfftn(x, s=[3, 4]) Array([[[ 2.33, -0.67, 0. , -0.67], [ 0.33, -0.74, 0. , 0.41], [ 0.33, 0.41, 0. , -0.74]], [[ 6.33, -0.67, 0. , -0.67], [ 1.33, -1.61, 0. , 1.28], [ 1.33, 1.28, 0. , -1.61]]], dtype=float32)
当
s=[3]
且axes=[0]
时,沿axes 0
的变换大小将为3
,其他轴的维度将与输入相同。>>> with jnp.printoptions(precision=2, suppress=True): ... jnp.fft.irfftn(x, s=[3], axes=[0]) Array([[[ 5., 7., 9.], [ 6., 8., 10.]], [[-2., -2., -2.], [-2., -2., -2.]], [[-2., -2., -2.], [-2., -2., -2.]]], dtype=float32)