polynomial interpolation of satelite positions
Show older comments
0 184360.634246042 -211658.511711780 -6853898.76885147
5 219214.256803219 -226785.422707026 -6852351.69754470
10 254061.148627043 -241905.367897281 -6850593.66616310
15 288900.239807604 -257017.882918880 -6848624.72472167
20 323730.460592783 -272122.503660514 -6846444.92962074
25 358550.741525596 -287218.766139992 -6844054.34362999
30 393360.013332653 -302306.206701186 -6841453.03589562
35 428157.207073006 -317384.361885925 -6838641.08193523
40 462941.254118769 -332452.768510410 -6835618.56363502
45 497711.086198094 -347510.963664615 -6832385.56924254
50 532465.635437569 -362558.484708884 -6828942.19336887
55 567203.834312849 -377594.869407128 -6825288.53697975
60 601924.615866041 -392619.655658098 -6821424.70739058
In a general form, the polynomials of degree n can be represented as follows: y = a0t 0 + a1t 1 + a2t 2 + ... + ant n (1)
where y contains the measurements (orbit components x, y or z here) and t is the time vector corresponding to each measurement.
Here the polynomial modeling of the given data y, is the estimation of the unknown coefficients a0, a1,..., an. Assuming that
values: y = [y1, y2, y3, ..., ym]m×1 (2)
are given at time points: t = [t1, t2, t3, ..., tm]m×1. (3)
Then n + 1 coefficients x = [a0, a1, ..., an]1×(n+1) of the polynomials degree n can be simply estimated using least-squares
adjustment: x = (ATA) −1AT y, (4)
i have this data of satelite positions(x,y,z) for 1 minute with 5 sec sampling. 1st colmn is time with 5 sec spacing.
how could i interpolate the positions to 1 second spacing using polynomial. is there a built in fnctn ?
1 Comment
John D'Errico
on 13 Dec 2021
@Jeson Lonappan: Please dn't post answers for a folloup question. Moved to a comment:
"could i use polyfit for x y z seperately?"
Answers (1)
Use interp1 for the three columns separately:
t = 0:60;
x = interp1(T,X,t);
y = interp1(T,Y,t);
z = interp1(T,Z,t);
where T,X,Y,Z are your data columns from above.
If you want to use your own interpolation scheme, you can break down the problem to 1d by the trick from above.
5 Comments
N/A
on 13 Dec 2021
N/A
on 13 Dec 2021
interp1 uses at least piecewise polynomials for interpolation. Piecewise usually is necessary because to interpolate all points with one polynomial requires a polynomial of very high degree which produces bad oscillations between the data points.
polyfit gives one single polynomial over the whole range, but usually does not pass through the data points given. It is just an optimal approximation to them in the least-squares sense. This is called polynomial approximation (polynomial fitting), not polynomial interpolation. So if you are willing to accept that the polynomial does not pass through the position points given, you can use polyfit in the three dimensions separately.
N/A
on 14 Dec 2021
Torsten
on 14 Dec 2021
interp1 does not use one polynomial over the complete range [0:60], but a polynomial p1 on [0:5], another polynomial p2 on [5:10] and so on. The term for this is that the interpolation function is piecewise polynomial. Depending on the interpolation method used in interp1, these polynomials share some properties in t=5, namely p1(5)=p2(5) for linear interpolation, p1(5)=p2(5),p1'(5)=p2'(5) and p1''(5)=p2''(5) for cubic spline interpolation and similar for the other methods.
Categories
Find more on Polynomials in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!