以高精度恒定速率循环进行信号采样

以高精度恒定速率循环进行信号采样,第1张

以高精度恒定速率循环进行信号采样

您没有考虑代码的开销。每次迭代,此错误加起来并歪曲“时钟”。

我建议改为使用一个循环

time.sleep()
),并计算从下一个_参考_ 时刻开始的睡眠时间,这样就不会出现不可避免的错误:

period=0.001t=time.time()while True:    t+=period    <...>    time.sleep(max(0,t-time.time()))     #max is needed in Windows due to        #sleep's behaviour with negative argument

请注意,由于其他进程必须不时地抢占您的 *** 作系统,因此OS调度将不允许您达到超过特定水平的精度。在这种情况下,您需要为多媒体应用程序使用某些特定于OS的功能,或者制定一种不需要这种准确性级别的解决方案(例如,使用专用应用程序对信号进行采样并使用其保存的输出)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5653540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存