mindspore.ops.kaiser_window

mindspore.ops.kaiser_window(window_length, periodic=True, beta=12.0, *, dtype=None)[源代码]

生成一个Kaiser window,也叫做Kaiser-Bessel window。

Kaiser window定义:

\[w(n) = \frac{I_{0}\left( \beta\sqrt{1 - \frac{4n^{2}}{(M - 1)^{2}}} \right)}{I_{0}(\beta)}\]

n的范围为

\[- \frac{M - 1}{2} \leq n \leq \frac{M - 1}{2}\]

其中 \(I_0\) 为零阶修正Bessel函数。

参数:
  • window_length (int) - 输出window的大小。

  • periodic (bool, 可选) - 如果为True,则返回周期性window用于进行谱线分析。如果为False,则返回对称的window用于设计滤波器。默认值:True。

  • beta (float, 可选) - 形状参数,当 beta 变大时,窗口就会变窄。默认值:12.0。

关键字参数:
  • dtype (mindspore.dtype, 可选) - 输出window的数据类型,必须为float。默认值:None。

返回:

Tensor,一个Kaiser window。

异常:
  • TypeError - 如果 window_lengthbeta 不是整数。

  • TypeError - 如果 periodic 不是布尔类型。

  • ValueError - 如果 window_length 小于零。

支持平台:

Ascend GPU CPU

样例:

>>> window_length = 5
>>> out = ops.kaiser_window(window_length)
>>> print(out.asnumpy())
[5.27734413e-05 1.01719688e-01 7.92939834e-01 7.92939834e-01
 1.01719688e-01]