In SequenceInterpolator.interpolate and PhaseShiftedSequenceInterpolator.interpolate, times_lower and times_upper are computed without adding start_time
idx_lower is derived by idx_lower = np.floor((valid_times - self.start_time) / self.time_delta).astype(int )
but times_lower , is calculated as times_lower = idx_lower * self.time_delta
for start_time != 0 it'll be innacurate in the numerator
lower_signal_ratio = ((times_upper - times_valid) / denom)[:, None]
upper_signal_ratio = ((times_valid - times_lower) / denom)[:, None]
fix would be:
times_lower = self.start_time + idx_lower * self.time_delta
times_upper = self.start_time + idx_upper * self.time_delta
Happy to open a PR if this is something that's to be addressed!
In
SequenceInterpolator.interpolateandPhaseShiftedSequenceInterpolator.interpolate,times_lowerandtimes_upperare computed without addingstart_timeidx_lower is derived by
idx_lower = np.floor((valid_times - self.start_time) / self.time_delta).astype(int )but times_lower , is calculated as
times_lower = idx_lower * self.time_deltafor start_time != 0 it'll be innacurate in the numerator
fix would be:
Happy to open a PR if this is something that's to be addressed!