washu
发表于 2023-4-21 11:20:29
天天爱玛丽 发表于 2023-4-21 10:59
我的例子讲述的过采样的计算方法,
将连续采样4n(n是次数)数据求和,再对求和的结果右移n位,得到提升1bi ...
我的荔枝也是说过采样算法,分别从二进制和浮点数去说(因为楼主的疑惑)
你楞要说用浮点数误差巨大,先是把 4107 算成 4017,弄了个巨大的误差;然后后边实际上只要双方都用 4095 和 8191 或者用 4096 和 8192 就没有误差你楞要说有误差...
错误是谁的我懒得再赘述。
abbey_tom
发表于 2023-4-21 11:26:45
天天爱玛丽 发表于 2023-4-21 11:09
等式3300mV / 4095 = x / adc,
求x,
这里没有4096的事,
这个就是你头铁了,
取4095还是4096当然对精度有影响了,
这个需要看详细文档,
也许不同的ADC有不同的设计,
但这不是本次讨论问题的关键。
本次讨论的是:
算术平均算法能不能用于过采样。
abbey_tom
发表于 2023-4-21 11:32:54
天天爱玛丽 发表于 2023-4-21 11:16
采样不存在噪声时,过采样等效于算术平均,
存在噪声时,平均值中依然有噪声,
又扯到概念问题了,
现在假设硬件(包括待采模拟量中的噪声),
已经具备过采样条件,
就让我编代码实现过采样,
用我这种算术平均法究竟行还是不行?
天天爱玛丽
发表于 2023-4-21 11:41:04
abbey_tom 发表于 2023-4-21 11:32
又扯到概念问题了,
现在假设硬件(包括待采模拟量中的噪声),
已经具备过采样条件,
存在噪声的采样,有平均值算出来的结果,已经包含了噪声分量,结果也不准确了,
所以我的结论是用平均算法不行,
至于采不采信,自己衡量吧,
上面只有闻太师讲解正确了过采样的概念,
存在噪声的平均算法与过采样算法,结果必然是不同的,
我的手滑,输错了数,是我的错,
瓦数老师连续点了两次该问题了,
所以我的观点都没有说服力,
我以后回帖仔细点,争取少犯错,不手滑.
washu
发表于 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当然对精度有影响了,
这个需要看详细文档,
咱俩都头铁,扯平了,;P
我是看了手册之后才提出这个问题,不然没必要因为这点小事扯半天了,
如果还是继续用air32,用4095计算
washu
发表于 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读取的采样数据都是整数,转换为浮点数时,按照浮点数的表示方法,主要数据依然存储在整数部分,没用到精度不确定的小数部分,
所以噪声都依然在整数中,这个不是您分析的那样的,
用实物跑下两种算法就一目了然了
abbey_tom
发表于 2023-4-21 11:55:20
天天爱玛丽 发表于 2023-4-21 11:41
存在噪声的采样,有平均值算出来的结果,已经包含了噪声分量,结果也不准确了,
所以我的结论是用平均算法不 ...
我提出的另一个问题,
你还没有回答,
500次过采样行不行?
如果用你的正确算法应该如何计算呢?
abbey_tom
发表于 2023-4-21 12:07:25
天天爱玛丽 发表于 2023-4-21 11:53
从ADC读取的采样数据都是整数,转换为浮点数时,按照浮点数的表示方法,主要数据依然存储在整数部分,没用到 ...
“ADC读取的采样数据都是整数,转换为浮点数时,按照浮点数的表示方法,主要数据依然存储在整数部分”
ADC=2048转化为浮点,
假设为1.65V
整数部分只有1!!!
washu
发表于 2023-4-21 12:10:24
天天爱玛丽 发表于 2023-4-21 11:53
从ADC读取的采样数据都是整数,转换为浮点数时,按照浮点数的表示方法,主要数据依然存储在整数部分,没用到 ...
我什么时候说用浮点数时噪声在什么部分了?
washu
发表于 2023-4-21 12:12:54
abbey_tom 发表于 2023-4-21 12:07
“ADC读取的采样数据都是整数,转换为浮点数时,按照浮点数的表示方法,主要数据依然存储在整数部分”
AD ...
他理解的是先用浮点数把 ADC 转换结果累加求平均,再做乘除法得到电压值
你的理解是,先用浮点数把 ADC 转换结果做乘除法得到电压值,再累加然后求平均
不过实际上结果是一样的 :D
但我前面的荔枝,是你的理解,因为我的程序是那么写的...如果你用他的理解,用个毛的浮点数,浮点数做(整数)累加你不累么 ;P
abbey_tom
发表于 2023-4-21 12:19:51
washu 发表于 2023-4-21 12:12
他理解的是先用浮点数把 ADC 转换结果累加求平均,再做乘除法得到电压值
你的理解是,先用浮点数把...
实际做法当然是整型累加最后才用浮点乘除,
但与先浮点累加的结果应该无差,
物理意义可当做将每次采样都算出浮点电压,
然后再算术平均。
天天爱玛丽
发表于 2023-4-21 12:35:09
本帖最后由 天天爱玛丽 于 2023-4-21 12:36 编辑
累加起来的和无论是整数还是浮点数,都包含着噪声数据,目的是降低噪声的水平。过采样的作用是直接改变量化等级,目的是提高有效信号的水平。这俩算法原理都不是一会事,视为等效不科学。平均算法的有效信号与过采样的有效信号不是一个量级,虽然结果很接近。我口才不好,无力讲明白,自己明白就好。随便用哪种,看编程人员的取舍吧。
小鬼头
发表于 2023-4-21 12:48:53
xjw01 发表于 2023-4-21 10:08
电感大概能测到300mH,最小0.1uH以下。电容估计最小能测几百pF,最大可能是1000uF或10000uF
========= ...
这些涉及到量程这一块,与mcu编程有关,我还没有去仔细考虑。之前列的数据是根据可测到的电阻/阻抗,按理想化条件胡乱算的。
你这里使用平方根的方法进行计算,似乎有问题。这种方法对于恒压源驱动的RC串联网络来说,无疑是正确的。
但现在是恒流源驱动,直接按R、C各自的模来算电压分配比例即可,不需取平方根来计算。