mindspore.ops.blackman_window

mindspore.ops.blackman_window(window_length, periodic=True, *, dtype=None)[source]

Blackman window function, usually used to extract finite signal segment for FFT.

The window_length is a input tensor which determines the returned window size, and its data should be an integer. In particular, if window_length is equal to 1, only a single value 1 exists in the returned window.

Attr periodic determines whether the returned window removes the last duplicate value from the symmetric window and prepares to be a periodic window with functions. Therefore, if attr periodic is true, the \(N\) in formula is \(window\_length + 1\).

\[w[n] = 0.42 - 0.5 cos(\frac{2\pi n}{N - 1}) + 0.08 cos(\frac{4\pi n}{N - 1})\]

where \(N\) is the full window size, and n is natural number less than \(N\) :[0, 1, …, N-1].

Parameters
  • window_length (Tensor) – The size of returned window, with data type int32, int64. The input data should be an integer with a value of [0, 1000000].

  • periodic (bool, optional) – Indicates whether to returns a window to be used as periodic function or a symmetric window. Default: True .

Keyword Arguments

dtype (mindspore.dtype, optional) – The data type of returned tensor. Only float16, float32 and float64 is allowed. Default: None .

Returns

A 1-D tensor of size window_length containing the window. Its datatype is set by the attr dtype. If 'dtype' is None, output datatype is float32.

Raises
  • TypeError – If window_length is not a Tensor.

  • TypeError – If periodic is not a bool.

  • TypeError – If dtype is not one of: float16, float32, float64.

  • TypeError – If the type of window_length is not one of: int32, int64.

  • ValueError – If the value range of window_length is not [0, 1000000].

  • ValueError – If the dimension of window_length is not 0.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import mindspore
>>> from mindspore import Tensor, ops
>>> window_length = Tensor(10, mindspore.int32)
>>> output = ops.blackman_window(window_length, periodic=True, dtype=mindspore.float32)
>>> print(output)
[-2.9802322e-08  4.0212840e-02  2.0077014e-01  5.0978714e-01
  8.4922993e-01  1.0000000e+00  8.4922981e-01  5.0978690e-01
  2.0077008e-01  4.0212870e-02]