mindspore.ops.bartlett_window

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

Bartlett window function.

The input window_length is a tensor that datatype must be a integer, which controlling the returned window size. In particular, if window_length = 1, the returned window contains a single value 1.

Attr periodic determines whether the returned window trims off the last duplicate value from the symmetric window and is ready to be used as a periodic window with functions. Therefore, if attr periodic is true, the “N” in formula is in fact window_length + 1.

\[ \begin{align}\begin{aligned}\begin{split}w[n] = 1 - \left| \frac{2n}{N-1} - 1 \right| = \begin{cases} \frac{2n}{N - 1} & \text{if } 0 \leq n \leq \frac{N - 1}{2} \\ 2 - \frac{2n}{N - 1} & \text{if } \frac{N - 1}{2} < n < N \\ \end{cases},\end{split}\\\text{where : N is the full window size.}\end{aligned}\end{align} \]
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) – If True, returns a window to be used as periodic function. If False, return a symmetric window. Default: True.

Keyword Arguments

dtype (mindspore.dtype, optional) – The desired datatype of returned tensor. Only float16, float32 and float64 are 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 the type of window_length is not one of: int32, int64.

  • TypeError – If periodic is not a bool.

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

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

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

Supported Platforms:

GPU CPU

Examples

>>> window_length = Tensor(5, mstype.int32)
>>> output = ops.bartlett_window(window_length, periodic=True, dtype=mstype.float32)
>>> print(output)
[0. 0.4 0.8 0.8 0.4]