信号处理学习笔记6:ADC采样线性处理实测拟合

只要你能实测几组真实值,永远优先用 实测线性拟合 y = kx + b
**以后所有线性传感器,都可用这个方法校准:**y = kx + b

测 2~5 组真实值 → 拟合 k、b → 直接写进代码

目录

问题描述:

通用场景(理论公式):

为什么理论公式往往不准:

硬件原理推导物理量:

实测拟合:

实测拟合使用场景:

电压公式计算使用场景:

实测拟合与ADC理论公式代码特点:

总结

问题描述:

ADC理论公式 电压 = ADC / 4096 × 3.3V
STM32f103C8T6 具有12位ADC精度0 ~ 4095,

但通过通用场景的物理计算无法得出真实的电压值

这就是使用通用理论公式会导致 数据往往不准

通用场景(理论公式):

电压 = ADC / 4096 × 3.3V

单片机 ADC 的标准理论公式,逻辑是这样的:

  1. 单片机 ADC 是 12 位范围:0 ~ 4095

  2. ADC 的参考电压 Vref = 3.3V

  3. 含义:数字 0 → 对应 0V ,数字 4095 → 对应 3.3V

  4. 所以任意 ADC 值对应的输入电压就是:

这一步**完全是硬件原理,**和测什么、接什么传感器无关,是通用基础

为什么理论公式往往不准:

  1. Vref 不是精确 3.3000V
  2. ADC 有零点偏移、增益误差
  3. 分压电阻有 1%/5% 误差
  4. 运放有失调电压
  5. 走线有压降
  6. 传感器本身有公差
    结果:按理论公式算出来的数值 ≠ 真实测量值

硬件原理推导物理量:

拿到 Vin 之后,还要算真实物理量,比如

外部 0~10V 电压 → 分压成 0~3.3V

4~20mA 电流 → 转成电压

压力传感器 → 电压输出

温度传感器 → 电压输出

实测拟合:

思路完全转变:

不再关心中间电路怎么工作, 只关心:输入真实值 → 输出 ADC 值

只要关系是线性的,就可以拟合:真实值
这个方法的通用意义:

  • 自动抵消所有硬件误差
  • 自动修正 Vref 偏差
  • 自动修正电阻误差
  • 自动修正 ADC 非线性、偏移
  • 最终结果直接对标真实物理量
    例如,实测如下对应关系:

|---------|-----|-----|------|------|------|
| DC直流真实值 | 1V | 2V | 5V | 7V | 10V |
| ADC值 | 178 | 424 | 1164 | 1657 | 2396 |

根据y = kx + b

直接得出关系 DC = (ADC + 68.6074) / 246.4815

实测拟合使用场景:

传感器 / 物理量 和 ADC 之间是线性关系
线性分压电路(电压分压、电阻分压)

线性传感器(4-20mA、0-10V、PT100、电流采样、压力传感器...)

带运放 / 放大电路的线性信号

0-10V 转 0-3.3V 这类衰减电路

任何 输入→输出呈直线 的系统

电压公式计算使用场景:

没有条件做实测校准,只能纯理论计算
刚画完板子,没实物

要求理论值,不要求精度

极低成本产品,不做校准

实测拟合与ADC理论公式代码特点:

理论计算:ADC → 电压

float voltage = (adc_val * 3.3f) / 4096.0f;

// 如果要物理量,继续 × 系数 ÷ 分压

float value = voltage / 0.2f;
实测校准:直接 真实值 = k*ADC + b

float real_value = adc_val * 0.00245f + 0.036f;

总结

不用算电压!不用管理论分压!不用管 3.3V/4096!

实测线性拟合 = 最准、最简单、单片机最常用

电路是线性分压 → 适用这个方法

相关推荐
冬奇Lab6 分钟前
让 AI Agent 更可靠:Harness Engineering 与多 Agent 系统工程实践
人工智能·llm·agent
放下华子我只抽RuiKe57 分钟前
React 从入门到生产(四):自定义 Hook
前端·javascript·人工智能·深度学习·react.js·自然语言处理·前端框架
想你依然心痛7 分钟前
HarmonyOS 6(API 23)实战:基于悬浮导航、沉浸光感与HMAF的“文思智脑“——PC端AI智能体沉浸式智能写作工作台
人工智能·ar·harmonyos·ai写作
冬奇Lab8 分钟前
一天一个开源项目(第108篇):Andrej Karpathy Skills - 用一个 CLAUDE.md 文件修复 LLM 编码的四个顽疾
人工智能·开源·资讯
涛声依旧-底层原理研究所9 分钟前
残差连接与层归一化通俗易懂的详解
人工智能·python·神经网络·transformer
csdn_aspnet15 分钟前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
fantasy_arch38 分钟前
pytorch人脸匹配模型
人工智能·pytorch·python
科技那些事儿40 分钟前
实时洞察,视觉赋能:国内情绪识别API公司推荐及计算机视觉流派深度解析
人工智能·计算机视觉
德思特1 小时前
从 Dify 配置页理解 RAG 的重要参数
java·人工智能·llm·dify·rag