mindspore.ops.HammingWindow

class mindspore.ops.HammingWindow(periodic=True, alpha=0.54, beta=0.46, dtype=mstype.float32)[源代码]

使用输入窗口长度计算汉明窗口函数。

\[w[n] = \alpha - \beta\ \cos \left( \frac{2 \pi n}{N - 1} \right),\]

其中, \(N\) 是全窗口尺寸。

警告

这是一个实验性API,后续可能修改或删除。

参数:
  • periodic (bool,可选) - 一个标志,表示返回的窗口是否修剪掉来自对称窗口的最后一个重复值。默认值:True。

    • 如果为True,则返回的窗口作为周期函数,在上式中, \(N = \text{length} + 1\)

    • 如果为False,则返回一个对称窗口, \(N = \text{length}\)

  • alpha (float,可选) - 加权系数,上式中的 \(\alpha\) ,默认值:0.54。

  • beta (float,可选) - 加权系数,上式中的 \(\beta\) ,默认值:0.46。

  • dtype (mindspore.dtype,可选) - 数据类型,可选值为 mstype.float16mstype.float32mstype.float64 。默认值: mstype.float32

输入:
  • length (Tensor) - 一个1D的正整数Tensor,控制返回窗口的大小。

输出:

Tensor,一个包含窗口的1-D Tensor,其shape为 \((\text{length},)\)

异常:
  • TypeError - 如果 length 不是一个Tensor。

  • TypeError - 如果 length 的数据类型不是整型。

  • TypeError - 如果 periodic 的数据类型不是bool类型。

  • TypeError - 如果 alpha 的数据类型不是float类型。

  • TypeError - 如果 beta 的数据类型不是float类型。

  • TypeError - 如果 dtype 的取值不是 mindspore.float16mindspore.float32mindspore.float64

  • ValueError - 如果 length 的维度不是1。

  • ValueError - 如果 length 的值是负数。

支持平台:

Ascend GPU CPU

样例:

>>> # case 1: periodic=True.
>>> length = Tensor(np.array([6]).astype(np.int32))
>>> hamming_window = ops.HammingWindow(periodic=True)
>>> y = hamming_window(length)
>>> print(y)
[0.08000001 0.31       0.77000004 1.         0.77000004 0.31      ]
>>> # case 2: periodic=False.
>>> length = Tensor(np.array([7]).astype(np.int32))
>>> hamming_window = ops.HammingWindow(periodic=False)
>>> y = hamming_window(length)
>>> print(y)
[0.08000001 0.31       0.77000004 1.         0.77000004 0.31       0.08000001]