首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >粗略-精细算法

粗略-精细算法
EN

Stack Overflow用户
提问于 2011-06-29 22:58:15
回答 2查看 169关注 0票数 2

是否有众所周知的算法来将具有高绝对精度的粗分辨率测量与具有低绝对精度的精细分辨率测量相结合?

例如,实时时钟读数+高速计数器。

EN

回答 2

Stack Overflow用户

发布于 2011-06-30 01:33:59

我认为这对于您的测量用法是非常具体的。

我能想到的一件事是在两个测量上应用Kalman Filter,具有高绝对精度的粗分辨率测量充当预测步骤,而具有低绝对精度的精细分辨率测量可以充当更新步骤。

卡尔曼滤波器以Noise Covariance matrices的形式自动将您的置信度合并到每个测量中。

实际上,使用两个观察更新步骤而不是预测步骤可能更有意义,正如维基百科文章的这一部分所建议的那样:

通常情况下,两个阶段交替进行,预测推进状态直到下一个预定的观察,而更新结合了观察。但是,这并不是必需的;如果由于某种原因,观察结果不可用,则可以跳过更新,并执行多个预测步骤。类似地,如果多个独立观测同时可用,则可以执行多个更新步骤(通常具有不同的观测矩阵Hk)。

卡尔曼滤波器将是最有用的,如果您试图保持一段时间内的几个读数过期的估计时间。如果这只是一次性的事情,你可以用一种更简单的方式将它们结合起来。

票数 0
EN

Stack Overflow用户

发布于 2011-06-30 02:06:44

我不知道通用算法,但在特定领域中有如何做到这一点的理论。例如,在几何处理中,有整个持久同源性的子字段,它声称要检查结构如何随时间变化:http://www.ams.org/notices/201101/rtx110100036p.pdf

在图像处理中,存在以不同精度处理图像的尺度空间:http://en.wikipedia.org/wiki/Scale_space

对于你的具体问题,我会说答案要简单得多,只需要一点代数。假设你有一对分辨率为s_1,s_2的计数器。然后我们观察到时间分别为n_1,n_2,或者换句话说,以s_1,s_2通用的单位表示的时间t必须满足:

代码语言:javascript
运行
复制
 t = n_1 s_1 + r_1
 t = n_2 s_2 + r_2

这是一个由两个方程和三个未知数组成的集合,因此它是欠定的。因此,t可以是范围内的任何地方:

代码语言:javascript
运行
复制
 0 <= r_1 < s_1
 0 <= r_2 < s_2
 n_2 s_2 - n_1 s_1 = r_1 - r_2

对r_2进行替换和求解,我们得到:

代码语言:javascript
运行
复制
max(0, n_1 s_1 - n_2 s_2) <= r_2 < min(n_1 s_1 - n_2 s_2 + s_1, s_2)

它又给出了t的区间界限:

代码语言:javascript
运行
复制
max(n_1 s_1, n_2 s_2) <= t < min(n_1 s_1  + s_1, n_2 s_2 + s_2)

这是最紧凑的了。(诚然,这并不能告诉您很多信息,但它比简单地将计数器中的较好者作为您的选择稍微准确一些)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6522755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档