Поскольку вы не предоставляете какой-либо метод для получения значения импульса из предыдущего значения или любым другим способом, я предполагаю, что мы свободны придумать свой собственный.
В обоих случаях похоже, что вы начинаете с начального временного интервала: назовем его a. Тогда следующий интервал - это значение, умноженное на постоянное соотношение: назовем его r. В первом уменьшающемся случае ваше значение r находится в диапазоне от нуля до единицы (оно выглядит как около 0,6), тогда как во втором случае ваше значение r больше единицы (около 1,6). Таким образом, ваши временные интервалы в нотации Python
a, a*r, a*r**2, a*r**3, ...
Тогда время каждого сигнала является суммой геометрического ряда ,
a * (1 - r**n) / (1 - r)
где n - номер импульса (1 для первого, 2 для второго и т. Д.). Эта формула действительна, если r не один, но если r один, то последовательность является тривиальной последовательностью регулярного сигнала, и n-й сигнал дается в момент времени
a * n
Это не «фиксированный результат», поскольку у вас есть две степени свободы - вы можете выбрать значения a и r.
Если вы хотите распределить сигналы более равномерно, просто приблизьте r к единице. Значение одного совершенно ровно, значение дальше от одного более сгруппировано на одном конце. Одним из недостатков этого метода является то, что если интервалы между сигналами уменьшаются, то сигналы полностью прекратятся в какой-то момент, а именно в
a / (1 - r)
Если у вас есть сигналы, уже отправленные или полученные, и вы хотите найти значение r, просто найдите интервал времени между тремя последовательными сигналами, а r - это значение интервала времени между 2-м и 3-м сигналом, деленное на время интервью между 1-м и 2-м сигналом. Если вы хотите проверить, подходит ли эта модель для данного набора сигналов, проверьте значение r для нескольких сигналов - если значение r почти постоянное, то это хорошая модель.