scipy.fftpack.
idct#
- scipy.fftpack.idct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False)[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{None, ‘ortho’}, optional
归一化模式(见备注)。默认值为 None。
- overwrite_xbool, optional
如果为 True,则可以销毁 x 的内容;默认值为 False。
- 返回值:
- idctndarray of real
变换后的输入数组。
另见
dct
正向 DCT
备注
对于单维数组 x,
idct(x, norm='ortho')
等于 MATLABidct(x)
。“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.])