3. 数据采集基础

数据采集,说白了就是让传感器跟计算机“对话”。你想想看,传感器输出的信号是连续的模拟量,而计算机只能处理离散的数字量。怎么把这个桥梁搭好?这就是本章要聊的核心。

我做了十几年传感器标定,见过太多因为采集环节没做好,后面算法再牛也救不回来的案例。嗯,咱们从最基础的开始说。

采样定理与抗混叠滤波

先问一个问题:一个1kHz的正弦波,你每秒采1000个点,够不够?

很多人觉得够了。但实际还原出来的波形,可能完全不是那么回事。这就是采样定理要解决的问题。

奈奎斯特采样定理:采样频率 fs 必须大于信号最高频率 fmax 的2倍。

公式:fs > 2 × fmax

注意,是“大于”,不是“大于等于”。等于2倍的时候,相位稍微偏一点,信号就丢了。我个人习惯留3~5倍的余量。比如信号最高100Hz,我至少采300Hz。

但光知道采样定理还不够。实际信号里总有高频噪声,比如50Hz工频干扰、电机换向产生的尖峰。这些高频成分一旦混入采样,就会产生混叠——低频信号里出现了不该有的频率分量。

混叠的后果:你采集到的数据里,多出来的频率成分根本分不清是真实信号还是噪声。标定出来的曲线,误差可能大得离谱。

怎么解决?加抗混叠滤波器。这是一个低通滤波器,放在ADC之前,把高于 fs/2 的频率全部滤掉。

我曾经在一个振动传感器标定项目里,没加抗混叠滤波器,结果采集到的频谱里多了一个莫名其妙的峰值。查了三天,最后发现是附近一台变频器的开关噪声混进来了。从那以后,我每个通道前端必加抗混叠滤波器,哪怕只是RC一阶低通。

滤波器类型 阶数 衰减速率 适用场景
RC一阶 1 -20dB/十倍频 低频、成本敏感
有源二阶 2 -40dB/十倍频 通用传感器标定
椭圆滤波器 4~8 -80dB以上 高精度、窄过渡带

我的经验:对于大多数传感器标定场景,二阶有源低通滤波器就够了。截止频率设为 fs/3 左右,既能抑制混叠,又不会过多衰减有用信号。

ADC分辨率与量程选择

ADC的分辨率,决定了你能分辨多小的信号变化。12位、16位、24位,差的不只是位数,还有钱。

但分辨率不是越高越好。你想想看,一个12位ADC,满量程5V,理论分辨率是 5V / 4096 ≈ 1.22mV。如果你的传感器输出变化1mV对应0.1℃的温度变化,那12位就够用了。非要上24位,除了多花钱,还可能引入更多噪声。

量程选择更关键。我见过有人用0~10V的ADC去采0~5V的信号,白白浪费了一半的分辨率。反过来,信号最大4.8V,你选5V量程,稍微超一点就削顶了。

量程选择原则:让信号的最大值占满ADC满量程的80%~90%。留10%~20%的余量,防止意外过载。

举个例子:传感器输出0~3.3V,选5V量程,信号只占了66%,分辨率浪费了1/3。选3.3V量程?不行,万一超一点就削顶。选4V量程?市面上不常见。那就选5V量程,前端加一个1.5倍放大,把3.3V放大到4.95V,刚好接近满量程。

ADC位数 量化级数 5V量程下分辨率 典型应用
12位 4096 1.22 mV 压力、温度(一般精度)
16位 65536 76.3 μV 称重、力传感器
24位 16777216 0.298 μV 高精度应变、微弱信号

注意:高分辨率ADC对噪声更敏感。24位ADC的LSB只有微伏级,PCB上一点地线噪声都可能把信号淹没。我建议,能用16位解决的问题,别上24位。

多通道同步采集策略

标定一个传感器,通常需要同时采集多个信号:传感器输出、参考标准、环境温度、供电电压……这些信号如果不同步,标定出来的曲线就会有相位误差。

多通道采集有两种策略:

  1. 轮询采集:一个ADC,通过多路模拟开关切换通道。便宜,但通道之间有延时。
  2. 同步采集:每个通道有自己的ADC,同时触发采样。贵,但信号之间没有时间差。

我做过一个六分量力传感器的标定,六个通道必须严格同步,因为要同时测量三个方向的力和三个方向的力矩。用轮询采集,通道间差几微秒,算出来的力矩就偏了。最后上了同步采集卡,每个通道独立ADC,同一时钟触发。

什么时候必须用同步采集?

  • 需要计算通道间的相位关系(如功率、阻抗)
  • 信号频率较高(>1kHz)
  • 标定精度要求高(<0.1%)

如果预算有限,也可以用轮询采集加插值补偿。但说实话,补偿算法写起来挺麻烦的,而且效果取决于信号变化速度。我个人建议,关键标定项目别省这个钱。

数据采集卡配置

选好了ADC,定好了策略,最后一步是配置数据采集卡。这一步看着简单,但坑最多。

我列几个关键配置项:

  • 采样率:按采样定理算,留余量。比如信号最高100Hz,设300Hz或500Hz。
  • 采样模式:连续采样还是有限点采样?标定通常用连续采样,取一段时间内的平均值。
  • 触发方式:软件触发、硬件触发、外部触发。标定一般用软件触发,但需要精确同步时用硬件触发。
  • 输入范围:根据量程选择,别让信号太小或太大。
  • 输入耦合:DC耦合还是AC耦合?传感器信号一般用DC耦合。

我的配置习惯:先设一个保守的参数(比如采样率设高一点,量程设宽一点),跑一次测试看看信号范围。然后根据实际信号调整,把参数优化到最佳。别一上来就按理论值设,容易出问题。

我曾经在一个温度传感器标定项目里,数据采集卡配置错了输入范围,信号只有满量程的5%,分辨率浪费了95%。后来重新配置,把输入范围从±10V改到±1V,精度直接提升了20倍。

别忘了检查:配置完采集卡后,一定要做一次零输入测试和满量程测试。零输入时输出应该接近0,满量程时输出应该接近最大值。如果偏差太大,检查接线和配置。

数据采集系统知识结构图 传感器 抗混叠滤波器 ADC 采集卡 采样定理 fs > 2 × fmax 实际留3~5倍余量 分辨率与量程 信号占满量程80%~90% 16位够用就别上24位 同步采集策略 轮询 vs 同步 高频/高精度必须同步 采集卡配置关键项 采样率 | 采样模式 | 触发方式 | 输入范围 | 输入耦合

数据采集这块,说白了就是“信号链”的工程实现。从传感器到ADC,再到采集卡,每个环节都有讲究。采样定理告诉你采多快,抗混叠滤波器保证采得准,ADC分辨率和量程决定采多细,同步策略解决多通道的时间对齐,采集卡配置把前面所有决策落地。

嗯,这一章的内容就到这里。记住一句话:数据质量决定了标定质量的上限。采集环节做扎实了,后面的数据处理和曲线拟合才能发挥价值。