mindspore.ops.bartlett_window

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

Bartlett window function is a triangular-shaped weighting function used for smoothing or frequency analysis of signals in digital signal processing.

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\).

\[\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}\]

where N is the full window size.

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 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:

Ascend 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]