.................................."Вершины понизятся, а низины повысятся", - Исус Христос.
Сглаживание по девяти точкам является свёрткой (конволюцией) исходных числовых данных с девятичленным многочленом (полиномом), называемым окном [5]. Окно задаётся формулой и девятью весовыми коэффициентами.
Линейное и нелинейные сглаживания производятся по одним и тем же формулам и алгоритмам, меняются только весовые коэффициенты в сглаживающем окне. При линейном сглаживании все весовые коэфффициенты равны и сглаживающее окно прямоугольное. При нелинейном сглаживании весовые коэффициенты не равны и сглаживающее окно может быть треугольным, как у Ханна [5] при N=5, квадратичным (параболическим), как у Савицкого-Голея [6][7], экспоненциальным, одним из приближений функции нормального распределения Гаусса [4], как у Ханна, Хэннинга, Блэкмана, Кайзера и др. [5], или прямо функцией нормального распределения Гаусса.
Проверим линейное сглаживание по девяти точкам зашумлённой наклонной линии методом "простого среднего (арифметического)", т.е. с весовыми коэффициентами (1, 1, 1, 1, 1, 1, 1, 1, 1)/9:
SY[I]=(Y[I-4]+Y[I-3]+Y[I-2]+Y[I-1]+Y[I]+Y[I+1]+Y[I+2]+Y[I+3]+Y[I+4])/9, 4<=I<=N-4.
Так как в справочниках для линейного девятиточечного сглаживания весовые коэффициенты для крайних точек не приводятся, то возьмём их из нелинейного семиточечного сглаживания [11]:
На снимке видно, что сглаженные точки (зелёные) приблизились к исходной наклонной линии (чёрной), т.е. сглаживание произошло, но не очень точное. Внутри отрезка сглаженные точки "рыщут" зиг-загом около исходной наклонной линии.
В литературе по девятиточечному сглаживанию не редко приводятся формулы нелинейного сглаживания (свёртки, конволюции) равно отстоящих цифровых данных по девяти точкам с весовыми коэффициентами Савицкого-Голея [6][7] (-21, 14, 39, 54, 59, 54, 39, 14, -21)/231:
SY[I]=(-21*Y[I-4]+14*Y[I-3]+39*Y[I-2]+54*Y[I-1]+59*Y[I]+54*Y[I+1]+39*Y[I+2]+14*Y[I+3]-21*Y[I+4])/231, 4<=I<=N-4,
без весовых кэффициентов для крайних точек, поэтому весовые коэффициенты для крайних точек возьмём из нелинейного семиточечного сглаживания [11].
Проверим формулы с этими весовыми коэффициентами на контрольном примере, в котором точки исходной наклонной линии (чёрная) периодически отклонены по оси Y смоделированными "шумами" на +3 и -3 (окружности чёрного цвета):
На снимке видно, что сглаженные точки (зелёные) приблизились к исходной наклонной прямой, т.е. сглаживание произошло, но не очень точное. Внутри отрезка сглаженные точки "рыщут" зиг-загом около исходной наклонной прямой. Видно так же, что нелинейное девятиточечное сглаживание по Савицкому-Голею [6][7] хуже даже линейного сглаживания.
Применим для точек внутри отрезка весовые коэффициенты из колоколообразной функции нормального распределения Гаусса [4]:
S[I]=(1/SQR(2*Pi))*EXP(-(I-(N-1)/2)^2/2), где N - количество точек в окне, 0<=I<=8 - номер точки в окне, а Pi=3.1415, т.е. весовые коэффициенты:
(0.00013, 0.00443, 0.05399, 0.24197, 0.39894, 0.24197, 0.05399, 0.00443, 0.00013),
SY[I]=0.00013*Y[I-4]+0.00443*Y[I-3]+0.05399*Y[I-2]+0.24197*Y[I-1]+0.39894**Y[I]+0.24197*Y[I+1]+0.05399*Y[I+2]+0.00443*Y[I+3]+0.00013*Y[I+4], 4<=I<=N-4.
На снимке видно, что сглаженные точки почти точно попали в исходную наклонную линию, т.е. сглаживание с весовыми коэффициентами из колоколообразной функции нормального распределения Гаусса оказалось лучше и сглаживания по Савицкому-Голею и сглаживания методом "простого среднего (арифметического)".
Увеличим амплитуду шумов в 10 раз с +/-3 до +/-30:
На снимке видно, что амплитуда шумов в сглаженных точках стала приблизительно такой же, как и в сглаживании по Савицкому-Голею с амплитудой шумов +/-3, т.е. сглаживание с весовыми коэффициентами из колоколообразной функции нормального распределения Гаусса сглаживает приблизительно в 10 раз (на порядок) лучше, чем сглаживание по Савицкому-Голею.
Проверим девятиточечное нелинейное сглаживание зашумлённой ломанной второго порядка (параболы) по Савицкому-Голею [6][7]:
На снимке видно, что сглаженные точки "рыщут" зиг-загом около исходной ломанной второго порядка (параболы).
Проверим новое девятиточечное нелинейное сглаживание той же зашумлённой ломанной второго порядка (параболы):
На снимке видно, что новое девятиточечное нелинейное сглаживание зашумлённой ломанной второго порядка (параболы) тоже оказалось лучше, чем по Савицкому-Голею [6][7].
Проверим нелинейное сглаживание зашумлённой ломанной третьего порядка (кубической параболы) по Савицкому-Голею [6][7]:
На снимке видно, что сглаженные точки "рыщут" зиг-загом около исходной ломанной третьего порядка (кубической параболы).
Проверим новое девятиточечнное нелинейное сглаживание той же зашумлённой ломанной третьего порядка (кубической параболы):
На снимке видно, что новое девятиточечное нелинейное сглаживание зашумлённой ломанной третьего порядка (кубической параболы) тоже оказалось лучше, чем по Савицкому-Голею [6][7].
Подобным образом можно сделать нелинейное сглаживание с весовыми коэффициентами из колоколообразной функции нормального распределения Гаусса для любого нечётного количества точек (N) в сглаживающем окне, при этом весовые коэффициенты в формулах для крайних точек берутся из сглаживания для N-2 точек.
Инструкция по запуску программы:
1. Предварительно скачивается DOSBox 0.74-3. Ярлык DOSBox 0.74-3 помещается на рабочий стол.
2. Borland TurboBasic и программа сглаживания скачиваются и помещаются в одну папку.
3. Файл Borland TurboBasic'а TB.EXE перетаскивается на ярлык DOSBox 0.74-3 и запускается автоматически.
4. В меню TurboBasic'а выбирается и запускается программа сглаживания по девяти точкам.
Литература:
1. Д ь я к о н о в В. П. Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ: Справочник. — М.: Наука. Гл. ред. физ.-мат. лит., 1989. — 240 с. — ISBN 5-02-014530-0. Файл: diakonovvp8.djvu
3. Весовое сглаживание навигационных данных с переменными интервалами измерений. Васьков А. С., Мельник В. Г. Государственный морской университет имени адмирала Ф.Ф.Ушакова. Новороссийск. Интернет-журнал «НАУКОВЕДЕНИЕ». Выпуск 4 (23), июль – август 2014. Таблица 1.
4. Нормальное распределение. Википедия.
5. Оконное преобразование Фурье. Википедия.
6. Фильтр Савицкого-Голея. Википедия.
8. Сглаживание по двум точкам. Куликов А. С.
9. Сглаживание по трём точкам. Куликов А. С.
10. Сглаживание по пяти точкам. Куликов А. С.
11. Слаживание по семи точкам. Куликов А. С.
Приложения:
1. Скачать Borland TurboBasic 1.1:
https://andserkul.narod.ru/TB.rar
2. Скачать программу сглаживания и построения графиков в TurboBasic'е:
https://disk.yandex.ru/d/VmSQ4gzqEipqEA
Версия 2025.11.14, исправленная и дополненная.