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.float16
、mstype.float32
或mstype.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.float16 、 mindspore.float32 或 mindspore.float64 。
ValueError - 如果 length 的维度不是1。
ValueError - 如果 length 的值是负数。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import numpy as np >>> from mindspore import Tensor, ops >>> # 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]