粗精细算法

时间:2011-06-29 14:58:15

标签: algorithm resolution

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

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

2 个答案:

答案 0 :(得分:0)

我认为这对您使用测量非常具体。

我能想到的一件事就是在两次测量中应用Kalman Filter,粗分辨率和高绝对精度测量将起到预测步骤的作用,以及精细分辨率 - - 低绝对精度测量可以扮演更新步骤的角色。

卡尔曼滤波器以Noise Covariance matrices的形式自动将您对每次测量的信心纳入其中。

实际上,使用两个观察更新步骤而没有预测步骤可能更有意义,因为维基百科文章的这一部分建议:

  

通常,两个阶段交替,预测推进状态直到下一个预定的观察,以及包含观察的更新。但是,这不是必要的;如果由于某种原因观察不可用,则可以跳过更新并执行多个预测步骤。同样,如果同时有多个独立观测可用,则可以执行多个更新步骤(通常使用不同的观测矩阵Hk)。

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

答案 1 :(得分:0)

我不了解通用算法,但有关于如何在特定域中执行此操作的理论。例如,在几何处理中,存在持久同源性的整个子域,其旨在检查结构如何随时间变化: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必须满足:

 t = n_1 s_1 + r_1
 t = n_2 s_2 + r_2

这是一组两个方程和3个未知数,因此它是不确定的。因此,t可以是范围内的任何位置:

 0 <= r_1 < s_1
 0 <= r_2 < s_2
 n_2 s_2 - n_1 s_1 = r_1 - r_2

替换并解决r_2,我们得到:

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:

的区间界限
max(n_1 s_1, n_2 s_2) <= t < min(n_1 s_1  + s_1, n_2 s_2 + s_2)

这就像它一样紧张。 (诚​​然,这并没有告诉你很多,但它比仅仅选择更精细的计数器更准确一些。)