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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Апроксимация сплайнами, оптимизация размещения контрольных точек
ataradov
сообщение Jan 23 2011, 13:26
Сообщение #1


Профессионал
*****

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



Эта тема является логическим продолжением вот этой, но может быть интересна и сама по себе, поэтому выношу в отдельный типик.

На картинках изображена характерная кривая (1 - общий план, 2 - приближенное начало), которую нужно представить сплайнами или любым другим способом, занчительно снижающим объем памяти, требуемый для ее хранения, но при этом допускающий сравнительно простое восстановление по точкам, не разжимя всей кривой сразу (то-есть запаковать ее ZIP-ом нельзя sm.gif ).

Проблема в автоматическом определении положения контрольных точек. Очевидно, что равномерное расположение не выгодно, так как в начале есть сильные осциляции, а в конце график почти прямой.

В идеале нужен алгоритм, который позволит по заданному числу контрольных точек определть их положение так, чтобы СКО было минимальным. Или наоборот, по заданному СКО определить требуемое число точек и их положение.

Есть еще одна небольшая проблема - данные немного зашумлены, отчего точное определение локальных экстремумов затруднено. Можно конечно его зафильтровать пока не получится приемлемый результат, но хотелось-бы этого избежать.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 23 2011, 14:12
Сообщение #2


Гуру
******

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



Цитата(Taradov Alexander @ Jan 23 2011, 16:26) *
На картинках изображена характерная кривая (1 - общий план, 2 - приближенное начало), которую нужно представить сплайнами или любым другим способом, занчительно снижающим объем памяти, требуемый для ее хранения, но при этом допускающий сравнительно простое восстановление по точкам, не разжимя всей кривой сразу (то-есть запаковать ее ZIP-ом нельзя sm.gif ).

Мне кажется, что это композиция экспоненциального (?) спада + (-) довольно равномерно идущие затухающие пики.
Go to the top of the page
 
+Quote Post
ataradov
сообщение Jan 23 2011, 14:18
Сообщение #3


Профессионал
*****

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



QUOTE (Tanya @ Jan 23 2011, 17:12) *
Мне кажется, что это композиция экспоненциального (?) спада + (-) довольно равномерно идущие затухающие пики.

Нет, сигнал сложнее, кроме того это только одна из кривых (это амплитуда перавой гармоники ноты C4), остальные хотя и похожи по форме (всегда резко растут и плавно спадают), но немного отличаются и различия эти критичны.
Go to the top of the page
 
+Quote Post
Andrey_1
сообщение Jan 23 2011, 14:19
Сообщение #4


Частый гость
**

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



Цитата(Tanya @ Jan 23 2011, 18:12) *
Мне кажется, что это композиция экспоненциального (?) спада + (-) довольно равномерно идущие затухающие пики.

Поставьте Origin Calc и грузите туда ASCII файлы ваших функций
В проге есть нормальный сплан генератор который Вам отапроусимирует хоть средними квадратами хоть Савицким-Голеем
и еще уравнение полинома на экране покажет чем велосипед изобретать
ПС Шкалы опять в йагупопах 87-ых

Сообщение отредактировал Andrey_1 - Jan 23 2011, 14:21
Go to the top of the page
 
+Quote Post
ataradov
сообщение Jan 23 2011, 14:23
Сообщение #5


Профессионал
*****

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



QUOTE (Andrey_1 @ Jan 23 2011, 17:19) *
Поставьте Origin Calc и грузите туда ASCII файлы ваших функций
Цель - узнать алгоритм, а не пользоваться программой. Мне таких графиков несколько сотен нужно будет обработать, все руками предложите?
Go to the top of the page
 
+Quote Post
Andrey_1
сообщение Jan 23 2011, 14:29
Сообщение #6


Частый гость
**

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



Цитата(Taradov Alexander @ Jan 23 2011, 18:23) *
Цель - узнать алгоритм, а не пользоваться программой. Мне таких графиков несколько сотен нужно будет обработать, все руками предложите?

Вам таки ехать или шашечки?
Узнаете уравнение огибающей - напишите в С или Матлабище как считать
Файлы грузить - скрипт нарисуйте
Matlab command window:
help polyfit
help polyfun
Go to the top of the page
 
+Quote Post
ataradov
сообщение Jan 23 2011, 14:30
Сообщение #7


Профессионал
*****

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



QUOTE (Andrey_1 @ Jan 23 2011, 17:29) *
Вам таки ехать или шашечки?

Шашечки. У меня есть свободное время и я его посвещаю самообразованию. Ваших выпадок в мой адрес не понимаю, если честно.
Go to the top of the page
 
+Quote Post
Andrey_1
сообщение Jan 24 2011, 03:44
Сообщение #8


Частый гость
**

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



Цитата(Taradov Alexander @ Jan 23 2011, 17:30) *
Шашечки. У меня есть свободное время и я его посвещаю самообразованию. Ваших выпадок в мой адрес не понимаю, если честно.

Я вам предлагаю варианты решения
Выпад(к)ов и в помине нет - это юмор сэр
Go to the top of the page
 
+Quote Post
АНТОН КОЗЛОВ
сообщение Jan 24 2011, 05:41
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 344
Регистрация: 3-01-09
Из: УФА
Пользователь №: 42 894



Использование метода наименьших квадратов в подобных ситуациях внятно описано в учебнике Пискунова "Дифференциальное и интегральное исчисление" с примерами для полиномов першего и другого порядка. Подобные методики любили при совке описывать в книжках про программируемые калькуляторы.
При высоких порядках полинома нужно решать громоздкую систему уравнений.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Jan 24 2011, 07:15
Сообщение #10





Guests






Для Вашего случая моделировать надо не результат, а причину.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 24 2011, 07:49
Сообщение #11


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Обратите внимание, что регрессионный полином не обязан в точности совпадать ни с одной из точек входного массива данных, в то время как ss2tf или как его там по-матлабовски... не помню - в общем, обязан совпадать в узлах интерполяции.
В итоге, Вам надо нечто гибридное - солвер для определения оптимального сегмента сплайн-аппроксимации. Внутри сегмента - обеспечение мин. отклонения, "снаружи" - минимизация кол-ва коэффициентов. Безусловным приоритетом обладает максимизация длительности сегмента.
Go to the top of the page
 
+Quote Post
scifi
сообщение Jan 24 2011, 08:04
Сообщение #12


Гуру
******

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



В порядке бреда: коль скоро это звуки (если я не ошибаюсь), то отчего бы не применить алгоритмы из lossy codecs (MP3 и прочие)?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 24 2011, 08:14
Сообщение #13


Гуру
******

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



Цитата(TSerg @ Jan 24 2011, 10:15) *
Для Вашего случая моделировать надо не результат, а причину.

Наверное, не только в этом случае. Если верить авторскому рисунку, кроме затухания происходит перенос энергии основной моды в гармоники. И обратно?
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Jan 24 2011, 08:57
Сообщение #14


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(Taradov Alexander @ Jan 23 2011, 18:26) *
Проблема в автоматическом определении положения контрольных точек. Очевидно, что равномерное расположение не выгодно, так как в начале есть сильные осциляции, а в конце график почти прямой.

Как определять точки - сильно зависит от алгоритма интерполяции/сглаживания. Для начала определитесь с методом сглаживания. А потом можно думать об алгоритме поиска точек.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 24 2011, 09:10
Сообщение #15


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(GetSmart @ Jan 24 2011, 12:57) *
Для начала определитесь с методом сглаживания.

Можно на автопилоте, например, повышая порядок полинома Лежандра для осциллирующих участков.
Go to the top of the page
 
+Quote Post

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

 


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


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