精华内容
下载资源
问答
  • 摘要:在分析现有功率因数检测电路的基础上,提出了基于单片机电压采样的功率因数检测方法。叙述了电压采样测量功率因数的原理,设计出了以 PIC16F877单片机核心的功率因数在线检测电路。并采用两种不同的负载进行了...
  • 摘要:在分析现有功率因数检测电路的基础上,提出了基于单片机电压采样的功率因数检测方法。叙述了电压采样测量功率因数的原理,设计出了以 PIC16F877单片机的功率因数在线检测电路。并采用两种不同的负载进行了功率...
  • 经过实际测试,非均匀采样实现系统达到的性能指标如下。  (I)频率检测时间。硬件系统中DSP进行一次算法处理需要约900ms,所以一次检测时间小于1秒s。  (2)频率检测精度。频率检测的绝对精度为5kHz。  (3...
  • 最后, 以信噪比作为指标, 重点分析了窗函数宽度、种类的影响, *估了影响时频滤波重构自适应采样精度的各因素。 你所查询《基于时频滤波重构自适应采样方法研究》提供Acrobat PDF格式: /基于时频滤波重构自适应...
  • 总结一下 在成本受限的情况下,可以通过单片机片内ADC过采样以及累积抽取的技术来提升采样分辨率,这种技术的特点: 可以使用过采样和平均来提高测量分辨率,而无需增加昂贵的片外ADC。 过采样和加和抽取将以提高...

    关注+星标公众,不错过精彩内容

    转自 | 嵌入式客栈

    相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现较高分辨率时,第一时间会想到采用一个较高位数的外置ADC去实现。

    可是高分辨率外置ADC往往价格都不便宜,这就带来一对矛盾:高指标与低成本。其实利用单片机片上的ADC利用过采样技术就能很好的解决这样一对矛盾体,本文来聊聊这个话题。

    什么是过采样?

    在信号处理中,过采样是指以明显高于奈奎斯特速率的采样频率对信号进行采样。从理论上讲,如果以奈奎斯特速率或更高的速率进行采样,则可以完美地重建带宽受限的信号。奈奎斯特频率定义为信号带宽的两倍。过采样能够提高分辨率和信噪比SNR,并且通过放宽抗混叠滤波器的性能要求,有助于避免混叠和相位失真。

    在很多项目应用中,需要测量信号的动态范围较大,且需要参数的微小变化。例如,ADC需要测量很大的温度范围(比如工业中甚至要求从-200℃~500℃),但仍要求系统对小于1度的变化做出响应。常见的单片机片上ADC位数为12位,如要实现高于12位分辨率要怎么做呢?我们知道奈奎斯特-香农采样定理可知:

    其中:

    • 为输入待采样信号最高频率

    • 为奈奎斯特频率。

    如果实际采样频率高于奈奎斯特频率 ,即为过采样。那么低于奈奎斯特采样频率进行采样就称为欠采样,如下图:

    或许你会问,常规的应用都是过采样,怎么也没见分辨率提高了呀?如果仅仅过采样,要实现更高分辨率显然是不够的,那么要怎么利用过采样实现更高的分辨率呢?要知道所采用的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和测量分辨率。

    • 过采样和加和抽取可以改善白噪声的信噪比。

    ------------ END ------------

    推荐阅读:

    嵌入式专栏精选教程

    精选汇总 | STM32、单片机

    精选汇总 | RTOS、操作系统

    迎关注我的公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

    欢迎关注我的视频号:

    点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

    展开全文
  • [导读] 相信ADC的应用...其实利用单片机片上的ADC利用过采样技术就能很好的解决这样一对矛盾体,本文来聊聊这个话题。什么是过采样?在信号处理中,过采样是指以明显高于奈奎斯特速率的采样频率对信号进行采样。...

    d89d95d5f1b32456f1e64325f7d13db8.png

    [导读] 相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现较高分辨率时,第一时间会想到采用一个较高位数的外置ADC去实现。 可是高分辨率外置ADC往往价格都不便宜,这就带来一对矛盾: 高指标与低成本。 其实利用单片机片上的ADC利用过采样技术就能很好的解决这样一对矛盾体,本文来聊聊这个话题。

    什么是过采样?

    在信号处理中,过采样是指以明显高于奈奎斯特速率的采样频率对信号进行采样。从理论上讲,如果以奈奎斯特速率或更高的速率进行采样,则可以完美地重建带宽受限的信号。奈奎斯特频率定义为信号带宽的两倍。过采样能够提高分辨率和信噪比SNR,并且通过放宽抗混叠滤波器的性能要求,有助于避免混叠和相位失真。

    在很多项目应用中,需要测量信号的动态范围较大,且需要参数的微小变化。例如,ADC需要测量很大的温度范围(比如工业中甚至要求从-200℃~500℃),但仍要求系统对小于1度的变化做出响应。常见的单片机片上ADC位数为12位,如要实现高于12位分辨率要怎么做呢?我们知道奈奎斯特-香农采样定理可知:

    其中:

    • 为输入待采样信号最高频率
    • 为奈奎斯特频率。

    如果实际采样频率高于奈奎斯特频率,即为过采样。那么低于奈奎斯特采样频率进行采样就称为欠采样,如下图:

    61e8abb925c19f5502dd4fedc6d2723c.png

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

    过采样提高分辨率

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

    e99b148f890a4ce4dec78df30061a3fc.png

    为增加有效位数(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中断都需要CPU参与,在过采样率很高的情况下,上述方案消耗很多CPU资源,那么如果单片机内存资源足够的情况下可以考虑采用DMA模式,采集很多数据并将数据暂存下来,然后再做累加平均抽取。这是空间换时间的策略的体现。这个编代码也很容易,只需要申请一片内存区,内存区的大小可以定为256的倍数,这是因为在提升4位分辨率情况下,一个16位的输出样本需要256个12位样本。

    总结一下

    在成本受限的情况下,可以通过单片机片内ADC过采样以及累积抽取的技术来提升采样分辨率,这种技术的特点:

    • 可以使用过采样和平均来提高测量分辨率,而无需增加昂贵的片外ADC。
    • 过采样和加和抽取将以提高CPU利用率和降低吞吐量为代价来提高SNR和测量分辨率。
    • 过采样和加和抽取可以改善白噪声的信噪比。

    c3780c3ce350ad0eb243e696eeaf252d.png

    1.第二届国产嵌入式操作系统技术与产业发展论坛即将在金秋十月杭州钱塘江畔召开

    2.因为不满已有RTOS,所以作者写了它—ChibiOS!

    3.操作系统产生死锁的原因和处理策略

    4.你不知道的Linux使用技巧~

    5.放弃 Windows 后 ,开源操作系统能成为主流桌面系统吗?

    6.刚获得物理诺奖的数学家:现实是对完美数学真理的扭曲反应,人脑是最终量子计算机!

    456f232d60b2700dd0953fcd737f1a19.gif

    免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

    展开全文
  • 0 引言  过采样∑-△A/D转换器以其高精度和易于用标准数字CMOS工艺实现的特点而被广泛应用,并越来越多地集成到片上系统(SOC)中。∑-△ADC采用的是过采样和... 1 ∑-△ADC的主要性能指标  信号与噪声加失真比
  • 其实利用单片机片上的ADC利用过采样技术就能很好的解决这样一对矛盾体,本文来聊聊这个话题。什么是过采样? 在信号处理中,过采样是指以明显高于奈奎斯特速率的采样频率对信号进行采样。 从理论...

    28b69bbb0b578b4470b3cd64a2557eb7.png

    [导读] 相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现较高分辨率时,第一时间会想到采用一个较高位数的外置ADC去实现。可是高分辨率外置ADC往往价格都不便宜,这就带来一对矛盾:高指标与低成本。其实利用单片机片上的ADC利用过采样技术就能很好的解决这样一对矛盾体,本文来聊聊这个话题。

    什么是过采样?

    在信号处理中,过采样是指以明显高于奈奎斯特速率的采样频率对信号进行采样。 从理论上讲,如果以奈奎斯特速率或更高的速率进行采样,则可以完美地重建带宽受限的信号。 奈奎斯特频率定义为信号带宽的两倍。 过采样能够提高分辨率和信噪比SNR,并且通过放宽抗混叠滤波器的性能要求,有助于避免混叠和相位失真。

    在很多项目应用中,需要测量信号的动态范围较大,且需要参数的微小变化。例如,ADC需要测量很大的温度范围(比如工业中甚至要求从-200℃~500℃),但仍要求系统对小于1度的变化做出响应。 常见的单片机片上ADC位数为12位,如要实现高于12位分辨率要怎么做呢?我们知道奈奎斯特-香农采样定理可知:

    其中:

    • 为输入待采样信号最高频率
    • 为奈奎斯特频率。

    如果实际采样频率高于奈奎斯特频率

    ,即为过采样。那么低于奈奎斯特采样频率进行采样就称为欠采样,如下图:

    08b91ceff49f7369375e2659266855c0.png
    奈奎斯特频率/过采样/欠采样

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

    过采样提高分辨率

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

    20b9b220ac90fd9bc53735ba9a720f59.png
    过采样提高分辨率方案

    为增加有效位数(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和测量分辨率。
    • 过采样和加和抽取可以改善白噪声的信噪比。

    该文章原创首发于下面链接,未经授权,严禁转载

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

    展开全文
  • 总结一下 在成本受限的情况下,可以通过单片机片内ADC过采样以及累积抽取的技术来提升采样分辨率,这种技术的特点: 可以使用过采样和平均来提高测量分辨率,而无需增加昂贵的片外ADC。 过采样和加和抽取将以提高...

    关注、星标嵌入式客栈,精彩及时送达

    [导读] 相信ADC的应用或多或少都会用到,在很多场合都有分辨率要求,要实现较高分辨率时,第一时间会想到采用一个较高位数的外置ADC去实现。可是高分辨率外置ADC往往价格都不便宜,这就带来一对矛盾:高指标与低成本。其实利用单片机片上的ADC利用过采样技术就能很好的解决这样一对矛盾体,本文来聊聊这个话题。

    什么是过采样?

    在信号处理中,过采样是指以明显高于奈奎斯特速率的采样频率对信号进行采样。从理论上讲,如果以奈奎斯特速率或更高的速率进行采样,则可以完美地重建带宽受限的信号。奈奎斯特频率定义为信号带宽的两倍。过采样能够提高分辨率和信噪比SNR,并且通过放宽抗混叠滤波器的性能要求,有助于避免混叠和相位失真。

    在很多项目应用中,需要测量信号的动态范围较大,且需要参数的微小变化。例如,ADC需要测量很大的温度范围(比如工业中甚至要求从-200℃~500℃),但仍要求系统对小于1度的变化做出响应。常见的单片机片上ADC位数为12位,如要实现高于12位分辨率要怎么做呢?我们知道奈奎斯特-香农采样定理可知:

     

    其中:

    • 为输入待采样信号最高频率

    • 为奈奎斯特频率。

    如果实际采样频率高于奈奎斯特频率,即为过采样。那么低于奈奎斯特采样频率进行采样就称为欠采样,如下图:

    或许你会问,常规的应用都是过采样,怎么也没见分辨率提高了呀?如果仅仅过采样,要实现更高分辨率显然是不够的,那么要怎么利用过采样实现更高的分辨率呢?要知道所采用的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和测量分辨率。

    • 过采样和加和抽取可以改善白噪声的信噪比。

    END

    往期精彩推荐,点击即可阅读

    ▲Linux驱动相关专辑 

    手把手教信号处理专辑

    片机相关专辑

    展开全文
  • 文章目录A/D(模数转换)的主要指标ADC 的位数基准源分辨率INL(积分非线性度)和 DNL(差分非线性度) A/D(模数转换)的主要指标 我们在选取和使用 A/D 的时候,依靠什么指标来判断很重要。由于 AD 的种类很多,分为...
  • A/D,将模拟量转换成数字量的操作。 模拟量,是指变量在一定范围连续变化的量,在一定范围(定义域)内...单片机就是一个典型的数字系统。数字系统只能对输入的数字信号进行处理,其输出也为数字信号。 为了实现数...
  • 单片机复习

    2021-05-10 15:16:37
    单片机复习 选择题 组成原理中计算机分为哪些功能部件 A、运算器 B、控制器 C、存储器 D、输入设备 E、输出设备 答案: ABCDE 计算机的存储器分为: A、U盘 B、内存 C、外存 D、高速缓存 E、寄存器 答案: BCDE CC...
  • 摘 要:给出了采用STC89C52单片机进行自适应控制来控制PWM波, 进而控制电炉的加热,以实现温度控制的设计方法。这套温度测控系统弥补了传统PID控制结构在特定场合下性能下降的不足。  与传统的系统相比,该电路...
  • 单片机期末复习

    2021-01-05 17:31:32
    单片机期末复习名称解释单片机概述中断系统作用中断源入口地址 只针对MCS-51单片机 名称解释 A/Acc:累加器。 B:B寄存器。 DPTR:数据指针,一个16位的SFR,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。...
  • -END- 喜欢这篇文章的人也喜欢 · · · · · · ▶ 电子元件封装大全及封装常识 ▶ 学好单片机必须了解的10个电路 ▶ 114个实用电子小常识总结(完结) ▶ 单片机的功耗到底怎么计算? ▶ 硬件原理图常见...
  • 单片机常用工具

    千次阅读 2017-10-18 17:09:41
    工欲善其事必先利其器,我们做单片机开发的时候,不管是调试电路还是调试程序,都需要借助一些辅助工具来帮助查找和定位问题,从而帮助我们顺利解决问题。没有任何辅助工具的单片机项目开发很可能就是无法完成的任务...
  • 文章目录1、A/D转换的概念2、数字量和模拟量3、A/D转换的基本原理(1)采样采样定理(2)采样/保持电路(3)量化和编码4、常用的A/D转换器5、常见的A/D芯片 1、A/D转换的概念 模拟信号到数字信号的转换称为模-数...
  • 本开关稳压电源设计采用低功耗的TI公司的膈位单片机MSP430F449片机最小系统板为控制核心,以PWM控制技术,闭环PI调节,高精度的12位A/D转换为基础,完成了采样值显示与设置电压值的功能和参数指标
  • 4 软件系统设计  软件部分是实现系统功能...定时器中断程序的任务是完成A/D 的采样采样频率),同时完成闪烁等功能,中断程序流程如图7所示.  5 系统测试  由表1 测试结果可看出,本系统达到了以下两项指标
  • 本开关稳压电源设计采用低功耗的16位单片机MSP430F449片机最小系统板为控制核心,以PWM控制技术,闭环PI调节,高精度的12位A/D转换为基础,完成了采样值显示与设置电压值的功能和参数指标。实验结果表明:通过单片机...
  • 单片机基础汇总

    万次阅读 多人点赞 2018-10-30 11:50:30
    单片机基础教程     一、单片机概念   1、单片机:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口电路,从而构成了单芯片微型计算机,即单片机...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    1. C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言...
  • 数字信号处理芯片(DSP)输出控制A/D转换的原始信号,并通过CPLD读写RAM中的采样数据,然后传送给单片机,最后利用单片机的USB接口将采集数据传送给PC机。分析了高速DSP的引导装载过程,并利用单片机实现了DSP程序的引导...
  • 武彦飞,童峥嵘,邢文华,王俊峰(天津理工大学 计算机与通信工程学院,天津 300384)摘要:设计了一种以STC单片机为核心的双电源自动转换开关控制器,具有自动检测、诊断和控制的功能。系统电源出现故障时,短时间内...
  • 单片机基础教程

    千次阅读 2018-12-25 16:39:28
    单片机基础教程   第一节、机基础知识 一、单片机概念   1、单片机:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口电路,从而构成了单芯片微型计算机,即单片机(single chip ...
  • 带外杂散信号所引起的混叠现象是模/数转换器(ADC)应用中所面临的关键问题,如果没有适当的滤波处理,这些信号会严重影响数据转换系统的性能指标。    因此,任何数据采样系统都需要在ADC之前利用抗混叠滤波器...
  • 摘要: 本音频信号分析仪由32位MCU为主控制器,通过AD转换,对音频信号进行采样,把连续信号离散化,然后通过FFT快速傅氏变换运算,在时域和频域对音频信号各个频率分量以及功率等指标进行分析和处理,然后通过高...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 910
精华内容 364
关键字:

单片机采样指标