Цитата(fontp @ Nov 20 2008, 16:33)

Оно может и правильно, только сдвиг наверно получется циклическим ))
И что из того?
Читайте условие внимательнее. Речь идёт о
небольших сдвигах.
По моему скромному недомыслию, в пределах +/- 0,5 временнОй дискреты.

Больше не имеет смысла.
Впрочем, произвольная величина сдвига принципиального значения также не имеет.
Цитата(fontp @ Nov 20 2008, 16:33)

1. Если нужно сдвигать на фиксированую дельту лучшие результаты получаются если применить полиморфную фильтрацию. Вставляют нули между реальными отсчетами и фильтруют хорошим НЧ фильтром - получается интерполяция на более мелкую сетку. Потом обратно прорежают под другой фазой (или даже частотой)
Если точность большая не нужна, это в некоторых случаях может оказаться и быстрее FFT, но если нужна - увы...
Цитата(fontp @ Nov 20 2008, 16:33)

...2. Если нужно двигать на произвольную дельту используют сплайн интерполяцию чаще кубическую.
В-сплайны
Не понимаю всё же кардинальных преимуществ.
Экстраполяцию или
интерполяцию краевых участков после FFT-IFFT можно сделать аналогичным образом. Но это займёт гораздо меньше времени, чем полная сплайн-интерполяция, равно как и полиморфная фильтрация всего куска, если нужна мало-мальски приличная точность.
Могу продемонстрировать, как примерно надо делать подобные вещи.
Цитата(GetSmart @ Nov 25 2008, 00:46)

Применение для сдвига прямого и обратного FFT вероятно будет самым медленным из возможных алгоритмов.
Ох, Горе-Горькое...
Сдвиг через БПФ-ОБПФ - это самый
быстрый и точный вариант алгоритма сдвига на произвольное время из всех возможных, скажем, для комплексных и полосовых сигналов.
В том числе, и способов, предложенных ув.
fontp. Когда ж Вы за ум возьмётесь, наконец, и перестанете писать о вещах, далёких от Вашего понимания?..
Цитата(GetSmart @ Nov 25 2008, 00:46)

...ИМХО из самых скорострельных и достаточно точных алгоритмов для сдвига сигнала на любую дельту между отсчётами будет (почти как и предлагал fontp) пересчёт новых отсчётов сигнала по sinx/x. Для хорошей точности нового отсчёта достаточно посчитать свёртку в окресности 10..100 отсчётов. Желательно на нечётное кол-во, симметричное слева и справа. Итого будет N*K (K=10..100, а N=кол-во отсчётов) умножений и сложений. SinX/X для оптимизации быстродействия можно посчитать один раз для нужного сдвига и занести в таблицу.
Америка открыта.
Самонадеянность слепа. Сомнения - спутник разума. (с)