scipy.fftpack.
idct#
- scipy.fftpack.idct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False)[源代码][源代码]#
返回任意类型序列的逆离散余弦变换。
- 参数:
- xarray_like
输入数组。
- 类型{1, 2, 3, 4}, 可选
DCT 的类型(参见注释)。默认类型为 2。
- nint, 可选
变换的长度。如果
n < x.shape[axis]
,x 被截断。如果n > x.shape[axis]
,x 被零填充。默认情况下,结果为n = x.shape[axis]
。- 轴int, 可选
计算idct的轴;默认是沿着最后一个轴(即
axis=-1
)。- 规范{None, ‘ortho’}, 可选
归一化模式(参见注释)。默认值为 None。
- overwrite_xbool, 可选
如果为 True,x 的内容可以被销毁;默认是 False。
- 返回:
- idct实数 ndarray
转换后的输入数组。
参见
dct
正向DCT
注释
对于一维数组 x,
idct(x, norm='ortho')
等同于 MATLAB 的idct(x)
。‘The’ IDCT 是类型2的IDCT,这与类型3的DCT相同。
类型1的IDCT是类型1的DCT,类型2的IDCT是类型3的DCT,类型3的IDCT是类型2的DCT。类型4的IDCT是类型4的DCT。关于这些类型的定义,请参见
dct
。示例
类型1 DCT 对于实数、偶对称的输入等同于DFT。输出也是实数且偶对称的。IFFT输入的一半用于生成IFFT输出的一半:
>>> from scipy.fftpack 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) / 6 array([ 4., 3., 5., 10.])