jax.numpy.fft.irfft2#

jax.numpy.fft.irfft2(a, s=None, axes=(-2, -1), norm=None)[原始碼]#

計算實值二維反離散傅立葉變換。

JAX 實作的 numpy.fft.irfft2()

參數:
  • a (ArrayLike) – 輸入陣列。必須具有 a.ndim >= 2

  • s (Shape | None | None) – 可選的長度為 2 的整數序列。指定每個指定軸中輸出的尺寸。如果未指定,則沿軸 axes[1] 的輸出維度為 2*(m-1),其中 m 是沿軸 axes[1] 的輸入大小,而沿其他軸的維度將與輸入的維度相同。

  • axes (Sequence[int]) – 可選的長度為 2 的整數序列,預設值為 (-2,-1)。指定計算變換的軸。

  • norm (str | None | None) – 字串,預設值為 “backward”。標準化模式。支援 “backward”、“ortho” 和 “forward”。

返回:

一個包含 a 的二維反離散傅立葉變換的實值陣列。

返回類型:

Array

參見

範例

jnp.fft.irfft2 預設沿最後兩個軸計算變換。

>>> x = jnp.array([[[1, 3, 5],
...                 [2, 4, 6]],
...                [[7, 9, 11],
...                 [8, 10, 12]]])
>>> jnp.fft.irfft2(x)
Array([[[ 3.5, -1. ,  0. , -1. ],
        [-0.5,  0. ,  0. ,  0. ]],

       [[ 9.5, -1. ,  0. , -1. ],
        [-0.5,  0. ,  0. ,  0. ]]], dtype=float32)

s=[3, 3] 時,沿 axes (-2, -1) 的變換維度將為 (3, 3),而沿其他軸的維度將與輸入的維度相同。

>>> with jnp.printoptions(precision=2, suppress=True):
...   jnp.fft.irfft2(x, s=[3, 3])
Array([[[ 1.89, -0.44, -0.44],
        [ 0.22, -0.78,  0.56],
        [ 0.22,  0.56, -0.78]],

       [[ 5.89, -0.44, -0.44],
        [ 1.22, -1.78,  1.56],
        [ 1.22,  1.56, -1.78]]], dtype=float32)

s=[2, 3]axes=(0, 1) 時,沿 axes (0, 1) 的變換形狀將為 (2, 3),而沿其他軸的維度將與輸入的維度相同。

>>> with jnp.printoptions(precision=2, suppress=True):
...   jnp.fft.irfft2(x, s=[2, 3], axes=(0, 1))
Array([[[ 4.67,  6.67,  8.67],
        [-0.33, -0.33, -0.33],
        [-0.33, -0.33, -0.33]],

       [[-3.  , -3.  , -3.  ],
        [ 0.  ,  0.  ,  0.  ],
        [ 0.  ,  0.  ,  0.  ]]], dtype=float32)