如何判断传感器数据里的噪声:时域、频谱与滤波
温度读数在 25 ℃ 附近波动,增加平均次数后,显示会平稳一些,温度变化时的响应也会变慢。环境记录仪可以接受几秒延迟,温控反馈通常需要更快的响应。同样的滤波参数,放在这两种应用中,效果会很不一样。
传感器输出里既有被测对象的变化,也有测量链路加入的噪声。低通滤波根据频率选择保留和衰减的成分;当真实变化与干扰落在相近频带时,它们会一起受到影响。因此,评价滤波效果需要同时看噪声、信号幅值和响应时间。
滑动平均和一阶 IIR 都适合在线处理传感器数据。参数选择可以从三项要求出发:允许多大的稳态波动、需要保留多快的变化,以及能接受多少延迟。文中的温度曲线采用合成数据,原厂噪声图用于说明测量方法。
1. 测量需求与原始数据
1.1 哪些变化需要保留
确定响应要求时,需要同时考虑探头热惯性、传感器内部滤波和软件滤波。例如探头本身已有较长的热时间常数,再增加软件平均窗口,会进一步延迟温度变化的反馈。
分析数据时,应保存时间戳、输出数据率与内部滤波配置。从 SPI 读到新数值的时刻,不一定就是它的实际采样时刻;反复读取尚未更新的寄存器,也不会增加独立观测。
1.2 原始数据中常见的四类现象
| 原始数据的特征 | 可能来源 | 第一项检查 |
|---|---|---|
| 围绕均值散布,短时间没有固定周期 | 宽带噪声、量化及前端噪声 | 直方图、标准差和频谱 |
| 近似固定周期起伏 | 工频、电源、PWM、机械周期 | 对照干扰源频率及采样率 |
| 偶发大跳变 | 接触不良、通信错误、瞬态耦合或真实事件 | 原始帧、状态位、时间戳与现场状态 |
| 均值在较长时间内移动 | 环境变化、自热、温漂、低频噪声 | 延长记录,并同步记录供电和环境 |
这些只是排查方向,不能仅凭波形外观定性。比如工频经混叠后可能成为慢波动,丢失一个高字节也可能表现为尖峰。先检查通信 CRC、数据就绪标志、符号扩展和量程,再决定是否把异常值交给滤波器。

图 1:ADI MT-048,Figure 1,PDF 第 1 页。噪声密度不是一次采样的电压标准差;它描述单位带宽内的频域特性。原文
2. 用时域统计和频谱描述噪声
标准差描述波动大小,频谱显示波动的频率分布。相同标准差的两段数据,可能分别以宽带噪声和低频漂移为主,滤波后的变化也会不同。
2.1 均值与标准差的适用条件
计算噪声标准差时,应选输入近似稳定的片段。温度正在变化时,直接对整段记录减去均值,会把真实变化也计入噪声。若采用去趋势处理,需要注明模型及被去除的频率成分。
2.2 从功率谱密度到噪声有效值
对单边功率谱密度 ,单位若为 ,则某频带内的噪声方差为:
若使用幅度谱密度 ,单位为 ,应先平方再积分。白噪声密度近似常数时,才可写成 。

图 2:MT-048,Figure 4,PDF 第 5 页。一阶模拟低通对白噪声的等效噪声带宽为 ,约为 ,大于其 -3 dB 频率。其他滤波器需按各自频响积分。原文
FFT 的一条谱线有多高,还受窗函数、记录长度和归一化方式影响。要比较噪声密度,可以使用明确归一化的 Welch PSD,并检查积分是否与时域方差大致一致;若要测单频幅值,则要处理窗的相干增益和频率泄漏。两种用途不要共用一条未经说明的“频谱幅值”。SciPy 对 Welch 方法的参数、单位和默认设置有完整定义。
2.3 低频噪声需要足够长的观察时间
记录长度限制了可分辨的低频范围;测试链路的高通与低通又限定了参与统计的频带。因此,低频峰峰值要连同带宽和观察时间一起报告。

图 3:MT-048,Figure 2,PDF 第 3 页。原图是 OP213 的 0.1~10 Hz 输入电压噪声测量,保留了带通、增益和示波器链路。低频噪声需要规定带宽和观察时间,不能从无限长记录里要求一个固定峰峰值。
3. 两种常用数字低通
对已完成采样的数据,滑动平均与一阶 IIR 都容易在线实现。前者给最近一段数据相同权重,后者让旧数据的权重按指数衰减。这种权重差别决定了它们的频响与过渡过程。
3.1 滑动平均的噪声与延迟
长度为 的因果滑动平均是:
若输入噪声独立、同分布,方差为 ,输出标准差为 。有相关性的噪声不满足这个关系;低频漂移、固定偏差更不会因此消失。相邻滑动平均输出还共享大量样本,不能把它们当成相互独立的新观测。
这个 FIR 的群延迟为 个样本。以 1 kS/s 采样、21 点平均为例,通带群延迟为 10 ms,阶跃完全填满窗口约需 20 ms。51 点窗口能进一步平滑,却也把群延迟增加到 25 ms。

图 4:Steven W. Smith,《The Scientist and Engineer’s Guide to Digital Signal Processing》,第 15 章 Figure 15-1,印刷页 279。窗口加长后噪声下降,脉冲边缘同时被展宽。作者发布的章节 PDF
它的幅频响应是:
滑动平均的阻带存在旁瓣。1 kS/s 下取 20 点时,第一零点恰在 50 Hz,但工频和采样时钟的偏移会改变抑制效果。若用于降采样前的抗混叠,还需逐段检查阻带衰减。
在线实现可以维护长度为 的环形缓冲及累加和,每次加新值、减旧值。累加器位宽要容纳 个样本的最大和;启动时使用有效样本数作分母,或者明确等待窗口填满,避免隐含的零填充拉低输出。
3.2 一阶 IIR 的递推与参数
常见的一阶递推为:
按连续一阶系统的极点匹配,可以选择 。当 远小于 时,其离散 -3 dB 频率接近指定的 ;比例较大时应直接检查离散频率响应,不要把这个映射当成所有条件下的精确截止频率公式。
1 kS/s、10 Hz 的例子得到 。其时间常数约为 15.9 ms,阶跃达到 90% 约需 36.6 ms。对独立白噪声,稳态输出方差为:
减小系数会降低白噪声方差,同时延长阶跃响应。实现时可用第一笔有效数据初始化 ;清零初始化会产生额外的启动过渡,需要屏蔽或标记。传感器掉线后,还需处理旧状态和重新稳定的过程。
4. 滤波参数计算
4.1 一个同时约束噪声、幅值和响应时间的例子
假设某温度采集链路以 1 kS/s 输出,稳态噪声可近似为独立白噪声,标准差为 0.08 ℃。设计要求是滤波后不超过 0.02 ℃、阶跃达到最终变化量的 90% 不超过 30 ms,并让 2 Hz 有用变化的幅值损失不超过 1%。这些是计算假设,实际传感器的热响应和内部滤波需另计。
滑动平均的噪声条件给出 。16 点平均在 2 Hz 的幅值约为 0.9983,损失约 0.17%;处理 15 笔变化后的新样本便超过阶跃的 90%,计入阶跃相对采样的相位,约在 15 ms 内达到。因此它满足这组三项要求。若取 21 点,噪声标准差约为 0.0175 ℃,2 Hz 幅值约为 0.9971,仍满足要求,但延迟更长。
对一阶 IIR,噪声条件要求 ,即 。从旧稳态开始处理阶跃,经过 次更新后的剩余误差比例是 ;要求 30 次更新内达到 90%,得到 。可选 ,此时输出噪声约为 0.0174 ℃,25 次更新内超过 90%。其离散幅频响应为:
代入 ,幅值约为 0.9912,损失约 0.88%,也满足要求。两种算法在这个例子中都可用,选择还取决于存储、阻带抑制和瞬态形状。若输入含明显低频相关噪声,上面的白噪声降幅就要用实测 PSD 重新积分;若还需降采样,则必须另查新奈奎斯特频率以上的阻带衰减。
4.2 用等效噪声带宽比较不同滤波器
对直流增益为 1 的离散滤波器,定义单边等效噪声带宽:
最后一个等号由 Parseval 关系得到, 是实系数滤波器的冲激响应。对已经采样的独立白噪声,输入单边 PSD 是 ,积分后便得到 。这里没有把模拟输入中已经混叠的噪声还原出去。冲激响应与频率响应的对应可参考 Smith,第 9 章。
因此 21 点平均的 ;上述 10 Hz 极点匹配 IIR 的 。它们对白噪声的抑制程度本来就不相同。若固定 并要求两者带宽相等,解得 ;该 IIR 的极点时间常数约为 10.49 ms,低频群延迟为 个样本。低频延迟此时相同,仍不意味着全频带相位、阶跃形状或工频抑制相同。
实现后,可以用频响数值积分、冲激响应平方和、白噪声方差比三种方法核对结果。若相差一倍,先查单边/双边 PSD 和积分区间;若相差一个采样率,则查频率轴用的是 Hz 还是弧度/样本。
5. 温度序列的滤波结果
5.1 明确输入与计算条件
本文合成 6 秒、1 kS/s 的温度序列:基线 25 ℃,叠加 2 Hz、幅值 0.15 ℃ 的真实变化;3 秒时基线提高 0.5 ℃;测量中另加标准差 0.08 ℃ 的白噪声、幅值 0.06 ℃ 的 50 Hz 干扰,以及 2.1 秒处一个 0.8 ℃ 尖峰。随机种子固定为 240。
下图沿用 21 点平均和 的 IIR,用于展示不同瞬态;它不是上一节 设计例的仿真结果。
5.2 同时观察瞬态和频谱

图 5:上图为孤立尖峰的响应,下图为温度阶跃的响应。曲线按因果滤波计算,输出保留实际延迟。

图 6:左图用阶跃前的 2 秒数据减去已知模型真值,再计算 Welch PSD;右图用离散传递函数计算响应。真实测量通常没有已知真值,必须另选稳态片段或参考测量。
这组参数的等效噪声带宽不同,残余噪声也不同。比较两种算法时,可以固定允许延迟、通带误差或等效噪声带宽中的一项,再考察其余指标。
6. 低通滤波以外的问题
6.1 尖峰是否属于真实事件
一个尖峰会被平均滤波摊到整个窗口里;IIR 则会留下衰减尾巴。短窗口中值滤波对孤立脉冲更有针对性,但它是非线性的,会改变窄脉冲和快速阶跃。若系统需要检测碰撞、过流或突发温升,把真实事件判成异常值会造成漏报。可以保留原始通道,用独立的异常标志记录被拒绝的样本,而不要静默覆盖。
6.2 漂移与测量模型
慢漂移则应同步检查传感器自热、供电、板温、环境和安装条件。白噪声可因平均减少,偏置和漂移需要校准、补偿或更合适的测量模型。卡尔曼滤波可以利用状态模型,但若把漂移错误地当成零均值白噪声,调参数也不能自动纠正模型。
在反馈系统中,还应把滤波器算进环路。滤波引入的相位滞后可能降低稳定余量,相关讨论可与 PID 文章对照。显示用的慢滤波不必与控制和保护路径共用一套输出。
6.3 样本相关性与长时间稳定性
对弱平稳噪声,记自协方差为 ,长度为 的均值方差是:
独立样本的非零延迟协方差为零,才退化成 。传感器自身的数字滤波、模拟低通和软件滑动平均都会让相邻样本相关,所以“读取了 1000 次”不等于“获得 1000 个独立观测”。应记录原始输出速率与内部滤波配置,用稳态数据估计相关时间;估计所用记录也要足够长。NIST 对相关测量与 Allan 方差的讨论说明了普通独立样本公式失效的原因。
若关心“平均多久最划算”,可把稳定输入的长记录分成持续时间为 的相邻块,以 观察不同平均时间下的稳定性。对白噪声,Allan 偏差通常随 下降;真实漂移或低频扰动存在时,继续平均未必继续改善。它测的是随时间尺度变化的稳定性,不是绝对准确度,也不能单凭某一斜率认定唯一物理噪声源。报告时应写清重叠与否、死区、采样间隔和记录长度;长 下可用差分数量减少,曲线的不确定度会变大。NIST SP 1065提供了估计器与报告方法,其主要对象是频率稳定性,移用于温度等传感器时需保留实际量纲和测量模型。
7. 实测与实现检查
先用输入近似稳定的原始记录检查噪声模型,再用已知变化速度的输入测量幅值和延迟。报告至少保留采样率、滤波参数、初始化方法、噪声统计区间和阶跃响应定义。改变输出速率后,需要重新计算参数;同一个窗口长度或同一个 在不同采样率下对应不同时间尺度。
上线时还要覆盖断线、重复帧、启动和饱和恢复。原始数据、有效性标志和滤波输出应能互相追溯,便于区分传感器异常与算法行为。
8. 资料与复现
- ADI,MT-048:Op Amp Noise Relationships:噪声密度、1/f 噪声、RMS 与等效噪声带宽。
- Steven W. Smith,第 15 章:Moving Average Filters:移动平均的时域效果、频响和递推实现。
- Steven W. Smith,第 9 章:The Frequency Response:从冲激响应理解频响,配合本文的噪声带宽推导。
- NIST,SP 1065:Handbook of Frequency Stability Analysis:平均时间、Allan 类统计量及长记录分析;使用时区分频率量与本文传感器量。
- NIST,Allan Variance and the Uncertainty of the Autocorrelated Measurements:相关性为什么会改变均值的不确定度。
- ADI,MT-002:Nyquist Criterion:采样前抗混叠的条件,与采样后平滑的区别。
- SciPy,signal.welch:PSD 的窗、分段、频率单位与归一化。
- SciPy,signal.freqz:离散滤波器频率响应。
原厂与教材插图保留原版权,源 PDF 位于本文 sources/,页码与裁切记录见 SOURCES.txt。合成数据、滤波和作图参数见 scripts/generate-signal-chain-figures.py。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!