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
注释
对于单维数组 x,
idct(x, norm='ortho')
等于 MATLABidct(x)
。警告
对于
type in {1, 2, 3}
,norm="ortho"
会破坏与逆直接傅里叶变换的直接对应关系。要恢复它,必须指定orthogonalize=False
。对于
norm="ortho"
,dct
和idct
在两个方向上都按相同的整体因子进行缩放。默认情况下,变换也被正交化,对于类型 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.])