精华内容
下载资源
问答
  • 采样频率的意思是单位时间的采样次数。要确定采样频率,应该根据被测模拟量的变化动态以及测量需求决定。 对于特定的硬件环境以及转换位数来说,转换时间是确定的,也就是说在确定的主频、分频系数以及转换分辨率下...

    转自百度知道https://zhidao.baidu.com/question/295921974.html

    采样频率的意思是单位时间的采样次数。要确定采样频率,应该根据被测模拟量的变化动态以及测量需求决定。
    对于特定的硬件环境以及转换位数来说,转换时间是确定的,也就是说在确定的主频、分频系数以及转换分辨率下,硬件的转换时间是固定的,这个时间的具体值可以通过查阅AD转换芯片的数据手册获得。
    总的来说,对于快速变化的被测量需要采用较高的采样频率,对于缓变量可以采用较低的采样频率以节约单片机的处理资源。但是无论如何采样频率不应该突破转换时间的限制!

    更多追问追答

    追问

    如果我确定需要的采样频率为150k,ad最高采样频率200k。是否是通过定时器设置来促发采样频率为150k?即设置定时器每1/150k采样一次?

    追答

    不错,在定时器中断中启动采样这样可以的。
    不过,一般所谓的AD最高采样频率是在连续转换的方式下,像你上面的流程是单次采样,通常单次采样的时间要大大长于连续转换的,也就是说实际上达不到200K。这点需要注意!此外你还要考虑采样数据的处理输出的时间,否则采样就没有意义了。
    展开全文
  • 按照时域采样定理,采样频率≥2倍的信号频率,才能得到信号全部信息。而以智能车中的编码器测速为例。我们知道测速周期在可接受范围内越小越利于控速,比如2ms。但2ms采样一次速度,究竟能不能得到速度信号的全部...

    卓老师,我有一个信号与系统的问题想请教。按照时域采样定理,采样频率≥2倍的信号频率,才能得到信号全部信息。

    而以智能车中的编码器测速为例。我们知道测速周期在可接受范围内越小越利于控速,比如2ms。但2ms采样一次速度,究竟能不能得到速度信号的全部信息我们却不得而知,归根结底是因为不知道速度信号的频率是多少。

    那么智能车速度信号的频率要如何得知呢?

    e118cf86ddab64a128a831f9294512ba.png

    速度光电编码盘

    (回复)提问中的问题包括有三个子问题:

    (1)根据采样定理,如何采集速度信号? 

    (2)使用光电码盘测量速度信号主要误差来源是什么?

    (3)根据车模速度控制需要究竟需要按照什么周期采集速度信号?

    同学们学习信号采样定理,最容易犯的错误就是机械的照搬定理的结论,却没有注意到定理的使用条件。

    信号采样定理的应用条件有两个:一是信号是一个频带受限信号,即信号有一个最高频率;二是除了知道信号频谱的最高频率之外,不再知道其它信号的额外信息了。在此条件下,信号的奈奎斯特频率,即信号的采样频率就是信号的最高频率的两倍。

    7a6aec7a0a800953ede690fd2637663f.gif

    如果额外还知道信号的其它条件,比如信号是一个窄带信号,除了最高频率之外,还有最低频率;此时就可以使用低得多频率完成信号的采样。这一点可以参照郑君里教授《信号与系统》第三章的最后一个习题。

    举一个极端的例子,如果已知信号是一个正弦波,即信号的频谱是一个线谱,此时实际上只需要任意对信号采样三个不同时间的数据,在一般意义上便可以恢复该信号,此时成为信号的参数估计。

    对于车模的速度信号,经过光电编码盘之后,它反映在两路输出正交方波信号中,速度信号是该方波信号的频率参数。

    此时可以看成速度信号调制在两路正交同频率的方波脉冲信号中,是调频调制。因此,接受到的光电编码信号是速度信号的调制信号。

    bf6098fc349466b80c5a5672bc0b35b1.png

    接收到的光电编码盘信号是速度的调制信号

    所以光电编码信号的频谱并不是速度信号的频谱,而是速度的频谱被调制后进行了频谱搬移。如果对速度信号进行采样,则需要对原来信号进行解调之后才能够获得速度信号。

    如何从光电脉冲信号解调出速度信号在第二个小问题进行回答。在此之前,还是需要讨论普通车模的速度信号的频谱范围如何确定?

    信号的频谱范围取决于信号的交流分量的范围。如果车模的速度是保持在恒速运行,不论这个速度多大,对应的频谱范围都是0。

    那么如何估计车模速度的交变分量呢?这一点可以使用车模从速度为零加速到最高速度的时间,或者从最高速度减速到0 的时间来衡量。这个时间的倒数与速度的频带宽度成正比。

    比如车模使用0.2秒从静止加速到最高速度并保持匀速运行,对于这样一个斜边速度信号,它的频谱本身是无穷大的,但可以认为其主要频谱能量集中在5Hz(0.2秒的倒数)以内。对于速度信号的采样可以使用5Hz的两倍以上的频率完成采样,即10Hz以上的采样频率。当然,为了留出一定的余量,则需要使用20H以上的频率进行采样。

    具体采样周期需要根据第二个问题-速度测量误差来源和第三个问题车模速度离散控制周期综合确定。

    第二个问题是速度测量误差来源。由于常见到的速度编码器是将速度信号调制在两路正交脉冲信号上。

    90e4118900aa379e2823deeaeadd27fd.png

    一款实际应用的Hall传感器测量速度

    通常可以采用脉冲数量测量方法、脉冲周期测量方法、以及它们的组合方法。测量的误差与总测量时间T成反比,即测量周期越长,所获得的频率越准确。

    467901e39e5120abb997356119768a7d.png

    对于信号的频率估计所产生的不确定性与信号的持续时间T呈现反比关系。这就是著名的信息测不准原理。相关的讨论可以参见推文《傅里叶变换与不确定性》中的叙述。

    因此,如果想获得更加精确的速度信息,则需要更长的测量周期,则对应的测量速度的频率就需要越低。最后在结合控制速度的精确度来粗略估计对速度的测量大体精度。

    最后一个问题就是关于车模速度控制周期。车模的速度调节是由单片机通过软件来实现的,这是一个离散时间控制系统。其中一个重要的参数,就是离散时间系统的控制周期的选择。

    离散时间控制系统的周期在选择上只要比起控制对象的频带宽度对应的时间常数小一个数量级,便可以达到很好的控制效果了。

    当确定下速度控制周期之后,对于速度采集的周期(频率)也就相继确定下来了,即速度控制周期就等于速度采样周期。

    需要根据控制效果来确定被控对象的控制周期。对于控制效果,往往需要根据控制结果的性能来衡量,它们包括控制量的过冲比率、上升时间、稳定时间以及稳态精度等等。这可以从控制对象的单位阶跃响应曲线来定义。

    54d84505ddd2ec2215e4c5cc9577965d.png

    下面是选择了一个带有0.2秒延迟的二阶系统,它的单位冲击响应如下图所示:

    fd23d1e6c42a3de3dd466a57d9792a8b.png

    为了提高该系统的性能,即减少系统过冲,同时提高系统的跟踪速度,可以对该系统引入负反馈控制。

    下面是引入比例负反馈控制的效果。比例控制参数从0增加到5.

    d79cbe90311af75d0385e2acaad790cc.gif

    下图给出了在不同的反馈比例因子,反馈系统的过程比率。可以看到,在反馈比例系数为1.75左右时,系统过冲最小,大约在50%的过冲左右。

    13f5507a770ef804a77ae1f88381130d.png

    如果希望进一步减少系统的过冲,可以再引入微分控制项。下图给出了反馈比例系数为1.75,微分反馈控制系数从0增加到1的过程中,系统的单位冲击响应曲线。系统的过冲从50%降低到20%左右。

    2babb4b4e3149f4b26f0adf5a96bb9eb.gif

    下图绘制出在不同的微分系数下,系统的过冲变化曲线。在微分系数为0.75左右,系统过冲达到最小。

    9819f9d0ffc34cb64c7acfcb310aa8d2.png

    根据前面两次实验,可以大体确定下系统反馈控制的最优参数,比例系数为1.75,微分系数为0.75左右。

    所形成的反馈控制如下图所示:

    75283b59ebeaf65cbf4582d65361fb7c.png

    使用MATLAB的bode命令绘制出此时系统的频率特性:

    4d334ae285c86f4602c7bbbccf469536.png

    从上图可以看出,该系统是一个低通系统。但由于延迟的存在,系统具有多个谐振峰值。第一个截止频率在1.6Hz左右,第一个谐振频率在15Hz左右。

    对于该系统如果采用单片机软件控制,则需要确定控制周期。控制周期与控制效果之间有什么关系呢?

    下图通过实验,对原来的连续控制系统进行离散化,取控制周期0.01s变化到0.75秒,观察系统的单位冲激响应的变化。

    f9749fd9da059cb4a2d1ca8766b83314.gif

    下图给出了在不同的控制周期下,系统的单位冲击响应的过冲比率。从图中可以看出,系统过冲量与控制周期之间并不是一个简单的曲线关系,而是随着控制周期增加呈现多次波动情况。

    对于一个特定的对象,并不是控制周期越小越好,总是存在着一些最优的控制周期。

    对于该系统,当控制周期超过0.618秒的时候,反馈系统就不再稳定,呈现发散状态。

    692a46c785081a681bdf299b9563f05a.png

    从上面的实验可以看出,对于控制周期小于0.1秒的时候,系统是稳定的,而且过冲误差控制在1.35之内。下面对于控制周期在0.01至0.1秒之间再进行实验,观察在不同控制周期下的控制效果。

    01675a0720f76f042cf672716e3c8fe3.gif

    下面曲线绘制出在控制周期从0.01秒到0.1秒变化时,系统的单位冲击响应的过冲误差曲线。该曲线呈现规律的波动。

    因此,从整体上来看,对于该系统,控制周期只要小于0.1秒,系统过冲就不是很大了。控制周期从10毫秒至40毫秒之间控制性能差别不大了。

    4f81a06173323481f28791cc4635dbde.png

    最后对于提问的回复进行小结:对于速度信号的测量,它的测量频率不是按照光电编码信号的最高频率来确定的,而是按照其中速度信号的频率来确定采样信号的。速度的频率范围可以从车模加速时间或者停止时间的倒数来近似确定。

    最终的速度采样周期则需要跟控制软件周期保持一致。而该周期的确定则是根据控制性能(过冲量、过渡时间、稳定精度等)来权衡。

    实践中,在控制性能能够满足要求的情况下,不要一味减小控制周期。这不仅对提高控制性能无益,同时由于对速度采样的周期减少,而带来额外的测量误差。这测量噪声在控制回路中会引起更大的控制噪声。

    3e598d796209b119836a5ce9d234e012.png


    公众号留言

    留言1:卓老师,针对现在公布的初步规则我有几点疑问和建议,想和您交流一下:1.规则规定的十字路口超车标志,按您的回复来说并不是所有路口都存在。那如果在不允许抄近路的地方抄了,是否会罚时?罚时多久?

    2.规则规定的车库元素,其边缘是全部路肩铺盖还是只贴上胶带还是间隔铺设?如果在停车时撞上了车库边缘或者超出其边缘是否犯规?如果算犯规又怎么判罚?

    4774bc372743bbd51975cfb7e5846437.gif

    3.按照比赛要求,双车基本是一定会安装交接装置的。这些装置安装后车模的长宽高究竟如何计算?是按照初始状态计算还是按照交接过程中运行的最大范围计算?

    4.初步规则中并没有明确车模交接棒的位置。那么这个位置比赛中究竟是选手自己选还是赛道直接指定?如果指定的话是指定一个位置还是一片区域?

    对于交接棒的位置老师我有个建议:可否在赛道设计时就指定一块区域交接,然后在这块区域上的某个位置再设置一个不带起跑线的车库。会车时要求后车从车库驶出接球,前车传球完后驶入该车库,其他动作不变。这样就解决了位置的问题,而且校内调试时多出的这个车库并不会影响其他组别同学调试。

    老师这就是我的疑问和建议,希望老师能够给予解答,谢谢老师!最后插一句:老师别太熬夜了,注意身体,您这推文时间太让人担心了

    回复:谢谢你通过提问规则所提出疑问可以帮助我们进一步完善规则。1)如果在没有标示的十字路口车模没有直接前行,则比赛失败;2)对于车库边缘不一定铺设路肩,只要车模外轮廓在车库内即算停车成功;否则加罚一定的时间;3)对于双车交接接力棒的装置应该计算在车模总长度内;该长度应该在比赛前、后都不超过要求,这样判罚较为简便;4)车模交接区应该在比赛前同一指定,在完成交接过程在前后一个一米的区域便于判断。你所提出的中间再设置一个停车库的建议非常好。值得吸收在正式规则中。

    留言2:老师,这个灯如果按照规则进行设定的话。那他的光线就太不均匀了(我们用的是以往的信标灯控制电路,电路面积比较小)。所以我想问一下老师,今年的比赛信标灯电路会不会改成面积更大,但更扁的电路?

    d1ac93b71d954aef6153445a1b2f8dfe.gif

    回复:为了和之前相互能够兼容,今年的信标灯电路不会再增大了。

    留言3:卓大大,现在再给您留言可能有点晚了,但是还是想提一些建议。就是不知室内能否保留纯电磁组给节能。大大可能不知道,对于节能来说硬件的纠错周期是很长的,光是把平衡调出来就要改好几版车。因为我们不能像三轮组一样加配重条来调机械零点,就只能做一版车测一测中心,然后改一版试试(因为我们的车要尽可能轻)。

    所以留给软件真正上赛道调试的时间其实不多,像我们学校去年的节能组西部赛前只有一个星期的上赛道调试时间。本身调平衡已经不易(主要在于硬件方面想要做到最优),如果再加上调摄像头,那就有点太极限了。

    bd3fb0569e4025e8405960369beae9ff.gif

    我们组三个人虽然都是节能的萌新,但本身都有一年的竞赛基础,我相信大部分敢选节能的组别应该都和我们一样,但是这项任务我们做起来也是相当头疼,想到将来的极限操作,还是请大大能够手下留情。

    回复:谢谢你们的建议。

    展开全文
  • [导读] 相信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

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

    展开全文
  • adc 采样时间 采样周期 采样频率计算,PDF格式。 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实现了高分辨率采样

    展开全文
  • 采样次数也可根据实际需要设定,这与采样频率及采样长度有关。5.测量: 通过选择对应通道的峰值测量,示波器就可以帮你把所需要的数据及时显示出来。同时也可以选择对应通道的频率、最大值、均方根值等。通过对示波...
  • 通过STM8单片机ADC采样100Hz正弦波,计算正弦波有效值和平均值,并通过串口发送采样值,在波形显示软件上显示采样值波形。
  • ADC采样频率的计算

    千次阅读 2020-05-29 11:18:56
    因为又要做和毕设相关的内容,发现答辩时候老师特别喜欢问采样频率,那么ADC的采样频率是多少呢? 因为做的压力传感器阻值变化的ADC采集 再通过标定公式转换成压力值。 首先补充一下: ADC的中转换时间是 Tconv...
  • STM32 ADC采样频率的确定
  • 关于ADC采样的采样频率,采样时间的问题:(我目前的想法) 一例题开讲: 信号源为5KHZ的正弦波(一个周期),(就已知周期为200us)。 要求:完整的输出这个正弦波(周期无数)。 首先要确定采样频率,即一个周期采...
  • 通过单片机精准采样红外的发送和接收的时间间隔,得到更加准确的数据。主单片机使用AT89C52,这是市面上常用的单片机型号,并且功能十分全面,可以实现本课题的设计需求。最后测量得到的设计,通过液晶显示出来,...
  • ![单片机用什么类型的io口采样不同频率的输入合适图片说明](https://img-ask.csdn.net/upload/201608/17/1471400238_704526.png),图中一列波周期是1s。另一列是0.5s
  • 解 假设音频频谱由位于f=(1000/16)Hz处的单频代表。利用欧拉公式,该信号频谱在数学上定义为X(ejω)=0.5×δ(ω-2π...可以看到单频信号仍在原始频率处,但输出的基带宽度减小了4倍。  图1 所示为原始时间序列
  • ADC转换就是输入模拟的信号量,单片机转换成数字量。读取数字量必须等转换完成后,完成一个通道的读取叫做...一 STM32 ADC采样频率的确定 1. :先看一些资料,确定一下ADC的时钟: (1),由时钟控制器提供的ADCCLK...
  • ADC采样频率计算与时钟频率选择

    万次阅读 多人点赞 2016-01-16 15:48:07
    ADC10每次采样转换的总时间是: 采样时间+转换时间 其中采样时间可以设置成若干个ADC10CLK,转换时间手册中给出的是13个ADC10CLK,当然还有一个时钟同步时间tsync,但是这个时间小于一个ADC10CLK,粗略计算的话个人...
  • ADC转换就是输入模拟的信号量,单片机转换成数字量。读取数字量必须等转换完成后,完成一个通道的读取...一 STM32 ADC采样频率的确定 :先看一些资料,确定一下ADC的时钟: (1),由时钟控制器提供的ADCCLK时钟...
  • 实时采样通常是等时间间隔的,它的最高采样频率是奈奎斯特极限频率。等效采样(Equivalent Sampling)是指对多个信号周期连续样来复现一个信号波形,采样系统能以扩展的方式复现频率大大超过奈奎斯特极限频率的信号...
  • ADC转换就是输入模拟的信号量,单片机转换成数字量。读取数字量必须等转换完成后,完成一个通道的读取叫做采样周期。...一 STM32 ADC采样频率的确定 1. : 先看一些资料,确定一下ADC的时钟: (1...
  • FIR数字滤波器的典型设计方法主要有窗函数法和频率采样法。正确理解和掌握这两种设计方法是学习FIR数字滤波器的一个重要环节。用窗函数法进行FIR滤波器设计的相关问题,目前的教材讲解较为细致,这里不再赘述。本文...
  • 引言在电子测量领域中,频率测量的精确度是最高的,可达10至101.001.jpg (946 Bytes, 下载次数: 30)2017-2-11 03:25 上传数量级。因此,在生产过程中许多物理量,例如温度、压力、流量、液位、PH值、振动、位移、...
  • 引 言数据采集系统的前向通道一般是由三部分组成的:传感器, 信号放大电路和模数转换器...根据采样理论, 信号的采样频率至少应为输入信号带宽的两倍,实际往往采用更高的采样频率来保证数据采集系统的精度。但当...
  • ADC转换就是输入模拟的信号量,单片机转换成数字量。读取数字量必须等转换完成后,完成一个通道的读取叫做采样周期。采样周期一般来说=转换时间+读取时间 。而转换时间=采样时间+12.5个时钟周期。采样时间是你...
  • 1 、著名的Nyquist采样定理尽管大家都知道,但还是提一提。大牛奥本海姆的《信号与系统》中是这样描述的:Let x(t) be a band-limited signal with X(jw) = 0 for |w|> wM. Then x(t) is uniquely determined by ...
  • 本文介绍了几种常用的频率测量的方法,并且全部用单片机来实现,方法简单实用
  • 写在前面的婆婆妈妈的话 本人大三,参加过数次电赛,来CSDN好久, 每次都是在绝望中从这里找到了希望,每次都仿佛一个即将被打翻...使用STM32F4系列单片机(本次使用的是STM32F429,此程序F4全系列使用,只需注意修改好
  • STC12单片机频率捕获程序

    热门讨论 2012-07-19 19:52:04
    STC12单片机频率捕获程序 使用单片机内部的PCA模块捕获功能捕获频率

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,874
精华内容 1,949
关键字:

单片机采样频率