降采样算法 · 交互演示

对比不同降采样策略在时间序列数据上的表现 — 可选择低通滤波器观察抗混叠效果

GitHub

📈 原始信号

📉 降采样结果

2,000
原始点数
100
降采样点数
20:1
压缩比
RMSE

🎲 直接抽样 Direct Sampling

等间隔选取数据点,每隔 N 个点取一个。最简单高效,但可能丢失重要的局部特征(峰值、谷值)。

⚡ 最快 ⚠ 易丢特征 O(n)

📐 均值降采样 Mean Downsampling

将数据分成等宽的桶(bucket),每个桶内取平均值。天然具有抗混叠效果,但会削弱尖峰和突变。

🛡 抗混叠 ⚠ 削峰 O(n)

🔺 Min-Max 降采样

每个桶内同时保留最小值和最大值,完美保留信号的包络(envelope)。常用于金融K线图和监控告警。

📦 保留包络 📈 金融常用 O(n)

📐 LTTB 最大三角形

首尾两点固定保留。中间每桶用"已选中点(前) + 候选点 + 下一桶均值(后)"构成三角形,选面积最大的点为该桶输出,逐桶滑动。视觉效果最优。

👁 视觉最优 🎯 特征保持 O(n)

📏 分段线性 Piecewise Linear

将数据分段并对每段做线性回归,用分段直线逼近原始信号。平滑噪声的同时保持趋势,适合趋势分析。

📉 趋势保持 🧹 去噪平滑 O(n)

📊 中位数降采样 Median

每桶取中位数而非平均值。天然抗异常尖峰——一个极端值能拉偏均值,但影响不了中位数。配合尖峰/脉冲信号对比效果显著。

🛡 抗尖峰 🔀 均值对偶 O(n log n)

✂️ Ramer–Douglas–Peucker

不按点数、按精度来。设定容差 ε 后,平坦区域(细节少)留很少点,剧烈波动区域(细节多)自动多留点。就像画简笔画:直线的部分两点够了,拐弯的地方需要多几个点。

🔄 自适应 🗺 地图经典 O(n²)