jax.numpy.fft.rfft2#

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

計算實值陣列的二維離散傅立葉轉換。

JAX 版本的 numpy.fft.rfft2()

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

  • s (Shape | None | None) – 可選的長度為 2 的整數序列。指定沿每個指定軸的有效輸出大小。如果未指定,則預設為輸入沿 axes 的維度。

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

  • norm (str | None | None) – 字串,預設值=”backward”。正規化模式。“backward”、“ortho” 和 “forward” 均受支援。

傳回:

包含 a 的二維離散傅立葉轉換的陣列。沿軸 axes[1] 的輸出大小為 (s[1]/2)+1 (如果 s[1] 是偶數) 和 (s[1]+1)/2 (如果 s[1] 是奇數)。沿軸 axes[0] 的輸出大小為 s[0]

傳回類型:

陣列

參見

範例

jnp.fft.rfft2 預設沿最後兩個軸計算轉換。

>>> x = jnp.array([[[1, 3, 5],
...                 [2, 4, 6]],
...                [[7, 9, 11],
...                 [8, 10, 12]]])
>>> with jnp.printoptions(precision=2, suppress=True):
...   jnp.fft.rfft2(x)
Array([[[21.+0.j  , -6.+3.46j],
        [-3.+0.j  ,  0.+0.j  ]],

       [[57.+0.j  , -6.+3.46j],
        [-3.+0.j  ,  0.+0.j  ]]], dtype=complex64)

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

>>> with jnp.printoptions(precision=2, suppress=True):
...   jnp.fft.rfft2(x, s=[2, 4])
Array([[[21. +0.j, -8. -7.j,  7. +0.j],
        [-3. +0.j,  0. +1.j, -1. +0.j]],

       [[57. +0.j, -8.-19.j, 19. +0.j],
        [-3. +0.j,  0. +1.j, -1. +0.j]]], dtype=complex64)

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

>>> with jnp.printoptions(precision=2, suppress=True):
...   jnp.fft.rfft2(x, s=[3, 5], axes=(0, 1))
Array([[[ 18.   +0.j  ,  26.   +0.j  ,  34.   +0.j  ],
        [ 11.09 -9.51j,  16.33-13.31j,  21.56-17.12j],
        [ -0.09 -5.88j,   0.67 -8.23j,   1.44-10.58j]],

      [[ -4.5 -12.99j,  -2.5 -16.45j,  -0.5 -19.92j],
        [ -9.71 -6.3j , -10.05 -9.52j, -10.38-12.74j],
        [ -4.95 +0.72j,  -5.78 -0.2j ,  -6.61 -1.12j]],

      [[ -4.5 +12.99j,  -2.5 +16.45j,  -0.5 +19.92j],
        [  3.47+10.11j,   6.43+11.42j,   9.38+12.74j],
        [  3.19 +1.63j,   4.4  +1.38j,   5.61 +1.12j]]], dtype=complex64)