HannWindow¶
HannWindow - 17¶
版本¶
域:
main起始版本:
17函数:
True支持级别:
SupportType.COMMON形状推断:
True
此版本的运算符自 版本 17 起可用。
摘要¶
生成一个 Hann 窗,如论文 https://ieeexplore.ieee.org/document/1455106 中所述。
函数体¶
此操作符的函数定义。
<
domain: "",
opset_import: ["" : 17]
>
HannWindow <periodic,output_datatype>(size) => (output)
{
A0 = Constant <value: tensor = float {0.5}> ()
A1 = Constant <value: tensor = float {0.5}> ()
A2 = Constant <value: tensor = float {0}> ()
Zero = Constant <value: tensor = float {0}> ()
One = Constant <value: tensor = float {1}> ()
Two = Constant <value: tensor = float {2}> ()
Tau = Constant <value: tensor = float {6.28319}> ()
Periodic_Size_FP = Cast <to: int = 1> (size)
Symmetric_Size_FP = Sub (Periodic_Size_FP, One)
IsPeriodic = Constant <value_int: int = @periodic> ()
IsPeriodic_FP = Cast <to: int = 1> (IsPeriodic)
IsSymmetric_FP = Sub (One, IsPeriodic_FP)
Periodic_Component = Mul (Periodic_Size_FP, IsPeriodic_FP)
Symmetric_Component = Mul (Symmetric_Size_FP, IsSymmetric_FP)
Size_FP = Add (Periodic_Component, Symmetric_Component)
AngularIncrement = Div (Tau, Size_FP)
Range = Range (Zero, Periodic_Size_FP, One)
RangeAngular = Mul (Range, AngularIncrement)
TwoRangeAngular = Mul (RangeAngular, Two)
CosTwoRangeAngular = Cos (TwoRangeAngular)
A2_Component = Mul (A2, CosTwoRangeAngular)
CosRangeAngular = Cos (RangeAngular)
A1_Component = Mul (A1, CosRangeAngular)
Temp0 = Sub (A0, A1_Component)
Temp1 = Add (Temp0, A2_Component)
output = Cast <to: int = @output_datatype> (Temp1)
}
属性¶
输出数据类型 - INT(默认值为
'1')输出张量的数据类型。必须严格是 TensorProto 中 DataType 枚举的值之一,其值对应于 T2。默认值为 1 = FLOAT。
周期性 - INT(默认值为
'1')如果为 1,则返回用作周期函数的窗。如果为 0,则返回对称窗。指定“周期性”时,hann 计算长度为 size + 1 的窗并返回前 size 个点。默认值为 1。
输入¶
大小(异构) - T1
一个标量值,表示窗的长度。
输出¶
output (异构) - T2
长度为 size 的 Hann 窗。输出形状为:[size]。
类型约束¶
T1 在 (
tensor(int32),tensor(int64)) 中将输入大小限制为 int64_t。
T2 包含 (
tensor(bfloat16),tensor(double),tensor(float),tensor(float16),tensor(int16),tensor(int32),tensor(int64),tensor(int8),tensor(uint16),tensor(uint32),tensor(uint64),tensor(uint8))将输出类型限制为数值张量。