....................."Вершины понизятся, а низины повысятся", - Исус Христос.
Сглаживание по пяти точкам является свёрткой (конволюцией) исходных числовых данных с пятичленным многочленом (полиномом), называемым окном [5]. Окно задаётся формулой и пятью весовыми коэффициентами.
Линейное (простое среднее (арифметическое), медианное) и нелинейное сглаживание производятся по одним и тем же формулам и алгоритмам, меняются только весовые коэффициенты в сглаживающем окне (операторе [8]). При линейном сглаживании все весовые коэфффициенты в сглаживающем окне равны и сглаживающее окно прямоугольное. При нелинейном сглаживании весовые коэффициенты в сглаживающем окне не равны и сглаживающее окно может быть треугольным, как у Ханна [5] при N=5, квадратичным (параболическим), как у Савицкого-Голея [6], экспоненциальным, как в примере в статье [8], одним из приближений колоколообразной функции нормального распределения Гаусса [4], как у Ханна, Хэннинга, Блэкмана, Кайзера и др. [5], или прямо колоколообразной функцией нормального распределения Гаусса.
Коэффициенты у Савицкого-Голея берутся из перевёрнутой параболы, которая более похожа на колоколообразную функцию нормального распределения Гаусса, чем треугольная функция Ханна, но не имеет колоколообразности и поэтому результаты с коэффициенами Савицкого-Голея хуже, чем с коэффициентами из колоколообразной функции нормального распределения Гаусса.
В литературе по пятиточечному сглаживанию не редко приводятся формулы линейного сглаживания (свёртки, конволюции) равно отстоящих цифровых данных по пяти точкам методом "простого среднего (арифметического)" [1]:
SmoothedY[0] = SY[0] = (3*Y[0]+2*Y[1]+Y[2]-Y[4])/5,
SY[1] = (4*Y[0]+3*Y[1]+2*Y[2]+Y[3])/10,
SY[I] = (Y[I-2]+Y[I-1])+Y[I]+Y[I+1]+Y[I+2])/5, 2<=I<=N-2,
SY[N-1] = (Y[N-3]+2*Y[N-2]+3*Y[N-1]+4*Y[N])/10,
SY[N] = (-Y[N-4]+Y[N-2]+2*Y[N-1]+3*Y[N])/5.
Проверим формулы с этими весовыми коэффициентами на контрольном примере, в котором точки исходной наклонной линии (чёрная) периодически отклонены по оси Y смоделированными "шумами" на +3 и -3 (окружности чёрного цвета):
На снимке видно, что сглаженные точки (зелёные) приблизились к исходной наклонной прямой линии (чёрной), т.е. сглаживание произошло, но не очень точное. Кроме этого, из каждых пяти точек внутри отрезка три нечётные точки даже "перетягивают" сглаживаемую точку на свою сторону от исходной наклонной прямой линии, от этого сглаженная ломанная линия "рыщет" зиг-загом около исходной наклонной прямой линии.
Более точными, чем линейное, являются нелинейные сглаживания, при которых значения точек в сглаживающем окне берутся или прямо из колоколообразной функции нормального распределения Гаусса [4]:
S[I]=(1/SQR(2*Pi))*EXP(-(I-2)^2/2), где I - номер точки в окне, а Pi=3.1415,
или из одного из её приближений: Ханна (Хэннинга), Хэмминга, Блэкмана, Кайзера [5] или Савицкого-Голея [6][7]. В работе [3], в таблице 1, в строке "5 (судовождение)" приведены коэффициенты (1,4,6,4,1)/16, которые являются одним из множества возможных округлений до целых чисел колоколообразной функции нормального распределения Гаусса [4]. Например, округление (1,5,8,5,1)/20 более точное, но возможны и ещё более точные округления и даже нецелочисленные округления.
Применим нелинейные весовые коэффициенты (1,4,6,4,1)/16 из работы [3] в формуле для точек внутри отрезка:
SY[I] = (Y[I-2]+4*Y[I-1])+6*Y[I]+4*Y[I+1]+Y[I+2])/16, 2<=I<=N-2,
весовые коэффициенты для крайних двух левых и двух правых точек остаются прежними:
На снимке видно, что сглаженные точки внутри отрезка точно попали в исходную наклонную линию. Крайние две левые и две правые точки ("хвосты" простого среднего (арифметического)) остались на прежних местах.
При пятиточечном нелинейном сглаживании весовые коэффициенты для крайних точек можно взять из нелинейного сглаживания для трёх точек [9], при семиточечном сглаживании - из нелинейного сглаживания для пяти точек и т.д.
Применим нелинейные весовые коэффициенты для крайних двух левых и двух правых точек из трёхточечного нелинейного сглаживания [9]:
SY[0]=(3*Y[0]+2*Y[1]-Y[2])/4, т.е. коэффициенты (3,2-1,0,0)/4,
SY[1]=(Y[0]+2*Y[1]+Y[2])/4, т.е. коэффициенты (1,2,1,0,0)/4,
SY[N-1]=(Y[N-4]+2*Y[N-3]+Y[N-2])/4, т.е. коэффициенты (0,0,1,2,1)/4,
SY[N]=(-Y[N-2]+2*Y[N-1]+3*Y[N])/4. т.е. коэффициенты (0,0,-1,2,3)/4.
На снимке видно, что и крайние точки тоже точно попали в исходную наклонную линию ("хвосты" простого среднего (арифметического) исчезли), о чём свидетельствуют круглые числа сглаженных точек.
Проверим линейное сглаживание зашумлённой ломанной линии с отклонениями +1 и -1 по формулам с весовыми коэффициентами для "простого среднего (арифметического)" из справочника Дьяконова [1]:
На снимке видно, что из исходной ломанной с одной вершиной, как у Эвереста, в результате сглаживания получились две вершины, как у Эльбруса.
Проверим нелинейное сглаживание зашумлённой ломанной линии по формулам с весовыми коэффициентами (1,4,6,4,1)/16 из работы [3] с новыми коэффициентами для крайних точек:
На снимке видно, что нелинейное сглаживание с весовыми коэффициентами (1,4,6,4,1)/16 из работы [3] зашумлённой первого порядка (ломанной) оказалось лучше линейного.
Проверим линейное сглаживание зашумлённой ломанной второго порядка (параболы):
Проверим нелинейное сглаживание той же зашумлённой ломанной второго порядка (параболы):
На снимке видно, что нелинейное сглаживание зашумлённой ломанной второго порядка (параболы) нелинейным сглаживанием с весовыми коэффициентами (1,4,6,4,1)/16 из работы [3] оказалось лучше, чем линейным.
Проверим линейное сглаживание зашумлённой ломанной третьего порядка (кубической параболы):
Проверим нелинейное сглаживание той же зашумлённой ломанной третьего порядка (кубической параболы):
На снимке видно, что сглаживание зашумлённой ломанной третьего порядка (кубической параболы) нелинейным сглаживанием с весовыми коэффициентами (1,4,6,4,1)/16 из работы [3] оказалось лучше, чем линейным.
Не все методы нелинейного сглаживания лучше линейного. Как пример, приведём снимки результатов пятиточечного нелинейного сглаживания по Савицкому-Голею с коэффициентами для точек внутри отрезка (-3,12,17,12,-3)/35 [6][7] зашумлённых наклонной прямой и ломанной первого порядка, ломанной второго порядка (параболы) и ломанной третьего порядка (кубической параболы):
На снимке видно, что сглаженные точки приблизились к исходной наклонной прямой, т.е. пятиточечное сглаживание произошло, но хуже даже, чем пятиточечное линейное сглаживание, и приблизительно как в трёхточечном линейном сглаживании. В каждых из пяти точек внутри отрезка две чётные точки "перетягивают" сглаженную точку на свою сторону от исходной наклонной прямой, от чего сглаженные точки "рыщут" зиг-загом около исходной наклонной прямой линии.
А здесь в точке излома (X=5) угол при вершине после сглаживания стал даже ещё острее, чем в исходной ломанной, а сглаженные точки "рыщут" зиг-загом около исходной ломанной.
Здесь сглаженные точки "рыщут" зиг-загом около исходной ломанной второго порядка (параболы).
А здесь сглаженные тоже "рыщут" зиг-загом около ломанной третьего порядка (кубической параболы).
Литература:
1. Д ь я к о н о в В. П. Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ: Справочник. — М.: Наука. Гл. ред. физ.-мат. лит., 1989. — 240 с. — ISBN 5-02-014530-0. Файл: diakonovvp8.djvu
3. Весовое сглаживание навигационных данных с переменными интервалами измерений. Васьков А. С., Мельник В. Г. Государственный морской университет имени адмирала Ф.Ф.Ушакова. Новороссийск. Интернет-журнал «НАУКОВЕДЕНИЕ». Выпуск 4 (23), июль – август 2014. Таблица 1.
4. Нормальное распределение. Википедия.
5. Оконное преобразование Фурье. Википедия.
6. Фильтр Савицкого-Голея. Википедия.
8. Сглаживающий оператор. Пример. Википедия.
9. Сглаживание по двум точкам, исследование. Куликов А. С.
10. Сглаживание по трём точкам, исследование. Куликов А. С.
11. Сглаживание по семи точкам, исследование. Куликов А. С.
12. Сглаживание по девяти точкам, исследование. Куликов А. С.
Приложения:
1. Скачать Borland TurboBasic 1.1:
https://andserkul.narod.ru/TB.rar
2. Скачать программу сглаживания и построения графиков в TurboBasic'е:
https://andserkul.narod.ru/SMOOTH5G.bas
Версия 2025.10.08.