jax.numpy.fft.fft#

jax.numpy.fft.fft(a, n=None, axis=-1, norm=None)[原始碼]#

沿著給定軸計算一維離散傅立葉轉換。

numpy.fft.fft() 的 JAX 實作。

參數:
  • a (ArrayLike) – 輸入陣列

  • n (int | None | None) – int。指定沿著 axis 的結果維度。如果未指定,則預設為 a 沿著 axis 的維度。

  • axis (int) – int,預設值=-1。指定計算轉換的軸。如果未指定,則沿著軸 -1 計算轉換。

  • norm (str | None | None) – 字串。正規化模式。支援 “backward”、“ortho” 和 “forward”。

傳回:

包含 a 的一維離散傅立葉轉換的陣列。

傳回類型:

Array

參見

範例

jnp.fft.fft 預設沿著 axis -1 計算轉換。

>>> x = jnp.array([[1, 2, 4, 7],
...                [5, 3, 1, 9]])
>>> jnp.fft.fft(x)
Array([[14.+0.j, -3.+5.j, -4.+0.j, -3.-5.j],
       [18.+0.j,  4.+6.j, -6.+0.j,  4.-6.j]], dtype=complex64)

n=3 時,沿著軸 -1 的轉換維度將為 3,而沿著其他軸的維度將與輸入的維度相同。

>>> with jnp.printoptions(precision=2, suppress=True):
...   print(jnp.fft.fft(x, n=3))
[[ 7.+0.j   -2.+1.73j -2.-1.73j]
 [ 9.+0.j    3.-1.73j  3.+1.73j]]

n=3axis=0 時,沿著 axis 0 的轉換維度將為 3,而沿著其他軸的維度將與輸入的維度相同。

>>> with jnp.printoptions(precision=2, suppress=True):
...   print(jnp.fft.fft(x, n=3, axis=0))
[[ 6. +0.j    5. +0.j    5. +0.j   16. +0.j  ]
 [-1.5-4.33j  0.5-2.6j   3.5-0.87j  2.5-7.79j]
 [-1.5+4.33j  0.5+2.6j   3.5+0.87j  2.5+7.79j]]

jnp.fft.ifft 可用於從 jnp.fft.fft 的結果重建 x

>>> x_fft = jnp.fft.fft(x)
>>> jnp.allclose(x, jnp.fft.ifft(x_fft))
Array(True, dtype=bool)