帧时长、速度或输入强度的显示值有时会取最近若干次采样的平均。它能降低短期波动,却也会让变化延后反映;平均值不是刚刚发生的那一次采样,也不是未来数值的预测。
以下是一组输入完整的独立案例。先读清规则,再按时间或操作顺序记录中间状态;遇到与预期不同的结果时,检查首次出现差异的位置。案例使用明确限定的教学模型,不假定所有作品都采用相同的处理方式。
规则和原始数据
本例只使用最近固定数量的整数采样;开始时不足一窗就按实际已有数量求平均,不补零。每来一个新值,最多移除最老的一个值,采用精确分数保留结果。
窗口最多4项 [44, 21, 9, 38, 45, 25, 5, 9, 19, 11, 31, 21, 8, 29]
逐步记录
第1次输入44,尚未移出旧值;窗口[44],和为44,按实际1个值平均得到44。
第2次输入21,尚未移出旧值;窗口[44, 21],和为65,按实际2个值平均得到65/2。
第3次输入9,尚未移出旧值;窗口[44, 21, 9],和为74,按实际3个值平均得到74/3。
第4次输入38,尚未移出旧值;窗口[44, 21, 9, 38],和为112,按实际4个值平均得到28。
第5次输入45,移出最老值44;窗口[21, 9, 38, 45],和为113,按实际4个值平均得到113/4。
第6次输入25,移出最老值21;窗口[9, 38, 45, 25],和为117,按实际4个值平均得到117/4。
第7次输入5,移出最老值9;窗口[38, 45, 25, 5],和为113,按实际4个值平均得到113/4。
第8次输入9,移出最老值38;窗口[45, 25, 5, 9],和为84,按实际4个值平均得到21。
第9次输入19,移出最老值45;窗口[25, 5, 9, 19],和为58,按实际4个值平均得到29/2。
第10次输入11,移出最老值25;窗口[5, 9, 19, 11],和为44,按实际4个值平均得到11。
第11次输入31,移出最老值5;窗口[9, 19, 11, 31],和为70,按实际4个值平均得到35/2。
第12次输入21,移出最老值9;窗口[19, 11, 31, 21],和为82,按实际4个值平均得到41/2。
第13次输入8,移出最老值19;窗口[11, 31, 21, 8],和为71,按实际4个值平均得到71/4。
第14次输入29,移出最老值11;窗口[31, 21, 8, 29],和为89,按实际4个值平均得到89/4。
最后平均值89/4,最后单次采样29,两者含义不同。
交叉核对与应用
为每个输出重新截取对应的历史切片求和,与滚动窗口的增减计算比较。还要检查最初几次输出的分母,避免把尚不存在的采样也算进平均。
平滑窗口扩大后,旧数据会影响更多次输出;它可以让显示更平稳,也会增加对突变的反应延迟。比较两个窗口时,应使用同一原始采样序列,并分别看过渡过程和稳定阶段。
建议保留原始输入、每一步状态和最终输出,再只改变一个条件做对照。重点检查空输入、相等边界、重复请求以及先后顺序;把规则约定、计算过程和显示表现分别核对,比只比较最后一个数字更容易找到原因。
