矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: 小鬼头

合作设计基于mcu的数字式电容ESR表

  [复制链接]
     
发表于 2023-4-21 11:20:29 | 显示全部楼层
天天爱玛丽 发表于 2023-4-21 10:59
我的例子讲述的过采样的计算方法,
将连续采样4n(n是次数)数据求和,再对求和的结果右移n位,得到提升1bi ...

我的荔枝也是说过采样算法,分别从二进制和浮点数去说(因为楼主的疑惑)

你楞要说用浮点数误差巨大,先是把 4107 算成 4017,弄了个巨大的误差;然后后边实际上只要双方都用 4095 和 8191 或者用 4096 和 8192 就没有误差你楞要说有误差...

错误是谁的我懒得再赘述。
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 11:26:45 | 显示全部楼层
天天爱玛丽 发表于 2023-4-21 11:09
等式3300mV / 4095 = x / adc,
求x,
这里没有4096的事,

这个就是你头铁了,
取4095还是4096当然对精度有影响了,
这个需要看详细文档,
也许不同的ADC有不同的设计,
但这不是本次讨论问题的关键。
本次讨论的是:
算术平均算法能不能用于过采样。
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 11:32:54 | 显示全部楼层
天天爱玛丽 发表于 2023-4-21 11:16
采样不存在噪声时,过采样等效于算术平均,

存在噪声时,平均值中依然有噪声,


又扯到概念问题了,
现在假设硬件(包括待采模拟量中的噪声),
已经具备过采样条件,
就让我编代码实现过采样,
用我这种算术平均法究竟行还是不行?
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 11:41:04 | 显示全部楼层
abbey_tom 发表于 2023-4-21 11:32
又扯到概念问题了,
现在假设硬件(包括待采模拟量中的噪声),
已经具备过采样条件,

存在噪声的采样,有平均值算出来的结果,已经包含了噪声分量,结果也不准确了,
所以我的结论是用平均算法不行,
至于采不采信,自己衡量吧,
上面只有闻太师讲解正确了过采样的概念,
存在噪声的平均算法与过采样算法,结果必然是不同的,
我的手滑,输错了数,是我的错,
瓦数老师连续点了两次该问题了,
所以我的观点都没有说服力,
我以后回帖仔细点,争取少犯错,不手滑.
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 11:44:25 | 显示全部楼层
abbey_tom 发表于 2023-4-21 11:32
又扯到概念问题了,
现在假设硬件(包括待采模拟量中的噪声),
已经具备过采样条件,

所以我前面分别从二进制和浮点数角度说明这个问题

二进制时,采样 k 次的累加数,若 k=2^n,则右移 n/2 位,结果是过采样;右移 n 位就是算术平均数

浮点数我们是格式化为十进制数显示的,且会截取一定位数显示。因此,每采样 100 次然后求其算数平均数,可以多*显示一位,也是过采样。

*在原来的无噪声位数或有效分辨率位数上多一(十进制)位
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 11:46:56 | 显示全部楼层
abbey_tom 发表于 2023-4-21 11:26
这个就是你头铁了,
取4095还是4096当然对精度有影响了,
这个需要看详细文档,

咱俩都头铁,扯平了,
我是看了手册之后才提出这个问题,不然没必要因为这点小事扯半天了,
如果还是继续用air32,用4095计算
~TD]}3]0}GZ7KXPM6B)M(NP.png
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 11:50:40 | 显示全部楼层
天天爱玛丽 发表于 2023-4-21 11:41
存在噪声的采样,有平均值算出来的结果,已经包含了噪声分量,结果也不准确了,
所以我的结论是用平均算法不 ...

二进制时、累加数包含噪声,右移 n/2 是过采样,右移 n 位才是平均:平均在二进制上不可行,因为平均的结果并未提升位数(精度)而不是平均包含噪声,包含噪声的是累加数

楼主的平均是用浮点数做的,浮点数格式化为十进制,以一定的位数显示,则算术平均数可以作为过采样结果,每 100 次提升一个十进制显示位数,前面有计算过程,取 2 为底计算,和用二进制右移 n/2 结果是一样的,只是这里 n 不再是 2 的整数次方。

回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 11:53:05 | 显示全部楼层
washu 发表于 2023-4-21 11:44
所以我前面分别从二进制和浮点数角度说明这个问题

二进制时,采样 k 次的累加数,若 k=2^n,则右移 n/ ...

从ADC读取的采样数据都是整数,转换为浮点数时,按照浮点数的表示方法,主要数据依然存储在整数部分,没用到精度不确定的小数部分,
所以噪声都依然在整数中,这个不是您分析的那样的,
用实物跑下两种算法就一目了然了
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 11:55:20 | 显示全部楼层
天天爱玛丽 发表于 2023-4-21 11:41
存在噪声的采样,有平均值算出来的结果,已经包含了噪声分量,结果也不准确了,
所以我的结论是用平均算法不 ...

我提出的另一个问题,
你还没有回答,
500次过采样行不行?
如果用你的正确算法应该如何计算呢?
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 12:07:25 | 显示全部楼层
天天爱玛丽 发表于 2023-4-21 11:53
从ADC读取的采样数据都是整数,转换为浮点数时,按照浮点数的表示方法,主要数据依然存储在整数部分,没用到 ...


ADC读取的采样数据都是整数,转换为浮点数时,按照浮点数的表示方法,主要数据依然存储在整数部分
ADC=2048转化为浮点,
假设为1.65V
整数部分只有1!!!
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 12:10:24 | 显示全部楼层
天天爱玛丽 发表于 2023-4-21 11:53
从ADC读取的采样数据都是整数,转换为浮点数时,按照浮点数的表示方法,主要数据依然存储在整数部分,没用到 ...

我什么时候说用浮点数时噪声在什么部分了?

回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 12:12:54 | 显示全部楼层
abbey_tom 发表于 2023-4-21 12:07
“ADC读取的采样数据都是整数,转换为浮点数时,按照浮点数的表示方法,主要数据依然存储在整数部分”
AD ...


他理解的是先用浮点数把 ADC 转换结果累加求平均,再做乘除法得到电压值

你的理解是,先用浮点数把 ADC 转换结果做乘除法得到电压值,再累加然后求平均


不过实际上结果是一样的


但我前面的荔枝,是你的理解,因为我的程序是那么写的...如果你用他的理解,用个毛的浮点数,浮点数做(整数)累加你不累么
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 12:19:51 | 显示全部楼层
washu 发表于 2023-4-21 12:12
他理解的是先用浮点数把 ADC 转换结果累加求平均,再做乘除法得到电压值

你的理解是,先用浮点数把  ...


实际做法当然是整型累加最后才用浮点乘除,
但与先浮点累加的结果应该无差,
物理意义可当做将每次采样都算出浮点电压,
然后再算术平均。
回复 支持 反对

使用道具 举报

     
发表于 2023-4-21 12:35:09 | 显示全部楼层
本帖最后由 天天爱玛丽 于 2023-4-21 12:36 编辑

累加起来的和无论是整数还是浮点数,都包含着噪声数据,目的是降低噪声的水平。过采样的作用是直接改变量化等级,目的是提高有效信号的水平。这俩算法原理都不是一会事,视为等效不科学。平均算法的有效信号与过采样的有效信号不是一个量级,虽然结果很接近。我口才不好,无力讲明白,自己明白就好。随便用哪种,看编程人员的取舍吧。

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-4-21 12:48:53 来自手机 | 显示全部楼层
xjw01 发表于 2023-4-21 10:08
电感大概能测到300mH,最小0.1uH以下。电容估计最小能测几百pF,最大可能是1000uF或10000uF
========= ...

这些涉及到量程这一块,与mcu编程有关,我还没有去仔细考虑。之前列的数据是根据可测到的电阻/阻抗,按理想化条件胡乱算的。

你这里使用平方根的方法进行计算,似乎有问题。这种方法对于恒压源驱动的RC串联网络来说,无疑是正确的。

但现在是恒流源驱动,直接按R、C各自的模来算电压分配比例即可,不需取平方根来计算。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-28 20:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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