对由显着变化的时间步长分隔的数据点进行噪声过滤

问题描述 投票:0回答:1

在轨道确定的背景下,我从三个光学望远镜收集角度测量结果,产生的数据显示出测量之间不同的时间间隔。例如:

  • 望远镜 1 提供大约 10 次测量,间隔 2 秒。
  • 望远镜 2 等待 20 分钟,然后执行与望远镜 1 类似的测量
  • 望远镜 3 也一样

这会导致数据点被明显不同的时间间隔分开,例如:

0秒,2秒,4秒,6秒,...,20秒,20分钟20秒,20分钟22秒,20分钟24秒,...20分钟40秒,40分钟40秒,...等等

我想过滤它;恢复隐藏状态,例如卡尔曼滤波器对规则间隔数据所做的操作。然而,处理这些不同的时间步长是一个挑战。我不确定如何在这种情况下继续进行过滤。

鉴于我对预测中的标准误差进行了估计,我考虑了以下方法:

  1. 首先,使用原始数据预测轨道,而不应用任何过滤。
  2. 创建人工噪声轨道以在测量之间插入数据点。
  3. 对数据应用标准卡尔曼滤波器,其中现在包括插值。
  4. 尝试根据这些过滤后的数据完善我的轨道

如果有人对处理此类数据有见解或建议,我将非常感谢您的意见。谢谢你。

filter signals kalman-filter orbit
1个回答
0
投票

根据您所说的,批量过滤器可能是您最好的选择。对于大多数批处理算法,您需要对轨道进行初始猜测。所以我同意你的步骤(1);使用高斯方法通过噪声测量进行仅角度轨道确定将为您提供一个不错的初始估计。

之后,批量估计算法可以视为非线性最小二乘问题。通常设置批量估计器来细化初始状态 x_0 的估计,这通常只是初始位置和速度状态。最小化的成本函数将是

J = sum_{i=1}^N (y_i - h_i(x_0))^2

在上面我假设您有 N 个测量值。真实测量值是 y_i,时间 t_i 处的预测测量值作为初始状态的函数是 h_i(x_0)。要评估此 h() 函数,您需要将初始状态 x_0 传播到时间 t_i 并找出测量结果。

当您像您一样测量之间存在很大差距时,您需要对卡尔曼滤波器中的过程噪声执行一些棘手的操作,但对于批处理滤波器来说,这并没有太大区别。您的 h() 函数将仅基于在特定时间使用哪个地面站。

有几种方法可以解决这个问题。我最熟悉的方法是使用高斯-牛顿算法。它工作得很好,但为此,您将需要测量函数相对于初始状态的导数,这需要积分状态转换矩阵(我可以详细说明这是否有帮助,但它需要一些数学知识)。您可能会幸运地使用无导数方法(例如 scipy.optimize.minimize 中的无导数方法之一),但我从未尝试过用它来解决轨道确定问题。

批量过滤器的一个重要假设是,所考虑的时间段内噪声的影响可以忽略不计。如果您的模拟在模拟过程中添加了大量过程噪声,那么您可能需要使用卡尔曼滤波器。

我将这篇文章保持在相当高的水平,因为我不确定您的技术背景,但如果您有任何疑问,我可以详细说明更多细节。 Tapley、Schutz 和 Born 所著的《统计轨道确定》一书是一个很好的参考。

© www.soinside.com 2019 - 2024. All rights reserved.