Thanks, yes its a multiplier affect.
Maybe you will like this catch more
In the interpolation project, I noticed that you have interpolated time also as well as signal ;
# downsample to 1/2 the original rate
ts_ds = signal.resample(ts,int(N/2))
timevec_ds = signal.resample(timevec,int(N/2))
plt.plot(timevec,ts,'r')
plt.plot(timevec_ds,ts_ds,'b.')
# plt.xlim([.5,.56])
plt.show()
Actually, according to this documentation, time is indeed resampled evenly for this new signal, you dont have to resample time again with resample function; " The resampled signal starts at the same value as x but is sampled with a spacing of len(x) / num * (spacing of x)
; hence you have to form again it using linspace with new number of points only.
hence new code should be
ts_ds = signal.resample(ts,int(N/2))
timevec_ds = np.linspace(timevec[0], timevec[-1], int(N/2), endpoint=True)
plt.plot(timevec,ts,'r'')
plt.plot(timevec_ds,ts_ds,'b.')
# plt.xlim([.5,.56])
plt.show()

And yes, the problem you mentioned in the video about even time resampling also gone…
ts_us = signal.resample(ts,int(N*3))
# timevec_us = signal.resample(timevec,int(N*3))
timevec_us = np.linspace(timevec[0], timevec[-1], int(N*3), endpoint=True)
