scipy.fft.

idct#

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

返回任意类型序列的逆离散余弦变换。

参数::
xarray_like

输入数组。

type{1, 2, 3, 4}, optional

DCT 的类型(参见注释)。默认类型为 2。

nint, optional

变换的长度。如果 n < x.shape[axis],则截断 x。如果 n > x.shape[axis],则对 x 进行零填充。默认情况下,n = x.shape[axis]

axisint, optional

计算 idct 的轴;默认情况下,在最后一个轴上(即 axis=-1)。

norm{“backward”, “ortho”, “forward”}, optional

归一化模式(参见注释)。默认值为 “backward”。

overwrite_xbool, optional

如果为 True,则可以销毁 x 的内容;默认值为 False。

workersint, optional

用于并行计算的最大工作线程数。如果为负数,则值将从 os.cpu_count() 处开始循环。有关更多详细信息,请参见 fft

orthogonalizebool, optional

是否使用正交化的 IDCT 变体(参见注释)。默认情况下,当 norm="ortho" 为 True 时为 True,否则为 False

在版本 1.8.0 中添加。

返回::
idctndarray of real

变换后的输入数组。

另请参见

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.])