Нужен быстрый алгоритм интерполяции-децимации

Kabbalah 14.06.2004 - 17:39 | Русским языком это звучит так. Есть некоторая функция отцифрованная с частотой дискретизации например 8кГц Нужное ее пересчитать на другую произвольную частоту ( например 7431Гц или 19234Гц ). Грубо говоря при увеличении частоты дискретизации, нужно найти значения функции в промежуточных точках. А при уменьшении не налететь на передескретизации. Сейчас пока делаю так: cначала повышаю частоту раз 5, а потом линейно апроксимирую. Работает быстро, но в спектре появляются паразитные частоты с достаточно сильной энергией, что огорчает. Может есть у кого в копилке подобрые алгоритмы, поделитесь? Слышал про алгоритм Лагранжа. Может это он мне и нужен?
CP 1 - 15.06.2004 - 14:26 | При интерполяции недостающие отсчеты дополняются нулями, а затем сигнал пропускается через фильтр-интерполятор. При децимации наоборот сначала сигнал проходит через фильтр дециматор, а затем из него выбрасываются лишние отсчеты. В любом случае требования к фильтрам достаточно высокие и соответственно сложная реализация. Примеры есть в книгах по ЦОС. Например Гольденберг и др "Цифровая обработка сигнала" и тд
RTFM 2 - 24.06.2004 - 23:07 | Ну, из интерполяции я знаю только кубические сплайны :) А вообще, тут есть несколько алгоритмов интерполяции. Посмотри. может подойдет что http://alglib.manual.ru/interpolation/
Kabbalah 3 - 25.06.2004 - 02:49 | Вот выручил! Спасибо! Это то, что надо!!!!

>>