太秀了!单片机内置 ADC 实现高分辨率采样?



其中:
为输入待采样信号最高频率 为奈奎斯特频率。
如果实际采样频率高于奈奎斯特频率,即为过采样。那么低于奈奎斯特采样频率进行采样就称为欠采样,如下图:

或许你会问,常规的应用都是过采样,怎么也没见分辨率提高了呀?如果仅仅过采样,要实现更高分辨率显然是不够的,那么要怎么利用过采样实现更高的分辨率呢?要知道所采用的ADC硬件核分辨率是固定的,难道还会变不成?

过采样提高分辨率
如果对一模拟信号,采用过采样,然后再进行一定的软件后处理,理论上是可以得到更高分辨率的:

为增加有效位数(ENOB :effective number of bits),对信号进行过采样,所需的过采样率可以由下面公式确定(省略理论推导,过于枯燥):
其中:
为过采样频率 产品所需实际采样频率 W为额外所需增加的分辨率位数
假设系统使用12位ADC每100 ms输出一次采样值也即(10 Hz)。为了将测量的分辨率提高到16位,我们按上述公式计算过采样频率:
因此,如果我们以f对信号进行过采样,然后在所需的采样周期内收集足够的样本以对它们进行平均,现在可以将16位输出数据用于16位测量。
具体怎么做呢?
首先将256个连续采样累加 然后将总数除以16(或将总数右移4位)。该过程通常称为抽取,也即将速率采样。 在类似进行下一次16位样本处理
注意:用于累积过采样数据并执行除法抽取数据类型必须具有足够的字节宽度,以防止溢出和截断错误。比如这里累积和可以采样32位无符号整型。
由上面公式可得出一个重要结论:每提高W位分辨率,需要提高采样率倍。

过采样提高ADC的信噪比
ADC测量的SNR理论极限基于量化噪声,这是基于在没有过采样和平滑滤波情况下模数转换过程中固有的量化误差所致。而量化误差取决于ADC分辨率的位数,其中N为ADC的位数,为参考电压。
SNR理论情况下极限值的计算方式是数据转换的有效位数,如下所示:
这个公式没必要去记,用到的时候参考计算一下即可。从公式中可看出,要提升一个模数转换器的理论SNR的一种可行方案可以通过提升采样位数,但是需要注意的是这里的信噪比是度量模数转换器本身的,就一个真实系统的信噪比还与整个信号链相关!
从上式中不难算出,12位ADC的理论SNR极限值为74dB,而通过过采样提升4位分辨率后,其SNR理论极限提高至96 dB!

到底怎么实现呢?
这里以伪代码的方式给出编程思路:
void init_adc(void){/*配置ADC的采样率为过采样率连续中断模式*/}void start_adc(void){/*控制ADC启动采样*/}/*不同的开发平台中断函数写法略有差异,比如51需要指定向量 *//*OVERSAMPLE_FACTOR=4^RSHIFT_BITS 下面两个宏一起修改 */#define RSHIFT_BITS (4)#define OVERSAMPLE_FACTOR (256)static unsigned short adc_result=0U;void adc_isr(void){static unsigned short adc_index = OVERSAMPLE_FACTOR;static unsigned int accumulator = 0U;/*ADC_REG ADC转换结果寄存器,不同平台名称不同*/accumulator += ADC_REG;adc_index--;if( adc_index==0 ){/* 加和按因子抽取 */adc_result = accumulator>>RSHIFT_BITS;accumulator = 0;adc_index = OVERSAMPLE_FACTOR;}}
该方案有一个缺陷,就是每次ADC中断都需要CPU参与,在过采样率很高的情况下,上述方案消耗很多CPU资源,那么如果单片机内存资源足够的情况下可以考虑采用DMA模式,采集很多数据并将数据暂存下来,然后再做累加平均抽取。这是空间换时间的策略的体现。这个编代码也很容易,只需要申请一片内存区,内存区的大小可以定为256的倍数,这是因为在提升4位分辨率情况下,一个16位的输出样本需要256个12位样本。

总结一下
在成本受限的情况下,可以通过单片机片内ADC过采样以及累积抽取的技术来提升采样分辨率,这种技术的特点:
可以使用过采样和平均来提高测量分辨率,而无需增加昂贵的片外ADC。
过采样和加和抽取将以提高CPU利用率和降低吞吐量为代价来提高SNR和测量分辨率。
过采样和加和抽取可以改善白噪声的信噪比。


更多精彩推荐
☞“我们的边缘计算技术点,可能超前了业界一点”☞1024程序员节开源技术英雄会,参会“英雄榜”发榜☞区块链+生鲜:杜绝“偷梁换柱”和“以次充好”
点分享 点点赞 点在看
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 从“水之道”感悟“国之交” 7904313
- 2 台当局被曝和日本出现军事勾连迹象 7809398
- 3 1818名明星网红等人查补税款15.23亿 7712038
- 4 全国冰雪季玩法大盘点 7618362
- 5 女子遭75岁丈夫家暴 村民发声 7521312
- 6 周星驰《鹿鼎记》重映首日票房仅18万 7423547
- 7 净网:网民造谣汽车造成8杀被查处 7330097
- 8 政治局召开会议 分析明年经济工作 7238137
- 9 退学北大考上清华小伙被欠家教费 7135463
- 10 流感自救抓住“黄金48小时” 7045808










CSDN
