jax.scipy.fft.idctn#

jax.scipy.fft.idctn(x, type=2, s=None, axes=None, norm=None)[原始碼]#

計算輸入的多維反離散餘弦變換

JAX 實作的 scipy.fft.idctn()

參數:
  • x (Array) – 陣列

  • type (int) – 整數,預設值 = 2。目前僅支援類型 2。

  • s (Sequence[int] | None | None) – 整數或整數序列。指定結果的形狀。如果未指定,則預設為沿指定 axesx 形狀。

  • axes (Sequence[int] | None | None) – 整數或整數序列。指定將計算變換的軸。

  • norm (str | None | None) – 字串。正規化模式:[None, "backward", "ortho"] 其中之一。預設值為 None,相當於 "backward"

返回:

包含 x 的反離散餘弦變換的陣列

返回類型:

Array

另請參閱

範例

jax.scipy.fft.idctn 預設沿兩個軸計算變換,當 axes 參數為 None 時。

>>> x = jax.random.normal(jax.random.key(0), (3, 3))
>>> with jnp.printoptions(precision=2, suppress=True):
...    print(jax.scipy.fft.idctn(x))
[[ 0.12  0.11 -0.15]
 [ 0.07  0.17 -0.03]
 [ 0.19 -0.07 -0.02]]

s=[2] 時,沿 axis 0 的變換維度將為 2,沿 axis 1 的維度將與輸入相同。

>>> with jnp.printoptions(precision=2, suppress=True):
...  print(jax.scipy.fft.idctn(x, s=[2]))
[[ 0.15  0.21 -0.18]
 [ 0.24 -0.01 -0.02]]

s=[2]axes=[1] 時,沿 axis 1 的變換維度將為 2,沿 axis 0 的維度將與輸入相同。此外,當 axes=[1] 時,變換將僅沿 axis 1 計算。

>>> with jnp.printoptions(precision=2, suppress=True):
...  print(jax.scipy.fft.idctn(x, s=[2], axes=[1]))
[[ 1.12 -0.31]
 [ 0.04 -0.08]
 [ 0.05 -0.3 ]]

s=[2, 4] 時,變換的形狀將為 (2, 4)

>>> with jnp.printoptions(precision=2, suppress=True):
...  print(jax.scipy.fft.idctn(x, s=[2, 4]))
[[ 0.1   0.18  0.07 -0.16]
 [ 0.2   0.06 -0.03 -0.01]]

jax.scipy.fft.idctn 可用於從 jax.scipy.fft.dctn 的結果重建 x

>>> x_dctn = jax.scipy.fft.dctn(x)
>>> jnp.allclose(x, jax.scipy.fft.idctn(x_dctn))
Array(True, dtype=bool)