最近博主在修改与完善师兄编写的单点定位程序,其中涉及到卫星位置的插值,故进行了初步学习:
进行卫星位置插值的原因:
无论是广播星历还是精密星历,播报卫星位置的时间间隔都较长。在结算每个历元接收机位置时,与该历元对应的卫星位置的选取就会有较大偏差,比如:观测值历元是2021 5 11 0 0 0.00000000,因此我们需要改历元时刻的卫星位置进行接收机位置的结算,但是由于星历文件只提供了2021 5 11 2 0 0.00000000(一般广播星历)或者是2021 5 11 0 15 0.00000000(播发间隔为15min的精密星历)历元时刻的卫星位置,在这2小时或者15分钟时间里,卫星位置会发生很大变化,因此接收机位置的结算一定是误差较大。
进行卫星位置插值的几种方法:
1、利用拉格朗日插值法进行插值
2、利用牛顿插值法进行插值
3、利用Hermite插值多项式进行插值
除了上述三种常用的插值方法,其他的比如切比雪夫拟合法、勒让德拟合法都可以进行卫星位置的插值。
博主进行了初步的实验,利用拉格朗日插值法进行一个历元的卫星位置的插值计算,效果较好,如图:
该部分代码实现,博主会在后续放在C#专栏中,敬请期待!发布之后会在上述三种方法上附上超链接!