01算法库总览
滤波 → 标定 → 补偿 → 融合,传感器数据的四道工序。
✂️
限幅滤波
相邻采样差超过阈值 Δ 视为野值,用上次值替代。专治脉冲毛刺。
- ✔ 实现极简、开销极小
- ✘ 对连续噪声无效
if |xₙ-xₙ₋₁|>Δ → xₙ=xₙ₋₁
〰️
滑动平均
最近 N 点取均值,平滑随机噪声。窗口越大越平滑,但延迟越大。
- ✔ 平滑高斯噪声效果好
- ✘ 对脉冲不敏感、有相位延迟
yₙ = (xₙ₋ₙ₊₁+…+xₙ)/N
🎯
中值滤波
窗口内排序取中值,对脉冲噪声极有效,且保留信号阶跃。
- ✔ 抗毛刺、保阶跃
- ✘ 需排序,窗口不宜过大
yₙ = median(xₙ₋ₙ₊₁…xₙ)
🧠
卡尔曼滤波
融合系统模型与测量做最优估计,增益自适应,噪声与响应兼顾。
- ✔ 最优估计、适合动态系统
- ✘ 需调 Q/R 参数
K=P/(P+R); x+=K(z-x); P*=(1-K)
📈
最小二乘标定
标准源多点采样,拟合"物理量-输出"直线/多项式,消除偏置与非线性。
- ✔ 通用、精度高
- ✘ 依赖标准源的精度
P = a·V + b(OLS)
🌡️
温度补偿
内置测温,用多项式/查表修正零点与灵敏度温漂。
- ✔ 显著提升全温区精度
- ✘ 需温漂模型与标定数据
P_c = (P-β·ΔT)/(1+α·ΔT)
🔀
加权融合
按方差倒数加权合并多源数据,噪声小的传感器权重高。
- ✔ 方差最优、实现简单
- ✘ 需估计各源噪声
ŷ = Σwᵢzᵢ, wᵢ∝1/σᵢ²
🚨
故障诊断
超限报警、漂移检测、断线识别,保障系统可靠运行。
- ✔ 提升系统可用性
- ✘ 阈值需经验整定
|y-μ| > k·σ → 故障
02实验一:滤波算法实时对比
真实值 = 双正弦叠加;叠加高斯噪声与随机脉冲毛刺。对比限幅、滑动平均、中值、卡尔曼四种算法。
1
去噪效果对比
滤波点击图例开关曲线;拖动滑块调节噪声幅度。
原始
限幅 Δ=6
滑动平均 N=10
中值 N=7
卡尔曼
噪声 35%
03实验二:最小二乘标定拟合
用标准压力源施加 0~100 kPa 的 20 个压力点,记录传感器输出电压(含噪声),用最小二乘拟合 "P = a·V + b" 标定直线。
2
标定曲线拟合
标定橙色散点 = 采样数据;红色虚线 = 真实关系;绿色实线 = 拟合直线。观察拟合公式与残差。
拟合公式 P = a·V + b
拟合优度 R² --
标定后最大误差 --
测量噪声 12
04实验三:温度漂移与补偿
假设真实压力恒为 50 kPa,传感器存在灵敏度温漂 α 与零点温漂 β。对比补偿前后的全温区误差。
3
温漂补偿效果
补偿横轴为温度(-40 ~ 85℃),纵轴为测量误差(kPa)。拖动滑块改变温漂系数。
未补偿误差
补偿后误差
未补偿最大误差 --
补偿后最大误差 --
灵敏度温漂 α 0.0025/℃
零点温漂 β 0.04 kPa/℃
05实验四:多传感器加权融合
两个传感器测量同一物理量(真实值 50),噪声水平不同。按"方差倒数加权"融合,权重自动偏向更准的传感器。
4
融合估计
融合蓝 = 传感器 A(噪声大),橙 = 传感器 B(噪声小),绿 = 加权融合结果。切换噪声场景观察权重变化。
传感器 A
传感器 B
融合输出
权重 A -- / B --
A 标准差 --
B 标准差 --
融合标准差 --