Минимизация ошибки интерполяции между двумя наборами данных

StackOverflow https://stackoverflow.com/questions/4307051

Вопрос

В верхней части диаграммы ниже мы можем видеть некоторое значение (ось Y), изменяющееся со временем (ось X).

Как это произошло, мы отбираем отбор ценности в разные и непредсказуемые времена, а также мы чередуемся от дискретизации между двумя наборами данных, обозначенными красным и синим.

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

diagrams showing the error in interpolation

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

Может ли кто -нибудь предложить другую стратегию или метод интерполяции, которая обеспечит большее сглаживание (возможно, с помощью большего количества точек выборки из каждого набора данных)?

Это было полезно?

Решение

Пытаться B-splines.: Интерполаты Catmull-ROM (проходит через точки данных), B-SPLINE делает сглаживание.
Например, для равномерных данных (не в вашем случае)

Bspline(t) = (data(t-1) + 4*data(t) + data(t+1)) / 6

Конечно, интерполированные красные / голубые кривые зависят от интерпанции красных / синих точек данных, поэтому не может совпадать идеально.

Другие советы

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

Тем не менее, если у вас есть предварительное знание основного процесса, вы можете выбрать один из нескольких методов интерполяции для минимизации ошибок. Например, если вы измеряете силу сопротивления как функцию скорости крыла, вы знаете, что отношение - это квадрат (A * V ^ 2). Затем вы можете выбрать полиномиальную установку 2-го порядка и иметь довольно хорошее совпадение между интерполяциями двух серий.

Я хотел бы процитировать Введение в Catmull-Rom Splines Чтобы предложить не использовать Catmull-Rom для этой задачи интерполяции.

Одной из особенностей SPLED CATMULL-ROM состоит в том, что указанная кривая пройдет через все контрольные точки - это не относится к всем типам сплайнов.

По определению ваша красная интерполированная кривая пройдет через все Красные точки данных и ваша синяя интерполированная кривая пройдет через все синие точки. Поэтому вы не получите наилучшего соответствия обоим наборам данных.

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

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

Что касается образцов красного/синего, я думаю, что вы сделали хорошее наблюдение за выборочными и интерполированными наборами данных, и я бы бросил вызов вашему первоначальному ожиданию, что:

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

Я не ожидаю этого. Если вы предполагаете, что вы не можете полностью интерполировать - и, в частности, если ошибка интерполяции большой по сравнению с ошибками в образцах - то, что вы обязательно имеете непрерывную функцию ошибки, которая демонстрирует наибольшие ошибки, длинные (время) из ваших точек выборки. Поэтому два набора данных, которые имеют различные точки образца, должны проявлять поведение, которое вы видите, потому что точки, которые находятся далеко (во времени) из красных точек образца, могут быть близки (во времени) в голубые точки образца и наоборот - если в шахгамере Это обязательно будет правдой. Таким образом, я бы ожидал, что вы показываете, что:

Просматривается со временем, значения из каждого набора данных (красный и синий) появятся, а затем сходятся к исходному значению.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top