2012-05-23 69 views
2

smoothing values猜测值基于以前的值

以下适用于C#.NET 4.我要寻找一个C#代码。

(图1)我有不同的值,例如700,712,703和720. dt1例如是30ms,dt2可能是9ms。重要的是dt1到dtn不是恒定的。

(图2)轴

的时间(图3)这是我想要的,用于以恒定的时间间隔TC大致17MS的值。 x1到xn是变量组成的值,即:

x(t(x1)) = x1 
x(t(x2)) = x2 
... 
x(t(xn)) = xn 

如何实时确定x1到xn?假设当前时间是dt1 + dt2 +在dt3内的某处。我不知道什么时候dt3会完成(即使之前的dt在9ms到30ms之间)以及将会有什么值。我怎么能猜到一个x4值,考虑到以前的变化?

我该如何平滑(图1)的值同时为他们 - 比如700 - 708 - 712 - 720,即消除抖动?

+1

真的不知道这是StackOverflow的C#问题 –

+0

阐述为什么你认为这样 – Zurechtweiser

+0

你想你的插值信号?从非均匀分布的样本你需要获得均匀分布的样本? –

回答

0

要带这个(以下操作的措辞不当序列)镜头:

  1. 读取当前的X(姑且称之为XT)
  2. 执行你需要XT任何操作
  3. 店Xt
  4. 读取新的X(我们称之为X2)
  5. 如果abs(X1-X2)小于某个容差,则丢弃X2并使其= X1

    如果X2> X1,丢弃X2的值,并使其= X1 + K

    如果X2 < X1,丢弃X2的值并使其= X1-K

  6. 集XT = X2

  7. 转到2

只是一个非常粗略的想法“平滑”,您忽略的价值,只关心“MoveMe的取向nt“你的x。

+0

这可以工作。但只要这些值或多或少相似,我就需要绝对的位置。 – Zurechtweiser

+0

@RichartBremer更新到覆盖该条件以及 – Alex

0

我认为有两种解决办法我了解你的问题

  1. 传递变量引用如:X(REF T(REF(X1))
  2. 声明变量为静态变量如:静态X1
+0

我们在这里谈论同样的问题? – Zurechtweiser