HammingWindow#

HammingWindow - 17#

Version

  • name: HammingWindow (GitHub)

  • domain: main

  • since_version: 17

  • function: True

  • support_level: SupportType.COMMON

  • shape inference: True

This version of the operator has been available since version 17.

Summary

Generates a Hamming window as described in the paper https://ieeexplore.ieee.org/document/1455106.

Attributes

  • output_datatype: The data type of the output tensor. Strictly must be one of the values from DataType enum in TensorProto whose values correspond to T2. The default value is 1 = FLOAT. Default value is 1.

  • periodic: If 1, returns a window to be used as periodic function. If 0, return a symmetric window. When ‘periodic’ is specified, hann computes a window of length size + 1 and returns the first size points. The default value is 1. Default value is 1.

Inputs

  • size (heterogeneous) - T1: A scalar value indicating the length of the window.

Outputs

  • output (heterogeneous) - T2: A Hamming window with length: size. The output has the shape: [size].

Type Constraints

  • T1 in ( tensor(int32), tensor(int64) ): Constrain the input size to int64_t.

  • T2 in ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) ): Constrain output types to numeric tensors.

Examples

default

# Test periodic window
node = onnx.helper.make_node(
    'HammingWindow',
    inputs=['x'],
    outputs=['y'],
)
size = np.int32(10)
a0 = 25 / 46
a1 = 1 - a0
y = a0 - a1 * np.cos(2 * 3.1415 * np.arange(0, size, 1, dtype=np.float32) / size)
expect(node, inputs=[size], outputs=[y],
       name='test_hammingwindow')

# Test symmetric window
node = onnx.helper.make_node(
    'HammingWindow',
    inputs=['x'],
    outputs=['y'],
    periodic=0
)
size = np.int32(10)
a0 = 25 / 46
a1 = 1 - a0
y = a0 - a1 * np.cos(2 * 3.1415 * np.arange(0, size, 1, dtype=np.float32) / (size - 1))
expect(node, inputs=[size], outputs=[y],
       name='test_hammingwindow_symmetric')