scipy.fft.

idct#

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

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

参数:
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)。

规范{“backward”, “ortho”, “forward”},可选

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

overwrite_xbool, 可选

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

工人int, 可选

用于并行计算的最大工作线程数。如果为负数,则从 os.cpu_count() 开始回绕。更多详情请参见 fft

正交化bool, 可选

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

Added in version 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.])