реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Интерполяция функции., нужны ответы на вопросы
TigerSHARC
сообщение Mar 21 2010, 21:47
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



очень нужны ответы на мои вопросы по интерполяции:

Изначально имеем выборку в 2048 точек. Нужно построить интерполяционный полином для разных степеней. В частности интересует Лагранж 1-й, 2...6-й степеней.

Читая в книгай по численным методам, понял что для построения по 2048 точкам нужен полином 2047 степени - это так называемая глобальная интерполяция.

Далее, в разделе про локальную интерполяцию упоминается только линейная, квадратичная, и сплайн-интерполяция. Это интерполяции по двум точкам из множества, которые потом как бы склеиваются. Но про Лагранжа в локальной интерполяции нислова.

Теперь читаю здесь http://www.dspsystem.narod.ru/content/farrow/farrow.html - автор описывает интерполяцию полиномом Лагранжа 3-й степени. Причём это работает для любого количесвта точек!

Так вот я могу предположить, что автор берёт по четыре точки из множества (сколько точек бы не было - у меня 2048) и по ним строит полином 3-й степени. Причём четвёртая точка в первой группе, я вляется первой для следующей группы.... (по моему по такому принципу строится линейная ломаная по множеству точек, только там берут по две из всего множества)

Так вот очень нужны коментарии форумчан.
просто после прочтения книг и чтения в интернет некоторая нестыковка в голове(((((
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 22 2010, 00:45
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



На рисунке 6 изображён кубический интерполятор фарроу. Оптимальный диапазон x -1..0, при котором наиболее точно вычисляются значения между отсчётами y(z^-2) и y(z^-1). При x=0 получаем у(z^-2), при x=-1 получаем у(z^-1), при x=x получаем y(z^-(2+x)). Чем больше передискретизация сигнала тем точнее работает интерполятор. При фиксированном x интерполятор - это КИХ фильтр, можно построить АЧХ, ФЧХ и оценить искажения, наибольшие искажения получаются при x=-0.5, т. е. при вычислении значения посередине между y(z^-2) и y(z^-1). Таким образом вы сможете вычислить любые промежуточные значения между любыми двумя соседними отсчётами из вашего массива взяв ещё по отсчёту слева и справа от них.
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 22 2010, 07:44
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(TigerSHARC @ Mar 22 2010, 00:47) *
Изначально имеем выборку в 2048 точек. Нужно построить интерполяционный полином для разных степеней. В частности интересует Лагранж 1-й, 2...6-й степеней.

Читая в книгай по численным методам, понял что для построения по 2048 точкам нужен полином 2047 степени - это так называемая глобальная интерполяция.

Читаю определения полинома Лагранжа в Википедии:
"Интерполяцио́нный многочле́н Лагра́нжа — многочлен минимальной степени, принимающий данные значения в данном наборе точек."
Ясно, что в общем случае для выборки из 2048 точек полином Лагранжа будет иметь степень 2047. Следовательно, в общем случае для такой выборки полином Лагранжа 6-й степени не существует.
То есть на самом деле Лагранж вас не интересует, если я правильно понял. Вас интересует полином 6-й степени, наилучшим образом приближающий выборку из 2048 точек. Кстати, в MS Excel есть такая функция: построить линию тренда, полином энной степени. Если нужно проделать 1 раз, то через Excel - самый простой способ.
А вообще, если я правильно понимаю, для этого обычно применяют метод наименьших квадратов. То есть пишут 6 (по числу коэффициентов полинома) уравнений, каждое из которых гласит "производная суммы квадратов отклонений (Y(Xi)-Yi)^2 выборок от полинома по коэффициенту полинома равна нулю". Должна получиться простая система линейных уравнений, из которой получаются коэффициенты полинома.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 22 2010, 08:13
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(TigerSHARC @ Mar 22 2010, 00:47) *
очень нужны ответы на мои вопросы по интерполяции:

Так вот очень нужны коментарии форумчан.
просто после прочтения книг и чтения в интернет некоторая нестыковка в голове(((((

Вы бы лучше написали, что вы хотите получить.
Может, Вас интересует другое слово - аппроксимация?
Интерполяция - это создание Вами НОВОЙ функции, определенной на множестве действительных чисел, на базе функции, заданной на конечном или счетном множестве.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 22 2010, 08:46
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Tanya @ Mar 22 2010, 11:13) *
Вы бы лучше написали, что вы хотите получить.
Может, Вас интересует другое слово - аппроксимация?
Интерполяция - это создание Вами НОВОЙ функции, определенной на множестве действительных чисел, на базе функции, заданной на конечном или счетном множестве.


Автор много раз уже тему в DSPшной ветке поднимал, передискретизация ему нужна чтобы целое количество отсчётов в периоде сигнала убиралось. Кубический интерполятор фарроу это то что ему нужно плюс полифазный фильтр если передискретизация недостаточная для требуемой точности.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 22 2010, 11:29
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



Да. Спасибо.

Нужен именно фарроу, точность устраивает.

Просто хочу разобраться, как получается что полином 3-степени (Лагранж фильтром Фарроу) аппроксимирует (интерполирует) выборку из любого количесвта отсчётов??? в моём случае 2048.

В книгах везде написано, что если точек N, то полином N-1 степени.

В то же время http://www.dspsystem.narod.ru/content/farrow/farrow.html - автор строит интерполяцию полиномом лагранжа третьей степени для любого N. (и всё работает главное!)

Так вот конечная цель осуществить такую передискретизацию по Лагранжу 1-й ,2-й, 4-й, 6-й степени дабы сравнить результаты.


и
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 22 2010, 11:39
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(TigerSHARC @ Mar 22 2010, 14:29) *
Просто хочу разобраться, как получается что полином 3-степени (Лагранж фильтром Фарроу) аппроксимирует (интерполирует) выборку из любого количесвта отсчётов??? в моём случае 2048.

В книгах везде написано, что если точек N, то полином N-1 степени.

Что Вам книги. Сами сообразите, что такое интерполяция. Это проведение непрерывной кривой (в Вашем случае - полиномиальной), которая проходит (точно) через выбранные точки дискретной функции. Сколько неизвестных коэффициентов нужно найти, и сколько для этого нужно точек.
И стоит ли брать точки далеко отстоящие от...
Вычислительная реализация - уже вторичный вопрос.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 22 2010, 11:58
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



так вот как это сделать? хотя бы в матлаб. Просто если использую interp1 - так там есть только линейная, кубичаская, и сплайн интерполяция.
Просто надо сравнить погрешности при передискретизации полиномом Лагранжа 1-й, 2-й степени, 3-й степени, 4-й степени, 5-й степени и 6-й...
_______________________________________________

так вот, возможно нужно делать так если интересует лагранж 1-й степени: берём по две точки из выборки в N точек. И между каждыми двумя точками находим полином первой степени. Причём последняя точка из двух становиться первой для второй пары точек и так далее...
если рассматривается вторая степень, то берём уже по три точки из выборки и строим полином между каждыми тремя точками полином второй степени, причем каждая последняя из трёх становиться первой бля следующей тройки... и так далее....

справедливо?

Сообщение отредактировал TigerSHARC - Mar 22 2010, 12:00
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Mar 22 2010, 12:03
Сообщение #9


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Tanya @ Mar 22 2010, 13:39) *
Что Вам книги. Сами сообразите, что такое интерполяция. Это проведение непрерывной кривой (в Вашем случае - полиномиальной), которая проходит (точно) через выбранные точки дискретной функции.

biggrin.gif вообще-то об обратном процессе, даже не обратном, а другом его способе применения, но картинка забавная...
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 22 2010, 12:17
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(TigerSHARC @ Mar 22 2010, 14:29) *
Просто хочу разобраться, как получается что полином 3-степени (Лагранж фильтром Фарроу) аппроксимирует (интерполирует) выборку из любого количесвта отсчётов??? в моём случае 2048.

В книгах везде написано, что если точек N, то полином N-1 степени.


Например вы когда результат ДПФ смотрите, всякие растекания спектра, не учитываете влияние далеко расположенных друг от друга спектральных составляющих, т к анализирующий фильтр прототип ДПФ - это синк, имеет спадающую АЧХ пропорционально 1/f, точно так же и во времени ограниченный по частоте сигнал можно представить суммой синков, и пренебрегать влиянием далеко расположенных друг от друга синков.


Цитата(TigerSHARC @ Mar 22 2010, 14:58) *
если рассматривается вторая степень, то берём уже по три точки из выборки и строим полином между каждыми тремя точками полином второй степени, причем каждая последняя из трёх становиться первой бля следующей тройки... и так далее....

справедливо?


Нет, посмотрите на структуру форроу, исходные отсчёты продвигаются по линии задержки, следующая тройка будет включать 2 предыдущих отсчёта + 1 новый.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 22 2010, 12:24
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(DRUID3 @ Mar 22 2010, 15:03) *
biggrin.gif вообще-то об обратном процессе, даже не обратном, а другом его способе применения, но картинка забавная...

Слабая картинка. По трем точкам интерполяция интереснее и заманчивее будет. Вчера - 1, сегодня - 0, завтра 1.

Цитата(petrov @ Mar 22 2010, 15:17) *
Нет, посмотрите на структуру форроу, исходные отсчёты продвигаются по линии задержки, следующая тройка будет включать 2 предыдущих отсчёта + 1 новый.

Это немножко несправедливо. Для 3. Вот для четырех будет симметрично- две слева, две - справа. Только на краях всегда плохо.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 22 2010, 12:33
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



.... ну как сделать ????
разве не справедливо если p - порядок интерполяции, тогда берём по p+1 точек из N выборок и проводим между ними полином... соответственно полиномы склеиваются в узлах интерполяции покраям интервалов из p+1 точек...

если не так то опишите подобным образом схему как надо
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 22 2010, 12:34
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(TigerSHARC @ Mar 22 2010, 15:33) *
.... ну как сделать ????

если не так то опишите подобным образом схему как надо

Полином ползет по точкам... потребляя по одной.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 22 2010, 12:42
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(TigerSHARC @ Mar 22 2010, 15:33) *
.... ну как сделать ????
разве не справедливо если p - порядок интерполяции, тогда берём по p+1 точек из N выборок и проводим между ними полином... соответственно полиномы склеиваются в узлах интерполяции покраям интервалов из p+1 точек...

если не так то опишите подобным образом схему как надо


Зря вы запутывете себя блочной обработкой, интуитивно должно быть понятно что для более точного вычисления значения между отсчётами ну нужно брать отсчёты и слева и справа и как можно больше, на краю блока точность буде низкая поскольку поскольку следующий блок вы в рассчёт не берёте.
Go to the top of the page
 
+Quote Post
TigerSHARC
сообщение Mar 22 2010, 12:46
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 688
Регистрация: 4-09-09
Пользователь №: 52 195



ага! Значит если интерполируем полиномом 1 стпени, то берём две первые точки из N строим прямую, затем берём вторую из первой группы, она же становиться первой для второй группы и тд...

если полином 6 степени, то берём 6 первых точек из N. Строим полином, затем вторая точка из этих шести становиться первой для другой группы, а седьмая по счёту точка становиться последней для второй группы, и опять строим полином... и тд....

"ДА" или "НЕТ"? просто очень важно разобраться....
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01482 секунд с 7
ELECTRONIX ©2004-2016