scipy.fft.

idct#

scipy.fft.idct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, orthogonalize=None)[source]#

返回任意類型序列的反離散餘弦轉換。

參數:
x類陣列

輸入陣列。

type{1, 2, 3, 4}, 選填

DCT 的類型(請參閱「注意事項」)。預設類型為 2。

n整數, 選填

轉換的長度。如果 n < x.shape[axis],則會截斷 x。如果 n > x.shape[axis],則會對 x 進行零填充。預設結果為 n = x.shape[axis]

axis整數, 選填

計算 idct 的軸;預設值是最後一個軸(即 axis=-1)。

norm{“backward”, “ortho”, “forward”}, 選填

正規化模式(請參閱「注意事項」)。預設值為 “backward”。

overwrite_x布林值, 選填

如果為 True,則可以破壞 x 的內容;預設值為 False。

workers整數, 選填

用於平行計算的最大工作進程數。如果為負數,則值會從 os.cpu_count() 環繞。有關更多詳細資訊,請參閱 fft

orthogonalize布林值, 選填

是否使用正交化的 IDCT 變體(請參閱「注意事項」)。當 norm="ortho" 時,預設值為 True,否則為 False

在 1.8.0 版本中新增。

返回:
idct實數的 ndarray

轉換後的輸入陣列。

另請參閱

dct

正向 DCT

注意事項

對於單維陣列 xidct(x, norm='ortho') 等於 MATLAB idct(x)

警告

對於 type in {1, 2, 3}norm="ortho" 會破壞與反向直接傅立葉轉換的直接對應關係。若要恢復它,您必須指定 orthogonalize=False

對於 norm="ortho"dctidct 都會在兩個方向上按相同的整體因數縮放。依預設,轉換也會被正交化,這對於類型 1、2 和 3 意味著修改了轉換定義,以提供 IDCT 矩陣的正交性(完整定義請參閱 dct)。

「The」 IDCT 是 IDCT-II,它與正規化的 DCT-III 相同。

IDCT 等同於一般 DCT,只是正規化和類型不同。DCT 類型 1 和 4 是它們自己的反函數,而 DCT 類型 2 和 3 互為反函數。

範例

類型 1 DCT 等同於用於實數、偶對稱輸入的 DFT。輸出也是實數且偶對稱。IFFT 輸入的一半用於產生 IFFT 輸出的一半

>>> from scipy.fft import ifft, idct
>>> import numpy as np
>>> ifft(np.array([ 30.,  -8.,   6.,  -2.,   6.,  -8.])).real
array([  4.,   3.,   5.,  10.,   5.,   3.])
>>> idct(np.array([ 30.,  -8.,   6.,  -2.]), 1)
array([  4.,   3.,   5.,  10.])