I just ran the example code, stepped into the tsa function, and saw the line 139: [![enter image description here][1]][1] By looking at the code in the red box, it seems that MATLAB assumes constant rpm in the same rotation and evenly divides the rotation time by number of points, is my guess right? Is it a valid assumption? Here is my code: close all clear all clc fs = 1000; t = 0:1/fs:5-1/fs; rpm0 = 2400; a = 0.1; f0 = rpm0/60; T = 0.75; phi = 2*pi*f0*T*(1-exp(-t/T)); x = a*cos(phi) + randn(size(phi))/200; y = a*sin(phi) + randn(size(phi))/200; plot(t,x,t,y) [rpm,~,tp] = tachorpm(x(t<2.5),fs); tachorpm(x(t<2.5),fs) clf tsa(x,fs,tp,'Method','linear') [1]: https://i.sstatic.net/NZl2t.png