Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/76: Рейтинг темы: голосов - 76, средняя оценка - 4.80
 Аватар для Genco
16 / 16 / 3
Регистрация: 05.08.2012
Сообщений: 89

Фильтр Савицкого-Голая

17.10.2012, 03:51. Показов 15256. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех!

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

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

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

Мб я туплю, но не ткнет ли меня кто-нибудь в ссылку или ещё куда? Сгодится инфа о сути метода, либо какие-то наброски-материалы на любом языке программирования.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2012, 03:51
Ответы с готовыми решениями:

Дифференцирование фильтром Савицкого-Голая
Приветствую всех! Коротко: есть такая штука, вот. Применять её надо так. Умеет не только сглаживать, но и считать сглаженные...

Голая Правда Об 1с
Предлагаю обсудить проблемы 1С, как таковой, порождающие прочие проблемы, включая внедрение, по ссылке: Статья по 1С в Tadviser или та же...

Нужна материнская плата(голая)
нужна материнка голая почти (комплектующие к ней я достану с работы кроме процессора и видеокарты и блока питания) к материнке нужен...

13
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
19.10.2012, 11:43
В матлабе есть функция фильтрации с помощью алгоритма Савицкого—Голея http://matlab.exponenta.ru/ml/... ayfilt.php
В алгоритм особо не вдавался, мельком глянул код - основные сложности - QR разложение, которое можно взять из alglib или lapack, и операция обращения матрицы, которую обычно предпочитают избегать.
0
 Аватар для Genco
16 / 16 / 3
Регистрация: 05.08.2012
Сообщений: 89
19.10.2012, 17:37  [ТС]
Ну да, ещё в SciPy что-то похожее видел. Просто мне нужно добавить в свой код, а везде нахожу только описание "в общих чертах", либо совсем такое готовое.
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
20.10.2012, 08:49
по приведенной ссылке описание "в общих чертах", но в матлабе можно посмотреть код функции. Синтаксис матлаба достаточно прост, тем более используются встроенные функции и код читается легко. Кстати в одной статье видел ссылку в списке литературы на книгу(или статью):
Savitzky, A.; Golay, M.J.E. "Smoothing and Differentiation of Data by Simplified Least Squares Procedures."
но найти ее не смог. Если найдете, дайте ссылку плиз, спасибо говорить буду.)
0
13 / 1 / 0
Регистрация: 14.12.2012
Сообщений: 11
14.12.2012, 17:11
Вот, пожалуйста -
http://www.ee.oulu.fi/research... lPaper.pdf
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
14.12.2012, 17:25
remax, большое спасибо, почитаю на выходных.
0
13 / 1 / 0
Регистрация: 14.12.2012
Сообщений: 11
14.12.2012, 17:41
vital792, на здоровье) Только качество PDF не ахти. (
0
294 / 206 / 2
Регистрация: 20.02.2011
Сообщений: 551
14.12.2012, 22:52
Небольшое предупреждение. Статья граждан Савицкого и Голая известна большим количеством опечаток. Надо гуглить, наверно, и на позднейшие исправления.
1
13 / 1 / 0
Регистрация: 14.12.2012
Сообщений: 11
15.12.2012, 01:40
MOHCTP, а что Вы хотели от публикации 1964 года, подготовленной без компьютера?) Это ожидаемо... Главное, что там расписана идея. Формулы и выводы можно перепроверить. А коэффициенты в таблицах, если кому надо, то имеются на современных ресурсах. Например, в теме Дифференцирование фильтром Савицкого-Голая даны соответствующие ссылки...
0
294 / 206 / 2
Регистрация: 20.02.2011
Сообщений: 551
17.12.2012, 12:32
Да ничего не хотел. Известно, что даже в лучшем случае там на концах интервала спад к абсолютно горизонтальной линейной зависимости. Кубические сплайны и то такого прискорбного концевого эффекта не имеют. Да, метод хорош, практически применим, но с выкрутасами. Есть много методов с сопоставимыми вычислительными затратами, дающих куда более правдоподобные результаты. Особенно по части краевых эффектов, которые в методе Савицкого-Голая вылезают ну просто гадски. Ну, Вы там посчитаете по Савитскому-Галаю, Вы же сами сюда прибежите с вопросом, а что за хрень у меня получается на краях интервала. Она (хрень) неизбежна, и является следствием вычислительной схемы Савитского-Голая. Заранее совет: попробуйте кубические сплайны, это не панацея, но столь гадских краевых эффектов не имеет.
0
13 / 1 / 0
Регистрация: 14.12.2012
Сообщений: 11
17.12.2012, 13:20
MOHCTP, о каких краевых эффектах Вы говорите, если в цитируемой работе приведены формулы и рассчитаны коэффициенты только для центральной точки? Если у Вас есть ссылки на работы, где приводятся формулы для расчеты коэффициентов для вычисления краевых точек, то дайте ссылку, плиз. Буду очень признателен. Или если критические публикации по применению этих методов, то тоже, плиз, в студию. Хотя, насчет таких странных эффектов я очень сомневаюсь, так как в основе методов Савицкого-Голая лежат зависимости 2,3 и 4, 5 порядка, а совсем не линейные...
0
 Аватар для Genco
16 / 16 / 3
Регистрация: 05.08.2012
Сообщений: 89
17.12.2012, 17:35  [ТС]
MOHCTP, да, с обоих концов при обработке превращается в ерунду полуширина окна, но имхо, это больше вопрос стоящей задачи.

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

Origin и всяческие мат. пакеты не просто так обязательно имеют этот метод в арсенале.
0
13 / 1 / 0
Регистрация: 14.12.2012
Сообщений: 11
17.12.2012, 18:41
Genco, только не обращается в ерунду, а просто не сглаживаются) Если нет формул для краевых точек, то данные должны остаться без изменения, как в оригинале. Или, если этого требует религия)), то результирующий массив будет просто короче с двух сторон на половину ширины окна...
0
294 / 206 / 2
Регистрация: 20.02.2011
Сообщений: 551
19.12.2012, 10:20
Прошу пардона у всех прочитавших мое сообщение граждан, и выразивших свое возмущение. Я никогда сам не программировал сглаживание фильтром Савицкого-Голая. Потому что использовал другие фильтры (брал готовый алгоритм и даже готовую подпрограмму), которые мне показались более подходящими. Но когда я в какой-то готовой программке пробовал сглаживание по (возможно, якобы) Савицкому-Голаю, на концах получались абсолютно горизонтальные отрезки. Я программку уже не помню, может, авторы накосячили, но, как говорится в анекдоте, осадок остался. Да и тут на форуме тоже высказывались о проблемах на краях, а я еще в интернете неоднократно сталкивался с жалобами на это. Реальная проблема в том, что при некоторой конкретной реализации алгоритма Савицкого-Голая авторы определенных подпрограмм, получающих распространение, иногда на все эти вещи по краям смотрят сквозь пальцы. И они не то что не сглаживают краевые точки, это еще было бы лучшим выходом. Но они их принудительно сглаживают по неработающему в этой области алгоритму. В результате имеем на краях или полную горизонталь, или жесткую линейную наклонную линию. И то, и другое с реальностью обычно мало согласуется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2012, 10:20
Помогаю со студенческими работами здесь

Голая семерка жрет 3 гига памяти со старта после оптимизации под SSD
Речь идет о ноутбкуке HP Core i3, c 4-мя гигами памяти, на борту свежая Windows 7 64 перенесенная с обычно HDD на SSD Samsung 850 Evo, и...

Фильтр по форме по нескольким логическим полям с использованием кнопки Общий фильтр
Здравствуйте! Есть простая таблица и созданная форма. Идея в том, чтобы ставя галки осуществлять поиск (с помощью кнопки общий фильтр...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru