2013-05-18 2 views
2

샘플링 된 데이터 (단 변량)가 있지만 샘플링 프로세스를 구동하는 클록이 정확하지 않습니다. 결과는 30 샘플마다 1 샘플 미만의 임의 미끄럼을 초래합니다. 주파수의 약 1/30은 동일한 데이터에 대해 신뢰할 수있는 샘플을 제공하여 ... 시계 드리프트에 대한 좋은 추정을 가능하게합니다.약간의 시계 드리프트를 수정하기위한 인터폴레이션 알고리즘

샘플링 된 데이터를 보간하여이를 보정하여 저주파수의 고주파수 데이터에 맞춰야합니다. 저주파 샘플을 몇 번 대기 시켜서 '실시간'으로해야합니다.

저는 다양한 보간 알고리즘이 있다는 것을 알고 있습니다. 제가 생각하기에이 스플라인 기반 접근법은이 데이터에 가장 유망 해 보입니다.

저는 파이썬으로 작업 중이며 scipy.interpolate 패키지를 발견했습니다. 작은 타이밍 오류를 수정하기 위해 'stretch'n 샘플을 사용하는 명백한 방법은 없었지만이 패키지를 발견했습니다. 나는 무엇인가 내려다보고 있냐?

적절한 게시 알고리즘 또는 이상적으로는 이러한 종류의 변환을 수행하는 데 필요한 Python 라이브러리 함수에 대한 포인터에 관심이 있습니다. 이것은 SciPy (또는 다른 것)에서 지원됩니까?

UPDATE ...

나는 처음에 보였던 것, 사소한 문제는 내가 처음 생각만큼 간단하지 않습니다 것을 깨닫기 시작하고있다. 나는 스플라인의 순진한 사용만으로 충분할 것이라고 오랫동안 확신하지 못했습니다. 나는 또한 내 문제가 'clock drift'에 대한 언급없이 더 잘 묘사 될 수 있음을 깨달았다 :

하나의 무작위 변수는 두 개의 다른 주파수에서 샘플링된다. 하나는 낮은 값이고 다른 하나는 높은 값이며, 공통 제수는 없다. - 예. 5hz 및 144hz. 두 샘플 속도에서 샘플 0이 동일하다고 가정하면 샘플 1 @ 5hz는 샘플 28 및 29 사이에 떨어집니다. 720hz의 새로운 시리즈를 만들려고합니다. 즉 알려진 모든 데이터 포인트를 "가능한 한 원활하게"맞 춥니 다.

나는 '밖으로의 상자'해결책을 찾아 내기를 희망했었다.

답변

1

프로그래밍 질문을하기 전에 더 근본적인 과학적 질문을 조사해야합니다.

badfastclock을 goodslowclock에 맞게 특정 방정식을 선택하기 전에 드리프트의 특성을 조사해야합니다. 두 시계를 잠깐 실행하고 함께 지점을 살펴 봅니다. 실시간에서 선형으로 멀어지기 때문에 badfastclock이 나쁜가요? 그렇다면, 2 차 방정식이 물체의 중력 가속도를 설명하는 것처럼, 간단한 2 차 방정식은 반 시계 방향 클럭에 적합해야합니다. 즉, 배로스트 클럭이 실시간으로 선형으로 멀어지면 배로스트 클럭을 결정적으로 실시간으로 전환 할 수 있습니다. 그러나 만약 당신이 뛰어 넘기 때문에 badfastclock이 나쁘다면 부드러운 곡선, 심지어는 스플라인 같은 복잡한 부드러운 곡선이 적합하지 않을 것입니다. 데이터를 조작하기 전에 데이터를 이해해야합니다.

+0

와우. 나는이 문제가 내 게시물보다 조금 더 추상적이라는 것을 인정해야한다. 일부 데이터를 조사해야하는 상황에 있습니다. 한 가지 가설은 스플라인이 적합해야한다는 것입니다.이 가능성을 평가하는 데 도움이되는 도구를 찾으려고합니다. 나는 텍스트 북이어야한다고 생각하는 것을 다시 구현해야한다는 분명한 필요성에 좌절감을 느낀다. 나는 N +/- d를 통해 다시 해석하기를 원하는 N 개의 균일 한 샘플을 가지고 있는데, 여기서 d <1 샘플입니다. spline fit에 필요한 가정은 내 문제에 꼭 맞아야합니다 ...확인해야 할 것이 많아서 바퀴를 다시 발명하기를 꺼려합니다. – aSteve

+0

데이터에 대한 스플라인의 적합도에 대한 통계적 테스트가 필요합니다. 내 계량 경제학 수업 (그들이 스플라인에 대해 가르치는 곳이 아닌 ...) 이후로 잠시 있었지만, OLS의 맥락 밖에서도 R^2로 무언가를 할 수 있다고 생각합니다. 또한 언어가 Python이 아니라 Stata이지만 구현에 대해 걱정할 필요가없는 경우에도 유용 할 수 있습니다. http://data.princeton.edu/eco572/smoothing2.html – wkschwartz

+0

의견을 보내 주셔서 감사합니다. 나는 스플라인이 올바른 접근법이라는 것을 지금보다 덜 확신하고있다. 나는 이것을 좀 더 생각해 보았을 때 좀 더 자세한 내용을 추가했다. – aSteve

0

업데이트 된 질문에 따라 데이터가 원활하면 시간 추적에 모든 샘플을 배치하고 스파 스 격자 (시간)에 보간하면됩니다.

관련 문제