A periodic signal without noise has the following property:
f(a) = f(a+k), where k is the wavelength.
The next bit of information that is needed is that your signal consists of separate samples. Each bit of information that you have collected is based on patterns that are values โโof the f () function. From 100 samples you can get the average value:
1/n * sum(s_i), where i is in range [0..n-1] and n = 100.
This must be done for each dimension of your data. If you use 3D data, it will be applied 3 times. The result will be (x, y, z) points. You can find the s_i value from the periodic signal equation by simply doing
s_i(a).x = f(a+k*i).x s_i(a).y = f(a+k*i).y s_i(a).z = f(a+k*i).z
If the wavelength is inaccurate, this will give you an additional source of error or you will need to adjust it according to the actual wavelength of each period. As
k*i = k+k+...+k
if the wavelength changes, you will need to use k_1+k_2+k_3+...+k_i instead of k * i. Unfortunately, there will be big problems with errors in the wavelength associated with keeping this circuit k_1..k_i in sync with the actual data. You really need to know how to determine the starting position of each period from your actual data. You may need to mark them manually.
Now all your calculated average values โโwill be like this:
m(a) :: R->(x,y,z)
Now this is a curve in 3d space. More complex error models will be left as excersize for the reader.
source share