- •Цифровая обработка сигналов
- •Тема 14. Аппроксимация сигналов и функций
- •Содержание
- •Введение
- •14.1. Приближение сигналов рядами тейлора [39]
- •14.2. Интерполяция и экстраполяция сигналов [39, 55].
- •14.3. Сплайновая интерполяция [39].
- •14.4. Спектральный метод интерполяции [16, 39].
- •14.5. Децимация и интерполяция цифровых сигналов [43]
- •14.6. Методика аппроксимации эмпирических данных [41].
- •Литература
14.1. Приближение сигналов рядами тейлора [39]
Разложение функций в ряд Тейлора явилось одним из первых методов приближения функций в окрестностях точек х0:
f(x) f(x0) + (x-x0) + (x-x0)2 + … + (x-x0)n.
f(x) f(x0) +(x-x0)i.
При разложении функции в окрестностях точки х0=0 ряд Тейлора принято называть рядом Маклорена.
Первый член ряда f(x0) представляет собой отсчет функции в точке х0 и грубое приближение к значениям функции в окрестностях этой точки. Остальные члены ряда детализируют значения функции в окрестностях точки х0 по информации в соседних точках и тем точнее приближают сумму ряда к значениям функции, чем больше членов суммы участвуют в приближении, с расширением интервала окрестностей точного приближения. Наглядно это можно видеть на примере двух функций, приведенном на рис. 14.1.1 (с усечением отображения членов рядов f2(x) и f4(x)).
Рис. 14.1.1. Примеры разложения функций в ряд Маклорена.
Приближение функций рядом Тейлора применяется, в основном, для непрерывных гладких функций в локальных интервалах задания. Для разрывных и периодически повторяющихся функций использовать его практически невозможно, равно как и для непрерывных не дифференцируемых функций. Операция дифференцирования тоже может быть далеко не простой, а получаемые ряды могут сходиться очень медленно.
14.2. Интерполяция и экстраполяция сигналов [39, 55].
Полиномиальная интерполяция. Одним из основных типов точечной аппроксимации является интерполирование. Сущность его заключается в том, что функции yi = s(xi) сопоставляется интерполяционный многочлен
f(x) = а0 + а1х + а2х2 + … + anxn =ai·xi, (14.2.1)
принимающий в точках xi те же значения yi, что и функция f(x). Для выполнения полиномиальной интерполяции достаточно по выражению (14.2.1) составить систему линейных уравнений для n узловых точек и определить n значений коэффициентов ai.
При N точках функции yi максимальная степень интерполяционного многочлена n=N-1, и в этом случае говорят о глобальной интерполяции с прохождением f(x) через все значения точек yi. Однако в этом случае при большом количестве узлов получается очень высокая степень многочлена. Кроме того, экспериментальные табличные данные могут содержать ошибки измерений, а глобальная интерполяция повторит все допущенные при измерениях ошибки. Для исключения этого фактора стараются подобрать аппроксимирующий многочлен как можно меньшей степени (как правило, n=1, 2, 3), график которого проходит близко от узловых точек. На практике мерой отклонения многочлена f(x) от заданной функции на множестве точек (xi,yi) является величина среднеквадратичного приближения 2 = i(f(xi)-yi)2, минимальное значение которой обеспечивается подбором коэффициентов ai.
Пример выполнения глобальной интерполяции приведен на рис.14.2.1. Равномерной дискретизации данных для интерполяции не требуется. Максимальная степень полинома на практике обычно устанавливается не более 8-10, а большие массивы данных интерполируются последовательными локальными частями.
Рис. 14.2.1. Интерполяция данных.
f(x)лин = а0 + а1х. f(x)кв = а0+а1х+а2х2.
При линейной интерполяции вычисления дополнительных точек выполняются по линейной зависимости. Графически это означает простое соединение узловых точек отрезками прямых. В системе Mathcad для этого используется функция linterp(X,Y,x), где X и Y – вектора узловых точек. Функция linterp(X,Y,x) возвращает значение функции при её линейной интерполяции по заданным аргументам х. При небольшом числе узловых точек (менее 10) линейная интерполяция оказывается довольно грубой. Для целей экстраполяции функция linterp не предназначена.
Для практического использования более удобны формулы аппроксимации, не требующие предварительного определения коэффициентов аппроксимирующих полиномов. К числу таких формул относится интерполяционных многочлен по Лагранжу /40/. При аппроксимации функции у(х) многочленом n-й степени Y(x):
Y(x) = + +…
…+ . (14.2.2)
Пример интерполяции по Лагранжу приведен на рис. 14.2.2.
Рис. 14.2.2. Интерполяция по Лагранжу.
Метод построения кривых был предложен де Кастелье в 1959 году и основан на разбиении отрезков, соединяющих исходные точки в отношении t, а затем в рекурсивном повторении этого процесса для полученных отрезков:
(t) = (1-t)(t) + t(t), (14.2.3)
где нижний индекс - номер точки, верхний индекс - уровень разбиения. Уравнение кривой n-ого порядка задается уравнением: P(t) = (t).
Рис. 14.2.3.
Для каждого t[0, 1] определим точку :
= (1-t)P0 + tP1, = (1-t)P1 + tP2,
= (1-t) + t=(1-t)2P0(t)+2t(1-t)P1(t)+t2P2(t),
и тем самым получим кривую второго порядка.
Рис. 14.2.3.
=(1-t)P0+tP1, =(1-t)P1+tP2, =(1-t)P2+tP3,
=(1-t)+t=(1-t)2P0(t)+2t(1-t)P1(t)+t2P2(t), =(1-t)+t=(1-t)2P1(t)+2t(1-t)P2(t)+t2P3(t),
= (1-t) + t=(1-t)3P0(t)+3t(1-t)2P1(t)+ 3t2(1-t)P2(t)+t3P3(t).
Общая аналитическая запись для кривых Безье по N+1 опорной точке:
PN(t) = Pi , = ti (1-t)N-i,
= N!/(i! (N-i)!) – биномиальные коэффициенты.
Кривые Безье всегда проходят через начальную P0 и конечную PN точки. Если рассматривать опорные точки в противоположном порядке, то форма кривой не изменяется. Если опорные точки лежат на одной прямой, то кривая Безье вырождается в отрезок, соединяющий эти точки. Степень многочлена, представляющего кривую в аналитическом виде, на 1 меньше числа точек.