Это функции, которые выполняют следующие действия: учитывая дискретную последовательность выборок, плавно интерполируют между ними. То есть: предположим, что ваши исходные данные равны x (0), x (1), x (2) и т. Д. Вы хотите (скажем) сделать их в 1,234 раза быстрее. Затем вам нужны сэмплы x (0), x (1 / 1.234), x (2 / 1.234), x (3 / 1.234) и т. Д. И вы хотите, чтобы они выглядели как сэмплы из хорошего гладкого сигнала, проходящего через сэмпл очки у вас есть.
Обе эти функции должны использоваться следующим образом. Вы хотите интерполировать между x (n) и x (n + 1). Чтобы получить значение, вы можете вызвать x (n + t), вызвать их с аргументами x (n-1), x (n), x (n + 1), x (n + 2) и t. Когда t = 0, вы получите x (n); когда t = 1, вы получите x (n + 1); Вы не должны (за исключением, возможно, в конце ваших данных) использовать аргументы, которые не находятся между 0 и 1.
Итак, чтобы ускорить или замедлить ваш сигнал, сэмплируйте время от времени [целое число] / [коэффициент скорости]; для каждого времени t возьмите n-1, n, n + 1, n + 2, так что n <= t <= n + 1, и вызовите интерполятор со значениями x (n-1), x (n), x (n + 1), x (n + 2) и тп. И посмотри, как это звучит: -). </p>