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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Окна для приближения производных sinc, подскажите, как их получать?
_Ivana
сообщение Jul 7 2012, 13:01
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



При некоторых методах интерполяции для получения значения производят сложение близлежащих точек с определенными весовыми коэффициентами, задаваемыми таблицей оконной функции (если положение точки внутри отрезка строго определено, например 1/2 и т.п.). В качестве этих коэффициентов можно брать:

1) Значения базисных полиномов Лагранжа, рассчитанных по тому же количеству точек что содержатся в окне - тогда мы имеем "чистую" полиномиальную Лагранжевскую интерполяцию, которая становится точнее с ростом частоты дискретизации но дает большие ошибки вблизи частоты Найквиста
2) Значения функции sinc (конечное их число). Точность определяется размером окна и по моему имху равна 1/N, где N-размер окна. Но зато хорошо себя ведет вблизи частоты Найквиста.
3) Другие хитрые окна, которые наверное можно представить как произведение sinc на квазипрямоугольное окно с хитрыми загибами по краям, что имхо должно приводить к некоему компромиссу характеристик 1) и 2)

Далее: мне хочется рассчитывать производные любых порядков в любы точках (хотя для начала в самих точках дискретизации) для равномерно дискретизированной функции. Появляются возможные аналогии описанному выше:

1) Окно из производных базисных полиномов Лагранжа
2) Окно из конечного набора усеченных производных sinc (cos(x)/x - sin(x)/x^2 и т.п.)
3) Некие компромиссные окна из 1) и 2)

1) и 2) я рассчитаю самостоятельно, собственно, вопрос:
как я могу получить оптимальное окно типа 3) для производных? Может есть какое-то известное квазипрямоугольное окно, наложив которое на 2) я получу желаемое? Или если такое окно есть и оно хорошо работает для самой функции, то не факт что будет хорошо работать для производных?

Сорри за многабукаф и заранее спасибо за ответы. Если вдруг что непонятно в моем изложении - готов уточнить.
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Jul 7 2012, 15:47
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



QUOTE (_Ivana @ Jul 7 2012, 16:01) *
Посмотрите в учебнике Бахвалова, Жидкова, Кобелькова Численные методы главы по интерполяции, аппроксимации и конечным разностям.

Go to the top of the page
 
+Quote Post
_Ivana
сообщение Jul 7 2012, 18:02
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Скачал книжку, читаю, но пока не нашел ответа на свой вопрос. Приведу конкретный пример: есть ряд значений y(i), надо аппроксимировать первую производную в точке 0. Если ограничиваться аппроксимацией по 9 точкам, получаем формулу:

y'(0) = a1*(y(1)-y(-1)) + a2*(y(2)-y(-2)) + a3*(y(3)-y(-3)) + a4*(y(4)-y(-4))

1) по Лагранжу:
a1 = 4/5
a2 = -1/5
a3 = 4/105
a4 = -1/280

2) по обрезанной производной синка (если ничего не напутал, смущает знак):
a1 = -sinc'(1)
a2 = -sinc'(2)
a3 = -sinc'(3)
a4 = -sinc'(4)

Причем, очевидно, что проверку прямой линией: 2*a1 + 4*a2 + 6*a3 + 8*a4 = 1 выдерживает только Лагранж, а синк будет сильно врать. С увеличением количества точек синк будет врать все меньше (~1/N).

Вопрос - какие значения a1~a4 вы предложите? И почему такие? Или (что то же самое) - какое квазипрямоугольное окно для этих коэффициентов лучше всего наложить на значения по синку, и по каким критериям выбирать это окно?
Go to the top of the page
 
+Quote Post
Tiro
сообщение Jul 7 2012, 19:49
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 781
Регистрация: 3-10-04
Из: Санкт-Петербург
Пользователь №: 768



Цитата(_Ivana @ Jul 7 2012, 21:02) *
Скачал книжку, читаю, но пока не нашел ответа на свой вопрос. Приведу конкретный пример: есть ряд значений y(i), надо аппроксимировать первую производную в точке 0. Если ограничиваться аппроксимацией по 9 точкам, получаем формулу:

y'(0) = a1*(y(1)-y(-1)) + a2*(y(2)-y(-2)) + a3*(y(3)-y(-3)) + a4*(y(4)-y(-4))

1) по Лагранжу:
a1 = 4/5
a2 = -1/5
a3 = 4/105
a4 = -1/280

2) по обрезанной производной синка (если ничего не напутал, смущает знак):
a1 = -sinc'(1)
a2 = -sinc'(2)
a3 = -sinc'(3)
a4 = -sinc'(4)

Причем, очевидно, что проверку прямой линией: 2*a1 + 4*a2 + 6*a3 + 8*a4 = 1 выдерживает только Лагранж, а синк будет сильно врать. С увеличением количества точек синк будет врать все меньше (~1/N).

Вопрос - какие значения a1~a4 вы предложите? И почему такие? Или (что то же самое) - какое квазипрямоугольное окно для этих коэффициентов лучше всего наложить на значения по синку, и по каким критериям выбирать это окно?

Тут важно, что Вы хотите получить в ответе. В книжках обычно стараются найти компромисс между порядком приближения и расширением спектра. Или даже отношение сигнал/шумоптимизируют. Если есть заранее известные характеристики сигнала, то надо на них опираться.
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Jul 7 2012, 20:15
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



QUOTE (_Ivana @ Jul 7 2012, 22:02) *
С вычислительной точки зрения совершенно все равно какую модель дифференцировать - например, если функция аппроксимирована кубическим сплайном, то её производная - полином второй степени и считается аналитически.

Если функция задана таблицей, то считаются конечные разности, с фильтрацией высокочастотного шума, который вносит наибольший вклад в ошибку. Т.о. необходим копромисс - поскольку производная это локальное свойство, то чем меньше точек, тем лучше (но меньше чем двумя всё равно не обойтись), а для подавления шума точек желательно взять больше.

В обоих случаях считается не сама производная, а её аппроксимация и она можеть быть близка или далека от истинной производной.

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




QUOTE (Tiro @ Jul 7 2012, 23:49) *
компромисс между порядком приближения и расширением спектра
Для дифференцирования спектр нужно сузить. Но не перестараться. Если (как предел фильтра нижних частот) взять среднее арифметическое, то получим много раз гладкую функцию с производными равными нулю и очень узким спектром...

Go to the top of the page
 
+Quote Post
Tiro
сообщение Jul 7 2012, 20:24
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 781
Регистрация: 3-10-04
Из: Санкт-Петербург
Пользователь №: 768



Цитата(AndrewN @ Jul 7 2012, 23:15) *
предел фильтра нижних частот) взять среднее арифметическое, то получим много раз гладкую функцию с производными равными нулю и очень узким спектром...

Извините, но мне непонятно что такое "предел фильтра нижних частот".
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Jul 7 2012, 20:31
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Спасибо за направление, я все о своем, сугубо теоретическом.
Обнаружил (если нигде не ошибся), что значение производной sinc в точках натурального ряда N с меняющимся знаком совпадают со значением 1/N, например sinc'(3) = -1/3 и т.д. То есть, если взять прямую линию (к чему стремится любая функция при увеличении частоты дискретизации), то ряд получения первой производной даже не является сходящимся, то есть любое большое число окрестных точек не даст нам аппроксимации производной...
Go to the top of the page
 
+Quote Post
Tiro
сообщение Jul 7 2012, 20:40
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 781
Регистрация: 3-10-04
Из: Санкт-Петербург
Пользователь №: 768



Цитата(_Ivana @ Jul 7 2012, 23:31) *
Спасибо за направление, я все о своем, сугубо теоретическом.
Обнаружил (если нигде не ошибся), что значение производной sinc в точках натурального ряда N с меняющимся знаком совпадают со значением 1/N, например sinc'(3) = -1/3 и т.д. То есть, если взять прямую линию (к чему стремится любая функция при увеличении частоты дискретизации), то ряд получения первой производной даже не является сходящимся, то есть любое большое число окрестных точек не даст нам аппроксимации производной...

Функция это абстракция. Она вообще ни к чему не стремится. И sinc тоже абстракция. Это выражение такое, ведет себя как полагается в области определения )))
Что хочешь понять-то?
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Jul 7 2012, 20:46
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Я хочу понять, есть ли такое окно (и найти его), которое при относительно малом количество точек (~10-20) достаточно хорошо приближает первую (другое окно - вторую и т.д.) производную в точке. В случае полиномов Лагранжа любой степени я эту задачу решил. Теперь хочу экстраполировать на случай синка или чего-то промежуточного.

ЗЫ синк на прямой y(i) = 1 сходится к этой прямой. А первая производная нет, если я не ошибаюсь. Сейчас буду пробовать вторую, там навскидку график обнадеживает... График например есть вот здесь в самом низу
http://www.tvalx.com/Russian/MathArticles/...ncFunction.html

Сообщение отредактировал _Ivana - Jul 7 2012, 20:51
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Jul 7 2012, 20:56
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



QUOTE (Tiro @ Jul 7 2012, 23:24) *
Извините, но мне непонятно что такое "предел фильтра нижних частот"
Среднее арифметическое а. Спектр а равен a*sqrt(2*pi)*delta(omega). Уже не бывает.



QUOTE (_Ivana @ Jul 7 2012, 23:46) *
Я хочу понять, есть ли такое окно (и найти его), которое при относительно малом количество точек (~10-20) достаточно хорошо приближает первую (другое окно - вторую и т.д.) производную в точке
Производная - локальная величина. Окна для вычисления производной не нужны. И sinc(*) вам абсолютно не нужен. Вы считаете производную в точке. Закройте глаза и представьте, что функция продолжается от неё и влево и вправо так далеко, что синк от дельты не отличить.



QUOTE (Tiro @ Jul 7 2012, 23:40) *
Функция это абстракция. Она вообще ни к чему не стремится
Ура, завтра в школу не пойдем - пределы отменили!

Сообщение отредактировал AndrewN - Jul 7 2012, 21:07
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Jul 7 2012, 20:58
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Цитата
Производная - локальная величина. Окна для вычисления производной не нужны. И sinc(*) вам абсолютно не нужен. Вы считаете производную в точке.

Правильно. Но значение функции в точке - тоже локальная величина. Однако при интерполяции её считают и через окно. Суть в том, что если мы представляем аппроксимирующий полином в форме базисных полиномов Лагранжа, то и производную можем рассчитать так же (я проверял, работает). А если при бесконечном увеличении точек базисные полиномы Лагранжа вырождаются в синк, то и там думал что это возможно.

ЗЫ во всяком случае, вторая производная синка в точках натурального ряда спадает быстрее чем первая, что обнадеживает (пусть хотя бы вторую удастся аппроксимировать).
Go to the top of the page
 
+Quote Post
Tiro
сообщение Jul 7 2012, 21:04
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 781
Регистрация: 3-10-04
Из: Санкт-Петербург
Пользователь №: 768



Цитата(AndrewN @ Jul 7 2012, 23:56) *
Среднее арифметическое а. Спектр а равен a*sqrt(2*pi)*delta(omega). Уже не бывает.

То есть если а 0, +1, 0, -1 и далее, а delta(omega) 0, +1, 0 , -1 то быстро через тернии к звездам?

Цитата(AndrewN @ Jul 7 2012, 23:56) *
Ура, завтра в школу не пойдем - пределы отменили!

Да, не ходите. Завтра -30 за порогом!
P.S. А как оттает, и про пределы поговорим.
Go to the top of the page
 
+Quote Post
AndrewN
сообщение Jul 7 2012, 21:12
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961



QUOTE (Tiro @ Jul 8 2012, 01:04) *
То есть если а 0, +1, 0, -1 и далее
Нет. а это и есть среднее арифметическое. Была таблица значений функции (возможно что с шумом) на равномерной сетке x(i), i = 1,...,N, а получили a = 1/N*SUM(k=1,...,N)x(k).

Go to the top of the page
 
+Quote Post
Tiro
сообщение Jul 7 2012, 21:21
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 781
Регистрация: 3-10-04
Из: Санкт-Петербург
Пользователь №: 768



Цитата(_Ivana @ Jul 7 2012, 23:46) *
Я хочу понять, есть ли такое окно (и найти его), которое при относительно малом количество точек (~10-20) достаточно хорошо приближает первую (другое окно - вторую и т.д.) производную в точке. В случае полиномов Лагранжа любой степени я эту задачу решил. Теперь хочу экстраполировать на случай синка или чего-то промежуточного.

ЗЫ синк на прямой y(i) = 1 сходится к этой прямой. А первая производная нет, если я не ошибаюсь. Сейчас буду пробовать вторую, там навскидку график обнадеживает... График например есть вот здесь в самом низу
http://www.tvalx.com/Russian/MathArticles/...ncFunction.html

В общем случае нет такого окна. Да и сами определения производных и проч сделаны для ограниченного набора функций. Если Ваша функция непредставима в имеющихся базисах, то, возможно, Вы найдете свое "окно". И оно будет представимо в имеющихся базисах. biggrin.gif
Go to the top of the page
 
+Quote Post
_Ivana
сообщение Jul 7 2012, 21:32
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Предполагается что исходная функция дифференцируема нужное количество раз и удовлетворяет условию теоремы Котельникова. Однако, вместо урезанного синка используют же другие окна, которые были получены (из синка?) по каким-то критериям. Вот я и хочу найти такие варианты для производных.
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 - 16:18
Рейтинг@Mail.ru


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