2010-11-29 3 views
4

아래 그림의 상단에서 시간에 따라 변화하는 값 (y 축) (x 축)을 볼 수 있습니다.두 데이터 세트 간의 보간 오차 최소화

이와 같이 우리는 서로 다른 예측할 수없는 시간에 값을 샘플링하고, 빨강과 파랑으로 표시된 두 데이터 세트 사이에서 샘플링을 번갈아 수행합니다.

언제든지 값을 계산할 때 빨강 및 파랑 데이터 세트가 비슷한 값을 반환 할 것으로 예상됩니다. 그러나 세 개의 작은 상자에 표시된 바와 같이 이것은 그렇지 않습니다. 시간이 지남에 따라 각 데이터 세트의 값 (빨간색과 파란색)은 발산 한 다음 원래 값에 대해 수렴합니다.

diagrams showing the error in interpolation

처음에 다음 I I는 Catmull의 롬 보간을 사용하려고하는 값을 구하는 선형 보간법을 사용 하였다. 전자는 값이 서로 가깝게 된 다음 각 데이터 포인트 사이에 표류합니다. 후자는 더 가깝게 유지되지만 평균 오차가 더 큰 값을 생성합니다.

누구나 다른 전략이나 보간법을 제안 할 수 있습니까? (아마도 각 데이터 세트에서 더 많은 샘플 포인트를 사용하여)?

+0

그것은 가치가있다 나는 일관성을 위해 정확성을 희생 할 준비가되어 있다고 지적했다. 선형 및 Catmull-Rom 보간법은 샘플 포인트였던 시간 값을 요청하면 샘플링 된 정확한 값을 반환하도록 보장합니다. 나는이 보증을 요구하지 않는다. – dukedave

+0

이것이 도움이되는지 조금 불확실하지만 [유사 무작위 추출] (http://en.wikipedia.org/wiki/Low-discrepancy_sequence)에 대해 알고 있습니까? 일반적으로 무작위 표본 추출을 사용하는 확률 분포를 통합하는 것과 같은 상황에서 매우 유용 할 수 있습니다. –

답변

1

시도해보십시오. B-splines : Catmull-Rom 보간 (데이터 점을 통과), B 스플라인이 부드럽게 처리됩니다.균일 한 간격 데이터에 대한 예를 들어
(아닌 경우) 보간 레드/블루 곡선은 적색/청색 데이터 포인트의 간격에 따라 물론

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

, 그렇게 완벽하게 일치하지 않을 수 있습니다.

2

저는 여러분이 묻는 것은 기초가되는 샘플링 된 프로세스에 대한 추가 지식 없이는 곧장 대답 할 수없는 질문이라고 생각합니다. 본질적으로 샘플 간의 함수 값은 이 될 수 있으므로이라는 것이므로 두 샘플 배열의 인터폴레이션의 수렴을 보장 할 방법이 없다고 생각합니다.

그렇다면 기본 프로세스에 대한 사전 지식이있는 경우 여러 보간 방법 중에서 선택하여 오류를 최소화 할 수 있습니다. 예를 들어, 드래그 력을 날개 속도의 함수로 측정하면 관계가 정사각형임을 알 수 있습니다 (a * V^2). 그러면 2 차항의 다항식 피팅을 선택할 수 있고 두 계열의 보간법간에 꽤 좋은 일치를 얻을 수 있습니다.

+0

감사합니다 ysap, 값은 실제로 위치 벡터의 구성 요소가 될 것이므로 연속 함수입니다. 따라서 Catmull-Rom은 실제로 두 데이터 세트 사이에 설명 된 오류를 생성한다는 점을 제외하고는 매우 우수한 보간 방법입니다. – dukedave

1

Introduction to Catmull-Rom Splines에이 보간 작업에 Catmull-Rom을 사용하지 말 것을 제안합니다. 캐트 멀 롬 스플라인의 기능

하나는 지정된 곡선 컨트롤 의 모든 사항을 전달할 것입니다 - 이것은 모든 유형 스플라인의 의 사실이 아니다.

는 정의에 의해 당신의 빨간 보간 곡선은 모든 붉은 데이터 포인트를 통과하고 당신의 블루 보간 곡선은 모든 파란색 점을 통과하게된다. 따라서 두 데이터 세트에 가장 적합하지 않습니다.

경계 조건을 변경하고 의 데이터 포인트를 모두slides과 같이 조각 별 근사를위한 데이터 세트로 사용할 수 있습니다.

+0

모든 제어점을 통과하지 못하는 스플라인 유형을 알고 계십니까?또한 슬라이드 링크 덕분에 두 세트가 반드시 동일한 데이터 세트에서 올 수있는 것은 아니므로 비교할 수는 없으므로 문제를 설명하기 위해 동일하다고 생각하는 것이 유용합니다. – dukedave

0

원래의 연속 함수를 샘플링 할 때 샘플링 빈도는 Nyquist-Shannon sampling theorem을 준수해야합니다. 그렇지 않으면 샘플링 프로세스에서 오류 (앨리어싱라고도 함)가 발생합니다. 두 데이터 집합에서 서로 다른 오류는 보간 할 때 다른 값을 갖습니다.

따라서, 당신은 가장 높은 주파수를 원래의 함수의 B을 알 필요가 다음 주파수 이상 2B로 샘플을 수집합니다. 함수의 주파수가 너무 높아서 샘플을 빨리 샘플링 할 수 없다면 적어도 샘플링 전에 필터를 제거해야합니다.

1

ysap에 동의합니다.이 질문에 대한 답변을 기대할 수 없습니다. 모델 역학에 따라 더 나은 보간 방법이있을 수 있습니다. ysap처럼 알려진 경우 기본 역학을 이용하는 방법을 권장합니다.

언제든지 값을 계산, 우리가 기대 : 레드/블루 샘플에 대해서는

, 나는 당신이 샘플링 및 보간 데이터 세트에 대한 좋은 관찰을 한 나는 것을 원래 기대를 도전 할 것이라고 생각 빨간색과 파란색 데이터 세트는 모두 비슷한 값을 반환합니다.

나는 이것을 기대하지 않습니다. 완벽하게 보간 할 수 없다고 가정하면 (특히 보간 오류가 샘플의 오류와 비교할 때 크다면), 샘플 지점에서 가장 긴 오류 (가장 긴 오류)를 나타내는 연속 오류 기능이있을 것입니다. 따라서 샘플 포인트가 다른 두 개의 데이터 세트는 빨간색 샘플 포인트에서 멀리 떨어져있는 포인트가 파란색 샘플 포인트에 가까울 수 있으며 그 반대의 경우도 마찬가지이므로 표시되는 비헤이비어를 표시해야합니다. 포인트가 엇갈린 경우, 이것은 사실 일 것입니다. 따라서 나는 당신이 보여주는 것을 기대할 것입니다. :

각 데이터 세트 (적색과 청색)의 값은 시간이 지남에 따라 발산 한 다음 원래 값에 대해 수렴하는 것처럼 보입니다.

(당신이 주파수 내용을 제외하고 기본 역학에 대한 정보를()하지 않는 경우, 샘플링에 자코모의 포인트는 열쇠 - 그러나, 당신은 나이 퀴 스트 아래 정보를보고하는 경우 보간 할 필요가 없습니다.)