информационный портал по вопросам биомедицинской инженерии

Сейчас на сайте 0 пользователей и 0 гостей.

Вход в систему

Недавно присоединились

  • Абдусаламов Магом...
  • Комиссаров Мэлор ...
  • Олег Матвеевич
  • вусенко алена ива...
  • Краснозобов Жигер...
аватар: Карпова Светлана Александровна

Интерполяция - способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.
Одномерная интерполяция
Основным типом одномерной интерполяции в MATLAB - является полиномиальная интерполяция.
Полиномиальная интерполяция.
Функция interp1 осуществляет одномерную интерполяцию – важную операцию в области анализа данных и аппроксимации кривых. Эта функция использует полиномиальные методы, аппроксимируя имеющийся массив данных полиномиальными функциями и вычисляя соответствующие функции на заданных (желаемых) точках. В наиболее общей форме эта функция имеет вид yi = interp1(x, y, xi, method), где y есть вектор, содержащий значения функции; x – вектор такой же длины, содержащий те точки (значения аргумента), в которых заданы значения y; вектор xi содержит те точки, в которых мы хотим найти значения вектора y путем интерполяции; method – дополнительная строка, задающая метод интерполяции. Имеются следующие возможности для выбора метода:
Ступенчатая интерполяция (method = 'nearest'). Этот метод приравнивает значение функции в интерполируемой точке к ее значению в ближайшей существующей точке имеющихся данных.
Линейная интерполяция (method = 'linear'). Этот метод аппроксимирует функцию между любыми двумя существующими соседними значениями как линейную функцию, возвращает соответствующее значение для точки в xi (метод используется по умолчанию).
Интерполяция кубическими сплайнами (method = 'spline'). Этот метод аппроксимирует интерполируемую функцию между любыми двумя соседними значениями при помощи кубических функций, и использует сплайны для осуществления интерполяции.
Кубическая интерполяция (method = 'pchip' или 'cubic'). Эти методы идентичны. Они используют кусочную кубическую Эрмитову аппроксимацию и сохраняют монотонность и форму данных. Если какой-либо из элементов вектора xi находится вне интервала, заданного вектором x, то выбранный метод интерполяции используется также и для экстраполяции. Как альтернатива, функция yi = interp1(x, y, xi, method, extrapval) заменяет экстраполированные значения теми, которые заданы вектором extrapval. Для последнего часто используется нечисловое значение NaN. Все методы работают на неравномерной сетке значений вектора x.
Двумерная интерполяция.
Функция interp2 осуществляет двумерную интерполяцию - важную операцию при обработке изображений и графического представления данных (рисунок 1). В наиболее общей форме эта команда имеет вид: ZI = interp2(X, Y, Z, XI, YI, method), где Z есть прямоугольный массив, содержащий значения двумерной функции; X и Y являются массивами одинаковых размеров, содержащие точки в которых заданы значения двумерной функции; XI и YI есть матрицы, содержащие точки интерполяции (то есть промежуточные точки, в которых нужно вычислить значения функции); method – строка, определяющая метод интерполяции.

 
Рисунок 1 – Двумерная интерполяция.

В случае двумерной интерполяции возможны три различных метода (рисунок 2):
Ступенчатая интерполяция (method ='nearest').
Этот метод дает кусочно-постоянную поверхность на области значений. Значение функции в интерполируемой точке равно значению функции в ближайшей заданной точке. Билинейная интерполяция (method = 'linear').
Метод обеспечивает аппроксимацию данных при помощи билинейной поверхности (плоскости) на множестве заданных значений двумерной функции. Значение в точке интерполяции является комбинацией значений четырех ближайших точек. Данный метод можно считать «кусочно-билинейным»; он быстрее и требует меньше памяти, чем бикубическая интерполяция.
Бикубическая интерполяция (method = 'cubic'). Данный метод аппроксимирует поверхность при помощи бикубических поверхностей. Значение в точке интерполяции является комбинацией значений в шестнадцати ближайших точках. Метод обеспечивает значительно более гладкую поверхность по сравнению с билинейной интерполяцией. Это может быть ключевым преимуществом в приложениях типа обработки изображений. Все эти методы требуют, чтобы X и Y были монотонными, то есть или всегда возрастающими или всегда убывающими от точки к точке. Эти матрицы следует сформировать с использованием функции meshgrid, или же, в противном случае, нужно убедиться, что «схема» точек имитирует сетку, полученную функцией meshgrid. Перед интерполяцией, каждый из указанных методов автоматически отображает входные данные в равномерно распределенную сетку.

Рисунок 2 - Сравнения методов двумерной интерполяции.

Также сравним линии уровней данных поверхностей, построенных при помощи специальной функции contour (рисунок 3).
                        
Рисунок 3 – Сравнение контуров.
 
Бикубический метод производит обычно более гладкие контуры. Для некоторых приложений, метод типа ступенчатой интерполяции может быть более предпочтительным, так как он не «производит» никаких «новых» результатов наблюдений.

Источники:
1. http://dok.opredelim.com
2. http://www.scankiev.com
3.http://fb.ru

Комментарии