Цитата(GetSmart @ Nov 25 2008, 00:46)

Применение для сдвига прямого и обратного FFT вероятно будет самым медленным из возможных алгоритмов. Хотя при желании можно придумать ещё более медленный

ИМХО из самых скорострельных и достаточно точных алгоритмов для сдвига сигнала на любую дельту между отсчётами будет (почти как и предлагал
fontp) пересчёт новых отсчётов сигнала по sinx/x. Для хорошей точности нового отсчёта достаточно посчитать свёртку в окресности 10..100 отсчётов. Желательно на нечётное кол-во, симметричное слева и справа. Итого будет N*K (K=10..100, а N=кол-во отсчётов) умножений и сложений. SinX/X для оптимизации быстродействия можно посчитать один раз для нужного сдвига и занести в таблицу.
Вот! Вы наверно открыли самый медленный! Считать длинную свертку с табличным синком
Сдвиг через FFT - это в некотором смысле то же самое. Действительно: спектр умножается на чисто линейный фазовый вращатель, после обратного FFT имеем свёртку исходного сигнала с Фурье-преобразованием линейной фазовой экспоненты, т.е. СИНКОМ. В зависимости от длины блока мы имеем разные приближения к идеальной прямоугольной НЧ-фильтрации
Так и те общепринятые методы, что я предложил в начале имеют в основе, с разной степенью точности примерно то же самое:
-полиморфная фильтрация использует прямоугольный фильтр для интерполяции
-интерполяция В-сплайном может аппроксимировать тот же синк кусочным полиномом с конечным носителем
Полиморфная фильтрациия есть очень качественный, эффективный вычислительно и гибкий алгоритм для произвольного фиксированого (чтоб не менялся на лету) ресамплинга. Сдвиг есть частный тривиальный случай ресамплинга
У MDS были неплохие программы для каскодных алгоритмов ресамплинга (доступны, но больше не поддерживаются)
Для ресамплинга - это программа convern. Её можно найти в Сети, хоть и у меня ;-)
Те кто программирует процессоры AD Blackfin могут наслаждаться ассемблерной реализацией для каскодной схемы ресамплинга (многократный ресамплинг прорежение/интерполяция), рассчитываемой
этой программой MDS convern. Это Application Note AN- EE183.
Чтобы получить уровень искажений 100дб или выше фильры НЧ расчитываются с двойной точностью (32 разряда) и так же реализована фильтрация в программах для BF. Эта хренотень "измерительного" качества
теория мультирейта от MDS
http://www.mds.com/support/applicationnotes.aspпрактика мультирейта от AD AN-813
http://www.analog.com/en/embedded-processi...rces/index.html