Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Интерполяция кубическими сплайнами
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
mihalevski
Смоделировал работу алгоритма обработки сигнала в среде Маткад. Использовал встроенную
в Маткад функцию Интерполяция кубическими сплайнами, но теперь необходимо раскрыть
алгоритм самой интерполяции.
Вопрос первый: где можно взять готовый алгоритм интерполяции чтобы реализовать его
программным методом (найденный в сети алгоритм не работает, а разбираться в теории нет времени).
При моделировании заметил, что при приближении частоты дискретизеруемого сигнала к
частоте Найквиста интерполяция начинает вносить заметные искажениия в исходный сигнал
даже при использовании значительного количества точек а это, в свою очередь, приводит к ошибке в
значении производной, которую вычисляю на следующей стадии. Отсюда второй вопрос: если вместо
интерполяции кубическими сплайнами использовать интерполирующий фильтр может результат взятия
производнной будет точнее?
polyakovav
http://matlab.exponenta.ru/spline/book1/10.php
_pv
1) alglib.net
2) http://demonstrations.wolfram.com/SincInte...Reconstruction/
TSerg
Пока нет физ-мат. постановки задачи - любые ответы будут правильными.
mihalevski
Цитата(polyakovav @ May 12 2013, 00:52) *


Спасибо за приведенные источники. Но хотелось бы иметь алголритм сплайновой интерполяции, который я бы мог передать программисту пишущему на ассемблероподобном языке для ДСП АналогоДевайс. Сама же интерполяция как составная часть
общего алгоритма работает удовлетворительно. Но она использована как готовая функция встроенная в Маткад но теперь ее
необходимо раскрыть как весь алгоритм.
Xenia
Сплайны тем эффективнее для применения, чем более гладкая кривая ожидается. Именно поэтому их часто используют для сглаживания шумов.

В случае же частоты Найквиста мы имеем всего лишь две точки на период - первую точку для представления первой половины периода и вторую точку для представления второй его половины. Оттого-то частота Найквиста в череде частот последняя, что дальше сокращать число точек некуда - одной точкой весь период не представишь, т.к. это уже среднее значение получится, а для его представления есть 0-ая частота.

Именно поэтому сглаживать сплайнами, а тем паче кубическими, вблизи частоты Найквиста нельзя. И прежде всего потому, что гладкой в этих случаях кривая не бывает.
polyakovav
Цитата
Спасибо за приведенные источники. Но хотелось бы иметь алголритм сплайновой интерполяции, который я бы мог передать программисту пишущему на ассемблероподобном языке для ДСП АналогоДевайс.

TSerg правильно сказал: нужен точный ответ - сформулируйте конкретный вопрос (очень желательно с ограничениями по параметрам). Интерполяцию вообще можно обсуждать бесконечно.
_pv
кубические сплайны возможно не самый подходящий метод интерполяции, так как требует полного прохода по всем данным, даже дважды, что не всегда удобно.
возможно вот это будет лучше:
http://www.dsplib.ru/content/farrow/farrow.html
особенно для реализации на ассемблероподобном языке для ДСП АналогоДевайс

зы странный какой-то программист, если занимаясь обработкой сигналов он не знает, что такое кубический сплайн.
mihalevski
Цитата(_pv @ May 13 2013, 00:25) *
кубические сплайны возможно не самый подходящий метод интерполяции, так как требует полного прохода по всем данным, даже дважды, что не всегда удобно.
возможно вот это будет лучше:
http://www.dsplib.ru/content/farrow/farrow.html
особенно для реализации на ассемблероподобном языке для ДСП АналогоДевайс

зы странный какой-то программист, если занимаясь обработкой сигналов он не знает, что такое кубический сплайн.


Спасибо за ссылки. Я не программист. Программисты пишут с огромной скоростью если знают что писать. Моя задача предоставить алгоритм и объяснить суть на пальцах. Но сначала я моделирую решение задачи в матлабе (маткаде) и только при удовлетворительных результатах передаю алгоритм. При обработке сигналов не использовали кубический сплан а применяли интерполирующие фильтры.
Автором статьи где был приведен готовый к кодированию алгоритм были допущены ошибки в самом алгоритме. В этой же статье была приведена теория интерполяции и не соответствыющий ей алгоритм. Пришлось потратить время и подправить алгоритм, но результат его работы во 2м 3м знаке отличается от встроенной в маткад функции.
_Ivana
Пара имхей:
- локальные методы интерполяции (а их вариантов неограниченное количество - выбирай на вкус) не требуют прохода по всем данным.
- если вам интерполяция нужна только для последующего вычисления производной - интерполируйте сразу саму производную, через производные базисных полиномов Лагранжа.
- вблизи частоты Найквиста любые методы будут испытывать трудности, если не задействовать бОльшее количество точек для расчета. Хотя гладкость будет наличествовать, но ошибки интерполяции будет велики.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.