【问题标题】:Guessing values in real time based on previous values根据以前的值实时猜测值
【发布时间】:2012-05-29 20:02:10
【问题描述】:

以下适用于c# .net 4。我正在寻找一个c#代码。

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

(图2)时间轴

(图 3)这就是我想要的,大约 17 毫秒的恒定时间间隔 tc 的值。 x1 到 xn 是变量所包含的值,即:

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

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

如何同时平滑(图 1)的值以使它们成为 - 比如说 - 700 - 708 - 712 - 720,即消除抖动?

【问题讨论】:

  • 不太确定这是 StackOverflow C# 的问题
  • 你想插入你的信号吗?非均匀分布的样本是否需要得到均匀分布的样本?
  • 你应该已经回答了你的另一个问题,将信息保存在一起,而不是创建一个新的stackoverflow.com/questions/10700219/…
  • 这是一道算法题,而不是编程题。 StackExchange 上没有一个好的数学网络,所以还没有建议移动它。而 C# 与答案完全无关
  • 尝试阅读有关微分和平滑的内容,有一个示例说明如何使用它来近似结果。但这些论文往往以数学为基础。

标签: c# c#-4.0 smooth smooth-streaming


【解决方案1】:

根据您的问题,我认为有两种解决方案

  1. 通过引用传递变量,例如:x(ref t(ref (x1))
  2. 将您的变量声明为静态变量,例如:static x1

【讨论】:

  • 我们在这里讨论的是同一个问题吗?
【解决方案2】:

要试一试(下面是措辞不佳的操作序列):

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

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

    如果X2

  6. 设置 Xt = X2

  7. 转到 2

只是一个非常粗略的“平滑”概念,您忽略了值,只关心 x 的“运动”方向。

【讨论】:

  • 这可行。但只要值或多或少相似,我就需要绝对位置。
  • @RichardBremer 已更新以涵盖该情况
猜你喜欢
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 2017-10-07
  • 2020-07-24
  • 1970-01-01
  • 2014-07-30
相关资源
最近更新 更多