|
Окна для приближения производных sinc, подскажите, как их получать? |
|
|
|
Jul 7 2012, 21:41
|
Знающий
   
Группа: Свой
Сообщений: 781
Регистрация: 3-10-04
Из: Санкт-Петербург
Пользователь №: 768

|
Цитата(_Ivana @ Jul 8 2012, 00:32)  Предполагается что исходная функция дифференцируема нужное количество раз и удовлетворяет условию теоремы Котельникова. Однако, вместо урезанного синка используют же другие окна, которые были получены (из синка?) по каким-то критериям. Вот я и хочу найти такие варианты для производных. Надеюсь, про связь частотно-временных представлений Вы в курсе. Теперь вопрос - зачем появились окна? Все просто. Отрезок на оси времени дает бесконечный частотный спекр. Отрезок на оси частот - бесконечен во времени. Ну такая у нас математика. Все хотят ограничить сигнал как во времени, так и по частоте. Окна - это результат компромисса. Они имеют как частотные, так и временные представления. Для детерминированного сигнала всегда можно придумать согласованный фильтр, но его всегда можно описать в имеющихся ортогональных базисах.
|
|
|
|
|
Jul 7 2012, 21:52
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Цитата Окна - это результат компромисса. Правильно. И бесконечный синк физически нереализуем, поэтому делают конечное его окно. Можно просто "обрубать" и получать краевые эффекты, а можно отклониться от чистого синка ближе к краям окна, получив другое окно. Но я пока пробую интерполировать производную сигнала хотя бы простым ограничением производной синка. ЗЫ сигнал в базисах можно описать, можно много чего ещё. Но на текущий локальный момент мне интересно попробовать увеличить точность аппроксимации производной.
|
|
|
|
|
Jul 8 2012, 17:11
|
Местный
  
Группа: Свой
Сообщений: 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 вы предложите? И почему такие?
|
|
|
|
|
Jul 11 2012, 09:48
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
С последним постом параметр конкретика/лирика в этом топике скачком возрос от нуля до своего максимального значения, производная соответственно максимальна iiv, спасибо, попробую ваши коэффициенты на 9 точках. Но один вопрос - если взять 11, 13,.... 101 и т.д. точек - то коэффициенты будут рассчитываться по аналогии как Код an=+-(2-sqrt(3))^n или не все так просто и выражение в скобках тоже будет другое? Спрашиваю потому что пока не догадываюсь как Вы получили эти коэффициенты. Покрутил ещё Лагранжа. Обнаружил, что его коэффициенты представляют собой (для первой производной) значения производной синка в точках натурального ряда (они равны 1/n) умноженные на некие факториальные коэффициенты, которые вначале получаются около 1-цы но к концу нашего конечного окна = степени полинома резко спадают до 0, причем настолько резко, что даже логарифм их значения улетает в минус бесконечность почти вертикально. Поэтому и получается, что если мы будем брать предельный случай - только производные синка, то длина окна получается бесконечна и эти факториальные коэффициенты не ограничат чистые производные синка = 1/n и ряд не будет сходящимся. В качестве эксперимента взял окно в 50 точек (по полиному Лагранжа 100 степени, да  ). После ~30 значений точности моего 1С-симулятора (15 знаков после запятой в десятичном формате) не хватает для этих коэффициентов - они получаются нулевые, хотя теоретически они есть все вплоть до 50-го. Если рассчитать окно по 80 точкам, то как раз 50 ненулевых коэффициентов и получится при моей точности их определения. А если рассчитать окно по 200 коэффициентам (полиному 400-й степени  ) и взять из них первые 50, то точность аппроксимации производной ограничится, после определенного порядка не будет увеличиваться при увеличении частоты дискретизации (за счет отбрасывания коэффициентов после определенного порядка), но увеличится точность вблизи частоты Найквиста. Таким образом, имея определенную длину окна (наши 50 коэффициентов) я могу в неких пределах варьировать соотношение между абсолютной точностью аппроксимации при больших и малых частотах дискретизации, получать некие компромиссы. Но я манипулирую лишь порядком полинома и количеством оставляемых из него значений для окна. Единственно что ещё - последнее значение окна я могу рассчитать не как значение по полиному, а по правилу схождения ряда к 1-це на прямой. При этом абсолютная точность при больших частотах дискретизации несколько повышается. Но у меня есть предположения что можно обрезать ряд коэффициентов с изменением значений не одного а многих последних элементов, так чтобы погрешность была ещё меньше а окно оптимальнее. Пока не могу придумать как это сделать, буду признателен если кто подскажет.
|
|
|
|
|
Jul 11 2012, 15:26
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(_Ivana @ Jul 11 2012, 14:48)  С последним постом параметр конкретика/лирика в этом топике скачком возрос от нуля до своего максимального значения, производная соответственно максимальна iiv, спасибо, попробую ваши коэффициенты на 9 точках. Но один вопрос - если взять 11, 13,.... 101 и т.д. точек - то коэффициенты будут рассчитываться по аналогии как Код an=+-(2-sqrt(3))^n или не все так просто и выражение в скобках тоже будет другое? Спрашиваю потому что пока не догадываюсь как Вы получили эти коэффициенты. да, именно так. Это обычный Б-сплайн 3-ей степени. Для пятой я на раз форулы из головы написать не смогу, старый стал. А ведь было время, на экзаменах студентам такое давал, а они выводили, и приходилось на лету проверять. Еще есть возможность нарисовать тот же Б-сплайн, но на сетке в несколько раз большей, чем снятые Ваши эксперименты. Попробуйте, пожалуйста, сами, если сложно будет, пишите, я формулы для оного перевыведу и здесь запостю.... Я когда-то постил, кажется, для des00, но уже забыл, ссылку не могу найти, и наизусть не помню, а перевыводить лениво. С Лагранжем и синком, можно Вам один глупый совет дать, и то, и другое хорошо осциллирует. Не правильно это при обычной нашей природе. Или сплайны, или Чебышев, но не Лагранж и синком.
|
|
|
|
|
Jul 11 2012, 16:22
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
Цитата Еще есть возможность нарисовать тот же Б-сплайн, но на сетке в несколько раз большей, чем снятые Ваши эксперименты. Попробуйте, пожалуйста, сами, если сложно будет, пишите, я формулы для оного перевыведу и здесь запостю.... Вы имеете в виду Б-сплайн построенный по.... а кстати скольким точкам? В несколько раз больше - это касается моего примера для 9 точек или для последнего для 101 точки? В любом случае вопросы сплайнов мне интересны, я попробую то что Вы говорите, только для начала хочу понять что именно имеется в виду. Цитата С Лагранжем и синком, можно Вам один глупый совет дать, и то, и другое хорошо осциллирует. Не правильно это при обычной нашей природе. Или сплайны, или Чебышев, но не Лагранж и синком. 1) Лагранж осциллирует в краях диапазона, например если взять точек 50, построить полином по всем точкам - в краях будут осцилляции. А если взять те же 50 точек, построить полином, но использовать его только для единственного центрального интервала, а для соседнего использовать свой полином, то имхо осцилляций не должно быть. 2) Собственно, сам вопрос аппроксимации производных у меня возник вследствие построения различных сплайнов с их использованием, в т.ч. и обобщенных сплайнов Эрмита. Например, сейчас мучаю локальный сплайн Эрмита 9-й степени с непрерывными 0,1,2,3,4 производными, при точном значении производных точность сплайна получается имхо весьма хорошая, все дело за точной аппроксимацией производных вплоть до 4-й в узлах сетки. А вот эти производные я и аппроксимирую Лагранжем, ибо больше пока не знаю как. Но, например, при моем окне в 50 точек производные аппроксимируются с более чем достаточной точностью для того же сплайна Эрмита 5-й и 7-й степени. Если интересно, могу показать экспериментальные графики точности этих сплайнов - как теоретически предельные, так и практически достигнутые
|
|
|
|
|
Jul 12 2012, 09:58
|
Местный
  
Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710

|
iiv, попробовал Ваши коэффициенты. Слева график точности кубических Эрмитовых сплайнов: синий с точными производными, красный с аппроксимацией производных по Лагранжу 8 порядка (те самые 4 коэффициента из моего примера), зеленый - аппроксимация производных 4-мя коэффициентами по Б-сплайну 3 степени (Ваши коэффициенты). Справа график точности сплайнов Эрмита 9 степени: красный с точными производными, зеленый - с аппроксимацией через окно из 50 точек, построенное по вашим коэффициентам с дальнейшим расширением степенного ряда. Кстати по этому ряду 39-й коэффициент окна уже равен 1Е-20 а остальные не влезли в точность и равны нулю. Видно что точность аппроксимации производной не растет с увеличением длины окна. Думаю это связано с тем, что эти выкладки для Б-сплайна 3 степени и мы не можем вылезти за рамки точности этой 3 степени как бы ни расширяли окно. Повторюсь, свои окна по Лагранжу, которые работают хорошо, я считаю по полиномам 200-400 степеней.
Эскизы прикрепленных изображений
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|