mindspore.scipy.fft.dct

查看源文件
mindspore.scipy.fft.dct(x, type=2, n=None, axis=- 1, norm=None)[源代码]

计算Tensor x 给定维度(轴) axis 的离散傅里叶变换。

说明

  • 当前仅支持type 2类型离散傅里叶变换。

  • dct 目前仅用于 mindscience 科学计算场景,尚不支持其他使用场景。

  • dct 尚不支持Windows平台。

参数:
  • x (Tensor) - 要计算离散傅里叶变换的Tensor。

  • type (int, 可选) - 离散傅里叶变换变换的种类。可选值:{1, 2, 3, 4},详见 ‘A Fast Cosine Transform in One and Two Dimensions’, by J. Makhoul, IEEE Transactions on acoustics, speech and signal processing vol. 28(1), pp. 27-34,。默认值: 2

  • n (int, 可选) - 给定维度(轴)参与离散傅里叶变换的元素数量。必须是非负。 如果 \(n < x.shape[axis]\),则截断后计算,如果 \(n > x.shape[axis]\) ,则补0后计算。 默认值: None,默认为 x.shape[axis]

  • axis (int, 可选) - 进行离散傅里叶变换的维度(轴)。 默认值: -1

  • norm (str, 可选) - 标准化类型,可选值:{“BACKWARD”, “FORWARD”, “ORTHO”}。默认值: None 默认为 'BACKWARD'

返回:

Tensor, x 进行离散傅里叶变换的结果,变换结果的数据类型为float32/64, axis 轴大小为 n,其余轴大小与 x 相同。

异常:
  • TypeError - 如果 x 不是Tensor。

  • TypeError - 如果 axisn 不是int类型。

  • ValueError - 如果 axis 的值超出: \([-x.ndim, x.ndim)\) 范围。

  • ValueError - 如果 n 的值小于1。

  • ValueError - 如果 norm 的值不是 BACKWARDFORWARDORTHO

支持平台:

Ascend CPU

样例:

>>> from mindspore.scipy.fft import dct
>>> from mindspore import Tensor
>>> x = Tensor([1, 2, 3])
>>> output = dct(x)
>>> print(output)
[ 1.20000000e+01 -3.46410162e+00  3.33066907e-15]