金南京 发表于 2024-3-31 07:06:31

为了使ADC输出的数值稳定除了求平均值还有其他好的方法吗

各位大神:

         为了使ADC输出的数值稳定除了求平均值还有其他好的方法吗?{:4_196:}{:4_201:}

神农鼎 发表于 2024-3-31 10:46:22



完整的系统设计参考原理图@STC8H8K64U, @STC32G12K128 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
1, ADC 的输入,接个 0.01uF电容到地

2,延长ADC的采样时间


一次完整的 A/D 时间含【ADC输入通道的切换时间+采样的时间+关闭采样的时间+固定转换 - ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

神农鼎 发表于 2024-3-31 10:48:52






金南京 发表于 2024-3-31 11:26:38

神农鼎 发表于 2024-3-31 10:48


谢谢姚总

神农鼎 发表于 2024-3-31 11:30:46

先筑基,做好硬件,至少在研发部不用软件处理,硬件也是稳定的
===软件滤波,那是防止出厂后,有强干扰,去掉特殊的值


现在很多 ADC 有 DMA 支持,可以连续采样转换自动产生平均值







神农鼎 发表于 2024-3-31 11:33:42


梁工 发表于 2024-3-31 12:23:30

STC8系列、STC32系列的ADC精度是很高的,达到0.5LSB的级别,但在实际使用中如发现有抖动,都是因为电源或参考电压或信号又干扰有纹波。西面描述的纹波包括干扰信号。
硬件上,设计电源纹波尽量小(特备是AVCC),能小于10mV是最好的。AVREF纹波则再小一个数量级,小于0.5mV为佳(即小于1LSB对应的电压)。
输入的信号电压纹波也要尽量小,能小于10mV是最好的(即小于1LSB对应的电压)。
上述的硬件参数会直接影响读数稳定。

如果硬件实在没法做到,则使用数字滤波就能很大程序滤除干扰,让读数稳定。
数字滤波一般使用平均值滤波和一阶或更高阶低通滤波,其实平均值滤波也是低通滤波。
滤波系数根据对信号的响应时间来设计,滤波效果好则响应慢,要权衡处理。
很多情况下,对于慢速的信号(比如温度、电子秤等等),平均值滤波或一阶低通滤波,或者二者融合处理,对于正负幅度对称的固定干扰就可以得到很好的效果。
比如平均值滤波,当使用20ms的倍数的时间来采样,则可以滤除50Hz规则干扰,采样点数越多,效果越好,比如使用20KHz均匀采样400ms,8000个点,平均后,哪怕有几百mV的50Hz干扰都能滤除。

金南京 发表于 2024-3-31 16:34:35

梁工 发表于 2024-3-31 12:23
STC8系列、STC32系列的ADC精度是很高的,达到0.5LSB的级别,但在实际使用中如发现有抖动,都是因为电源或参 ...

谢谢梁总

xxxevery 发表于 2024-3-31 18:32:00

学习了

金南京 发表于 2024-3-31 20:57:22

神农鼎 发表于 2024-3-31 11:33


谢谢姚总
页: [1] 2
查看完整版本: 为了使ADC输出的数值稳定除了求平均值还有其他好的方法吗