|
Апроксимация сплайнами, оптимизация размещения контрольных точек |
|
|
|
Jan 23 2011, 13:26
|

Профессионал
    
Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202

|
Эта тема является логическим продолжением вот этой, но может быть интересна и сама по себе, поэтому выношу в отдельный типик. На картинках изображена характерная кривая (1 - общий план, 2 - приближенное начало), которую нужно представить сплайнами или любым другим способом, занчительно снижающим объем памяти, требуемый для ее хранения, но при этом допускающий сравнительно простое восстановление по точкам, не разжимя всей кривой сразу (то-есть запаковать ее ZIP-ом нельзя  ). Проблема в автоматическом определении положения контрольных точек. Очевидно, что равномерное расположение не выгодно, так как в начале есть сильные осциляции, а в конце график почти прямой. В идеале нужен алгоритм, который позволит по заданному числу контрольных точек определть их положение так, чтобы СКО было минимальным. Или наоборот, по заданному СКО определить требуемое число точек и их положение. Есть еще одна небольшая проблема - данные немного зашумлены, отчего точное определение локальных экстремумов затруднено. Можно конечно его зафильтровать пока не получится приемлемый результат, но хотелось-бы этого избежать.
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Mar 3 2011, 00:52
|
Участник

Группа: Участник
Сообщений: 58
Регистрация: 17-12-10
Пользователь №: 61 695

|
Цитата(Taradov Alexander @ Jan 23 2011, 14:26)  В идеале нужен алгоритм, который позволит по заданному числу контрольных точек определть их положение так, чтобы СКО было минимальным. Или наоборот, по заданному СКО определить требуемое число точек и их положение. Если Вам необходимо найти оптимальные распределения точек для сплайн аппроксимации k-ой степени в l2 норме, можно поступить так: вначале аппроксимируете Вашу функцию сплайном k+2 степени s_{k+2}(x). Далее ищите разбиение x_0 < ... < x_i < ... < x_n так, чтобы \int_{x_i}^{x_{i+1}} \left(\frac{\delta^{k+1} s_{k+2}(x)}{\delta x^{k+1}}\right)^{\frac1{k+1}} dx было одинакого на всех отрезках. Если запутаетесь или не сможете сами, постораюсь формулы выложить, но, очень надеюсь, что сами справитесь. От себя хочу по самой задаче добавить. Кажется, если я правильно понял, есть желание аппроксимировать несколько (около 100) функций, у которых есть схожие формы, то есть вначале много осцилляций, в конце - все гладко и есть желание чуток поиграться с шумом. Моя идея - запишите эти функции (n штук) вначале на очень мелкой сетке с кусочно-постоянными или кусочно-линейными базисными функциями, чтобы шаг такой сетки был существенно меньше минимальной осцилляции. У Вас будет n векторов, образуйте из них матрицу. Сделайте этой матрице сингулярное разложение и выбросьте все сингулярные вектора, сингулярные значения которых будут меньше точности оцифровки вашого сигнала. Примените то, что я описал к оставшимся левым сингулярным векторам. Есть большая уверенность, что после всего этого Вы сильно сожмете эти данные, распаковка их будет съедать только несколько операций на точку, да и шум Вы тоже погасите.
Сообщение отредактировал igorchem - Mar 3 2011, 09:37
|
|
|
|
Сообщений в этой теме
Taradov Alexander Апроксимация сплайнами Jan 23 2011, 13:26 Tanya Цитата(Taradov Alexander @ Jan 23 2011, 16... Jan 23 2011, 14:12 Taradov Alexander QUOTE (Tanya @ Jan 23 2011, 17:12) Мне ка... Jan 23 2011, 14:18 Andrey_1 Цитата(Tanya @ Jan 23 2011, 18:12) Мне ка... Jan 23 2011, 14:19  Taradov Alexander QUOTE (Andrey_1 @ Jan 23 2011, 17:19) Пос... Jan 23 2011, 14:23   Andrey_1 Цитата(Taradov Alexander @ Jan 23 2011, 18... Jan 23 2011, 14:29    Taradov Alexander QUOTE (Andrey_1 @ Jan 23 2011, 17:29) Вам... Jan 23 2011, 14:30     Andrey_1 Цитата(Taradov Alexander @ Jan 23 2011, 17... Jan 24 2011, 03:44 АНТОН КОЗЛОВ Использование метода наименьших квадратов в подобн... Jan 24 2011, 05:41 TSerg Для Вашего случая моделировать надо не результат, ... Jan 24 2011, 07:15 Tanya Цитата(TSerg @ Jan 24 2011, 10:15) Для Ва... Jan 24 2011, 08:14  Andrey_1 Цитата(Tanya @ Jan 24 2011, 12:14) Наверн... Jan 26 2011, 00:51 Taradov Alexander QUOTE (TSerg @ Jan 24 2011, 10:15) Для Ва... Jan 24 2011, 11:16  Tanya Цитата(Taradov Alexander @ Jan 24 2011, 14... Jan 24 2011, 11:55   Taradov Alexander QUOTE (Tanya @ Jan 24 2011, 14:55) Вот и ... Jan 24 2011, 12:04    petrov Цитата(Taradov Alexander @ Jan 24 2011, 15... Jan 24 2011, 12:10     Taradov Alexander QUOTE (petrov @ Jan 24 2011, 15:10) А где... Jan 24 2011, 12:31      petrov Цитата(Taradov Alexander @ Jan 24 2011, 15... Jan 24 2011, 12:45       Taradov Alexander QUOTE (petrov @ Jan 24 2011, 15:45) Вот и... Jan 24 2011, 14:12    Tanya Цитата(Taradov Alexander @ Jan 24 2011, 15... Jan 24 2011, 14:35     Taradov Alexander QUOTE (Tanya @ Jan 24 2011, 17:35) Если е... Jan 24 2011, 15:10 _Pasha Обратите внимание, что регрессионный полином не об... Jan 24 2011, 07:49 scifi В порядке бреда: коль скоро это звуки (если я не о... Jan 24 2011, 08:04 GetSmart Цитата(Taradov Alexander @ Jan 23 2011, 18... Jan 24 2011, 08:57 _Pasha Цитата(GetSmart @ Jan 24 2011, 12:57) Для... Jan 24 2011, 09:10 petrov Почему бы просто не использовать более высокую час... Jan 24 2011, 11:45 Taradov Alexander QUOTE (petrov @ Jan 24 2011, 14:45) Почем... Jan 24 2011, 11:55  petrov Цитата(Taradov Alexander @ Jan 24 2011, 14... Jan 24 2011, 12:01 thermit ЦитатаTaradov Alexander:
Я так понимаю линейное пр... Jan 24 2011, 14:29 GetSmart Цитата(thermit @ Jan 24 2011, 19:29) Что ... Jan 24 2011, 14:31 thermit ЦитатаGetSmart:
Если это Фурье-коэффициенты, то им... Jan 24 2011, 15:00 Andrey_1 Цитата(igorchem @ Mar 3 2011, 04:52) Если... Mar 3 2011, 02:17  igorchem Цитата(Andrey_1 @ Mar 3 2011, 03:17) help... Mar 3 2011, 09:27   Taradov Alexander QUOTE (igorchem @ Mar 3 2011, 12:27) очен... Mar 3 2011, 09:39    igorchem Написал Вам ответ и прикрепил свой первый пост в ф... Mar 3 2011, 10:35     Taradov Alexander QUOTE (igorchem @ Mar 3 2011, 13:35) Напи... Mar 3 2011, 10:54      igorchem Цитата(Taradov Alexander @ Mar 3 2011, 11... Mar 3 2011, 11:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|