漢明窗¶
漢明窗 - 17¶
版本¶
名稱: 漢明窗 (GitHub)
網域:
main
since_version:
17
function:
True
support_level:
SupportType.COMMON
形狀推斷:
True
此運算子版本自版本 17 起提供。
摘要¶
產生如論文 https://ieeexplore.ieee.org/document/1455106 中所述的漢明窗。
函式主體¶
此運算子的函式定義。
<
domain: "",
opset_import: ["" : 17]
>
HammingWindow <periodic,output_datatype>(size) => (output)
{
A0 = Constant <value: tensor = float {0.543478}> ()
A1 = Constant <value: tensor = float {0.456522}> ()
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)
}
屬性¶
output_datatype - INT (預設值為
'1'
)輸出張量的資料類型。必須嚴格為 TensorProto 中資料類型列舉的值之一,其值對應於 T2。預設值為 1 = FLOAT。
periodic - INT (預設值為
'1'
)如果為 1,則傳回要用作週期性函式的視窗。如果為 0,則傳回對稱視窗。當指定「periodic」時,hann 會計算大小為 size + 1 的視窗,並傳回前 size 個點。預設值為 1。
輸入¶
size (異質) - T1
表示視窗長度的純量值。
輸出¶
output (異質) - T2
長度為 size 的漢明窗。輸出形狀為:[size]。
類型約束¶
T1 in (
tensor(int32)
,tensor(int64)
)將輸入大小限制為 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)
)將輸出類型限制為數值張量。