网站地图
技术资讯

传感器数据滤波怎么入门?从毛刺到有效信号一次讲透

发布时间:2026-09-18 点击次数:0

现场肯定有人遇到过这种数据:被测温度明明稳稳停在 25 度上下,传感器读数却一会儿 25.1、一会儿 24.9,隔几秒还冷不丁蹦出一个 37 度半的尖峰。先别急着换传感器——数据没坏,只是没做传感器数据滤波,或者滤波的做法不对。这篇文章按 10 张图的顺序,把从毛刺到有效信号的完整处理流程一次讲透,每一步都配图,照着走就行。

下面这张总览图,就是整条传感器数据滤波链路的全貌,后文十节都在讲它:

传感器 原始信号 RC 低通 硬件抗干扰 ADC 采样 满足奈奎斯特 限幅 + 中值 先去毛刺 低通/EMA 再平滑 硬件抗干扰 + 软件滤波,各管一半;顺序:先去异常值,再压随机噪声

1、为什么传感器数据需要滤波?

看这张图:真实温度纹丝不动停在 25 度,而测量值是 25.1、24.9、25.0、25.2 这样围着真值抖,中间还混进来一个 37 度半的假尖峰。抖的那部分叫随机噪声,尖峰叫毛刺,两个来源不同、处理方法也不同。

所以滤波的目标就三件事:去毛刺,把异常突变点剔掉;降低随机噪声,把高频抖动压平;最后从含噪数据里提取出真实的变化趋势。做传感器数据滤波,先分清楚你手上的数据是毛刺多还是噪声多,路子才不会错。

为什么传感器数据需要滤波:真实值25度与含毛刺噪声的测量值对比
图1:真实值与含噪测量值——毛刺和噪声要分开对待

2、采样与频率基础:先看清楚信号长什么样

采样率 100Hz,就是每 10ms 采一个点,时域里是一串离散点。但要搞清楚信号和噪声各占哪段频率,得变换到频率域看频谱:图里有用信号集中在 0~10Hz,高频噪声在 10Hz 以上,一个截止频率 1~5Hz 的低通滤波就能把它们分开。

还有一条铁律:采样率必须大于信号最高频率的 2 倍(奈奎斯特条件)。采不够会出混叠——高频噪声被"折叠"成低频假信号,这时候再怎么滤都救不回来,所以硬件 RC 低通必须放在 ADC 前面。常用的四类滤波器一句话记住:低通放低频,高通放高频,带通只放中间一段,带阻(陷波)只掐掉一段。

采样与频率基础:时域采样、频谱与四类滤波器特性
图2:时域看采样,频域看滤波

3、异常值抑制:限幅和中值,两把快刀

限幅滤波的思路很直:新值和旧值一比,差超过阈值就当异常拒收,输出维持旧值。图里旧值 25 度、新值 80 度,一超阈值直接拒绝,输出不动。它专治单点跳变。

中值滤波专治脉冲毛刺:把窗口内的数据排序取中间值。序列 10、11、12、100、13 排完序后 100 被挤到队尾,取中值 12,毛刺一点不沾。注意窗口用奇数个点,不然中值取不出来。

现场坑:限幅阈值别拍脑袋设太紧。机械快速动作时位移读数本来就该突变,阈值太紧会把真变化当异常拒掉,输出看起来"卡死"了,其实是滤波把真相滤没了。
异常值抑制:限幅滤波拒绝异常跳变,中值滤波剔除脉冲毛刺
图3:限幅管跳变,中值管毛刺

4、平均类滤波的取舍:越平滑,越迟钝

滑动平均是最常用的降噪手段:窗口内 N 个点求平均。工程上的巧思是增量更新——sum 减掉最老的点、加上最新的点再除以 N,每来一个新点只做一次加减,计算量不随窗口变大有开销,O(1) 搞定。

但窗口 N 是个取舍:N 越大曲线越平滑,代价是延迟越大。信号毛刺大就加大窗口,系统响应要求快就减小窗口,两头不能都要。

现场坑:滤波输出如果喂给 PID 做反馈,窗口一定要小。延迟混进控制回路,参数再好的 PID 也会来回震荡,很多人调参调半天,其实是平均窗口太大拖了后腿。
平均类滤波:滑动窗口越大越平滑但延迟越大
图4:平滑与延迟,天平两端

5、EMA / 一阶低通:一个变量就能做低通

EMA(指数加权移动平均)公式就一行:y[n] = α·x[n] + (1−α)·y[n−1]。只保存一个历史值,单片机上几个字节就搞定,是资源最省的低通实现。

α 就是方向盘:α 取 0.01 这种小值,输出平滑但反应慢半拍;α 取 0.8 这种大值,跟得紧但滤波弱。α 也不用瞎调,按采样率和目标截止频率一套公式就能算出来:α = 1 − e^(−2π·Fc/Fs)。

现场坑:报警判断别直接搭在 EMA 输出上。α 偏小时,真实超限要等好几个采样周期才在输出里显现,报警就慢了;该快的信号用小延迟方案,别为了曲线好看误了报警。
EMA滤波:不同alpha系数下平滑强度与响应速度的对比
图5:α 小则稳,α 大则快

6、FIR 与 IIR:滤波器的两大门派

FIR(有限冲激响应)只用输入历史:天然稳定,还能做成线性相位——信号通过后波形形状不畸变,只是整体延迟,代价是阶数通常较高、计算量大。

IIR(无限冲激响应)用输入加输出历史:低阶就能达到很陡的滤波特性,算力省,但因为有反馈项,系数没设计好可能不稳定。前面讲的全都能归队:滑动平均属于 FIR,EMA 就是一阶 IIR。

现场坑:IIR 系数别直接从网上抄。别人是按他的采样率算的系数,你采样率不一样,频率特性整个偏移,严重的直接发散震荡。换采样率必须重新算系数。
FIR与IIR滤波器结构与特点对比
图6:FIR 稳、IIR 省,按需选

7、按频率特性选滤波器,工频干扰用陷波

同样是低通,性格不一样:巴特沃斯通带最平、幅度单调下降,没特别要求就选它;切比雪夫 I 型过渡带更陡,但通带有波纹;贝塞尔相位特性好、波形失真小,在意波形就选它;椭圆过渡最陡,但通带阻带都有波纹。

另一个高频登场的是 50/60Hz 工频干扰:信号线和动力线一起走、接地一塌糊涂的现场,频谱上 50Hz 处一根尖峰。这时候上陷波器(Notch),在 50Hz 处精准挖个坑,其他频率不受影响。

现场坑:怎么滤都压不干净的干扰,先查布线。信号线跟变频器、动力线捆在一个线槽里,属于硬件层面的耦合,软件滤波只能缓解不能根治——先分槽、屏蔽、单点接地,再谈滤波。
常见低通滤波器幅频特性对比与50Hz工频干扰陷波处理
图7:四种典型低通的性格 + 陷波专治工频

8、多传感器融合:互补滤波与卡尔曼

一个传感器撑不住的场景,就得融合。经典组合是陀螺仪加加速度计:陀螺仪短期准但会漂移,加速度计低动态时能靠重力方向校正但短期噪声大。互补滤波一行公式搞定:Angle = α·(Angle + Gyro·dt) + (1−α)·AccelAngle,高频信陀螺,低频信加计。

再进一步是卡尔曼滤波:预测、更新、状态估计三步走,按噪声统计自动分配权重。图里的例子:模型预测 10.2 米,测量给了 10.8 米,最终估计 10.4 米——不偏听偏信,按两边可信度折中。Q(过程噪声)和 R(测量噪声)这两个参数决定折中倾向谁。

现场坑:Q 和 R 不是玄学常数,要按传感器实际噪声实测标定,直接抄例程的值,融合结果经常不如不融合。另外只有陀螺仪加加速度计搞不定航向角,Yaw 长期校准得加磁力计。
IMU融合:互补滤波与卡尔曼滤波原理对比
图8:互补是一行公式,卡尔曼是统计最优

9、工程滤波链:先去异常,再平滑

实际项目里滤波从来不单打独斗。图里这条压力采集链:采样率 100Hz,先做合法性检查拦住离谱值,再过 5 点中值滤波把 3500 那种毛刺挤出去,最后一级截止 5Hz 的一阶低通把随机抖动压平,输出干净的压力值。

顺序有讲究:先处理异常值,再平滑随机波动。反过来先做平均,一个毛刺会被摊进整串数据里,把一大段输出全污染了。

现场坑:中值滤波刚上电时窗口没攒满点,别急着输出,不然取到的是假中值。等窗口填满再开放输出,或者在合法性检查里跳过前几个周期。
工程滤波链:合法性检查、中值滤波、一阶低通的完整处理流程
图9:先去毛刺,再平滑,顺序不能反

10、选型与嵌入式约束:RAM 和 CPU 都是钱

按场景选方案,直接查表:温湿度用限幅加 EMA;光照、ToF 测距用中值加 EMA;ADC 电压用滑动平均或 IIR;IMU 姿态用互补或卡尔曼;心电这类强工频干扰场景用带通加陷波。

资源账也要算:滑动平均窗口 N=100 要留 400 字节缓存,EMA 只需要 1 个浮点数 4 字节;128 抽头的 FIR 在 10kHz 采样率下约等于每秒上百万次乘加,主频紧张就上 CMSIS-DSP 库、DMA 搬运和硬件浮点单元。完整链路是传感器、RC 低通、ADC、数字滤波——硬件抗干扰和软件滤波各管一半,缺谁都不行。

滤波方案选型表与嵌入式RAM、CPU资源占用对比
图10:选型查表,资源算账

写在最后

把十节串起来,传感器数据滤波的套路其实就三句话:先看频谱搞清楚信号和噪声各在哪,再按"去毛刺、平滑、融合"的顺序搭链子,最后用 RAM 和 CPU 的预算收敛方案。别上来就堆高级算法,限幅加中值加一阶低通这三板斧,能解决现场八成的问题。

位移传感器的信号处理也是同一套逻辑:磁致伸缩位移传感器、拉绳位移传感器这类产品接进 PLC 或采集系统后,同样按先限幅去毛刺、再做低通平滑的顺序调理,读数才能长期稳得住。选型时拿不准滤波和响应怎么平衡,可以到易测电气产品中心看看各系列位移传感器的输出特性,或直接联系我们聊现场工况。易测电气欢迎您的咨询。

版权所有:深圳市易测电气有限公司 备案号:粤ICP备19052563号 网安粤公网安备 44030602003587号 技术支持:星海互联