|
//
// 算术平均滤波(均值滤波) Mean Value Filter
// 对信号进行连续多次采样,对采样值进行算术平均
// 适用:抑制周期性干扰和随机干扰
//
#T_On(IN := NOT #T_Off.Q,
PT := #Period / 2);
#T_Off(IN := #T_On.Q,
PT := #Period / 2);
#Trigger(CLK := #T_On.Q); // 采样触发,周期 = Period
IF #Trigger.Q THEN
IF #Index <= 0 OR #Index > #Qty THEN
#Index := 1;
END_IF;
IF #Index > 0 AND #Index <= #Qty THEN
#SUM := #SUM + #Sample_In; // 累加
#Index := #Index + 1;
END_IF;
IF #Index > #Qty THEN
#Filter_Out := #SUM / #Qty; // 算术平均
#Index := 0;
#SUM := 0.0;
END_IF;
END_IF;
|
|