找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 209|回复: 10
打印 上一主题 下一主题
收起左侧

关于ADC滤波算法讨论

[复制链接]
跳转到指定楼层
楼主
ID:401564 发表于 2025-6-26 00:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做一个USB充电显示电流和电压测试仪,主要是显示输入电压和充电电流的ADC全部采用算术平均算法,怎么说呢,反正能用,也正常,但有点强迫症
电压总是会5.06v,5.05V,5.03V之类的之间跳动,电流总是会在506mA,500mA,503mA之类的来回跳动,虽然知道这是正常现象,但总感觉不爽
请问各位有没有一个比较好的算法,就是能在精确度,显示稳定度之间相对均衡的算法,是否可以分享一下,不要代码,我自己撸就行,就是单纯的讨论一下算法问题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:807591 发表于 2025-6-26 08:42 | 只看该作者
综艺节目,去掉一个最高分,一个最低分。。。当然还可以统计相同的数值出现最多的,第二多的。。。。然后看着办吧
回复

使用道具 举报

板凳
ID:74687 发表于 2025-6-26 09:26 | 只看该作者
换个测量工具,用TI的INA3221测量
回复

使用道具 举报

地板
ID:69038 发表于 2025-6-26 09:41 | 只看该作者
我也曾做过类同的,采用的的“算法”就是采样20次,去掉2个高值、2个低值,余下平均即可。

记得有个大佬写的一本书《匠人手记》,其中有介绍10多种滤波算法,你可以找来借鉴一下。
回复

使用道具 举报

5#
ID:996773 发表于 2025-6-26 09:56 | 只看该作者
别人怎么做我不知道,我会在单片机ad那个脚加个小电容,隔半秒或一秒读取一次再去显示
回复

使用道具 举报

6#
ID:1121801 发表于 2025-6-26 09:57 | 只看该作者
不知道,听说算法都很烧脑,大学学过的什么傅立叶算法等等我现在看着就感觉脑子里有个搅拌机,搅得一团混乱
回复

使用道具 举报

7#
ID:74687 发表于 2025-6-26 10:52 | 只看该作者
用软件的方法基本是在做无用功
回复

使用道具 举报

8#
ID:108361 发表于 2025-6-26 10:55 | 只看该作者
可以试试一阶低通滤波,但是影响响应速度,想要响应和收敛都有比较好的表现,还是卡尔曼滤波
回复

使用道具 举报

9#
ID:108361 发表于 2025-6-26 10:56 | 只看该作者
hi等你 发表于 2025-6-26 09:56
别人怎么做我不知道,我会在单片机ad那个脚加个小电容,隔半秒或一秒读取一次再去显示

你这个,只适合低速变化的信号,对于需要高速实时采样比如无人机,就不适用了
回复

使用道具 举报

10#
ID:155507 发表于 2025-6-26 11:04 | 只看该作者
注意接地,注意VREF电压和噪声,有独立AVCC的注意AVCC电压和噪声
10位的ADC和12位的ADC的不同。5V下10位的ADC分辨率一位是4.88mV,12位是1.22mV,有可能你的电路有大于1mV小于4mV的纹波或者噪声,导致10位的结果不跳动而12位的跳动。
可以观察一下ADC数值跳动的范围,看看峰峰值大概多大。
看一下只采集一个通道数据跳不跳,也有可能是通道切换的时候采样保持电容串扰了。
增加 ADC 的采样时间,转换时间是固定的 12个 ADC 时钟
先检查自己的硬件,STC的ADC本身是很小跳动的,你有大跳动,检查你的电源纹波、参考电压纹波、输入信号纹波。12位ADC、2.5V参考,分辨率是0.61mV,你示波器看看你的电路上述参数的纹波,就会明白为什么跳动。
使用1/16 IIR滤波: v= ((v << 4) - v + v_new) >> 4;
回复

使用道具 举报

11#
ID:1155465 发表于 2025-6-27 14:12 | 只看该作者
angmall 发表于 2025-6-26 11:04
注意接地,注意VREF电压和噪声,有独立AVCC的注意AVCC电压和噪声
10位的ADC和12位的ADC的不同。5V下10位的 ...

你好,可以问下1/16 IIR滤波: v= ((v << 4) - v + v_new) >> 4,具体是怎么得到的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表