首页 › 技术知识 › 工程笔记 › 算法笔记 › 滑动平均窗口怎么选:3 点、1 小时还是 24 小时
算法笔记 振动 滑动平均滤波窗口信号处理

滑动平均窗口怎么选:3 点、1 小时还是 24 小时

Choosing a Moving Average Window

同样的数据,滑动平均窗口取 3 点和 1 小时,会给出完全不同的结论。窗口不是越大越"平滑",而是越能抹掉你想抹掉的频率——窗口选择必须与数据用途绑定。

约 1724 字· 6 分钟阅读

滑动平均的本质是低通滤波

滑动平均把信号里的高频成分抹平,保留低频趋势。窗口 N 越大,截止频率越低,曲线越平滑,但延迟越大、突变越钝。

滑动平均的近似截止频率:f_c ≈ 0.44 / (N × Δt)

窗口数据频率 1/min截止周期(约)保留的信号
3 点1 min~7 min分钟级趋势,滤掉采样抖动
15 点1 min~34 min半小时级趋势
60 点(1 h)1 min~2.3 h小时级趋势
1440 点(24 h)1 min~2.3 天日以上趋势

理解这句话:窗口 1 小时的滑动平均,会把所有"短于 2.3 小时的波动"都抹平——如果你关心的是"暴雨 1 小时的洪峰",这个窗口直接把洪峰吃掉了。

窗口选择的三个问题

选窗口前,先回答三个问题:

问题一:你要保留什么信号?

用途需要保留的信号周期建议窗口
降雨-水位联动预警分钟~小时级(洪峰)3~15 点(≤ 15 min)
滑坡位移趋势天~周级(累积位移)小时级(60 点)
日平均温度评价日级24 h(或直接用日均值)
噪声小时等效1 h(Leq 定义)不滑动平均,用能量平均
去除传感器采样抖动秒~分钟级3~5 点

问题二:你能接受多少延迟?

滑动平均的延迟 ≈ (N-1)/2 × Δt。窗口 24 h 的均值,你要等 12 h 才能看到"当前时刻的平滑值"——在线预警不可能用大窗口,预警必须用小窗口 + 原始值判据。

问题三:信号里有没有"该保留的突变"?

  • 滑坡加速、暴雨洪峰、结构突变——这些是事件信号,滑动平均会把它们钝化;
  • 如果任务是"捕捉事件",用原始值 + 变化率判据,而不是大窗口平滑;
  • 如果任务是"评估长期趋势",大窗口合适,但要同步保留原始序列。

不同场景的实战建议

降雨-水位联动(山洪预警)

  • 用 3~15 点滑动平均(或干脆用原始值 + 5 min 累计雨量);
  • 千万别用小时窗口:小时均值把 30 min 50 mm 的强雨抹成 25 mm/h,预警价值归零;
  • 判据用"滚动累计"(如 1 h 滚动雨量),不是滑动平均。

滑坡 GNSS 位移

  • 原始序列噪声 ±10~20 mm,趋势信号是"日累积几 mm";
  • 用 1 h 滑动中位数(不是均值——中位数抗尖峰);
  • 位移判据用"24 h 滑动增量",既能平滑噪声,又不钝化"加速期"(增量是差值,窗口内的趋势保留)。

温度/水位缓变监测

  • 数据本身平滑,3~5 点滑动平均去采样抖动即可;
  • 大窗口(24 h)用于"日均值报表",但日报用标准日界(0:00~24:00)计算,不是滑动平均。

噪声监测

  • 不要对 Leq 做滑动平均——Leq 本身就是能量平均,再平均会丢失时间结构(详见本站专题《Leq、L10、L90》);
  • 统计量(L10/L90)基于原始采样计算,窗口概念不适用。

滑动平均的四个陷阱

  1. 首尾缺失:窗口在前 N-1 个点和最后 N-1 个点无完整窗口——实现时要决定"缩窗"还是"补齐",并在文档注明;
  2. 跳变被钝化:阶跃信号(设备切换、量程跳变)被滑动平均抹成斜坡——分析前先找突变点,不要在突变附近用大窗口;
  3. 窗口与采样率脱节:"滑动平均 60 点"在 1 min 采样下是 1 h,在 1 s 采样下是 1 min——说窗口要说时间长度,不说点数;
  4. 重复平滑:对已经平滑过的数据再平滑,等于多个低通级联,延迟叠加、信号进一步失真——只对原始序列平滑一次。

一个完整例子

水位序列(1 min 采样):

  • 目的:日趋势评估 → 60 点(1 h)窗口,看日水位过程;
  • 目的:暴雨洪峰预警 → 用 5 点窗口 + 原始值 10 min 增量判据;
  • 目的:月报 → 直接日均值(24 h 窗口 + 日界),不做滑动。

结语

滑动平均窗口的选择是信号与延迟的权衡:窗口越大,趋势越清晰,事件越模糊、延迟越大。先回答"要保留什么频率的信号、能接受多少延迟",再选窗口。记不住细节就用三条:在线预警用小窗口或原始值,长期趋势用中窗口,报表用标准统计周期——永远保留原始序列,平滑只作为派生列。