두 시계열을 간격과 다른 타임베이스와 연관시키는 방법?


10

내가 물었다 이 질문 에 StackOverflow에 걸쳐, 여기를 물어 추천되었다.


나는 서로 다른 타임베이스 (샘플링 시간 동안 약간의 크리프와 함께 다른 시간에 시작된 클럭)를 가지고 있으며 다른 크기의 많은 간격을 포함하고 (분리에 대한 쓰기와 관련된 지연으로 인해) 두 개의 3D 가속도계 데이터 시리즈가 있습니다. 플래시 장치).

내가 사용하는 가속도계는 저렴한 GCDC X250-2 입니다. 가속도계를 최대 게인으로 실행하고 있으므로 데이터의 노이즈 플로어가 상당히 높습니다.

시계열은 각각 약 2 백만 개의 데이터 포인트 (512 샘플 / 초에서 1 시간 이상)를 가지며 약 500 개의 관심 이벤트를 포함하며, 여기서 일반적인 이벤트는 100-150 샘플 (각 200-300ms)에 이릅니다. 이러한 많은 이벤트는 플래시 쓰기 중 데이터 중단의 영향을받습니다.

따라서 데이터는 깨끗하지 않으며 매우 예쁘지 않습니다. 그러나 내 시선 검사에는 관심있는 정보가 명확하게 포함되어 있습니다. 필요한 경우 플롯을 게시 할 수 있습니다.

가속도계는 비슷한 환경에 있지만 적당히 결합되어있어 각 가속도계에서 어떤 이벤트가 일치하는지 눈으로 알 수 있지만 소프트웨어에서 지금까지 실패했습니다. 물리적 한계로 인해 장치가 서로 다른 방향으로 장착되어 축이 일치하지 않지만 가능한 한 직각에 가깝습니다. 예를 들어, 3 축 가속도계 A 및 B의 경우 + Ax는 -By (위쪽 아래)에, + Az는 -Bx (왼쪽 오른쪽)에, + Ay는 -Bz (앞뒤)에 매핑됩니다. .

나의 첫 번째 목표는 세로 축의 충격 이벤트를 상관시키는 것이지만 결국 a) 축 매핑을 자동으로 감지하고 b) 매핑 된 에이스의 활동을 상관 시키며 c) 두 가속도계 간의 동작 차이 (예 : 비틀림)를 추출하려고합니다. 또는 구부림).

시계열 데이터의 특성상 파이썬의 numpy.correlate ()를 사용할 수 없습니다. 나는 또한 R 's Zoo 패키지를 보았지만 그것에 진전하지 않았습니다. 도움을 얻기 위해 여러 가지 신호 분석 분야를 살펴 봤지만 진전이 없었습니다.

누구나 내가 할 수있는 일이나 연구해야 할 접근법에 대한 단서가 있습니까?

2011 년 2 월 28 일 업데이트 : 여기 에 데이터의 예를 보여주는 플롯이 추가되었습니다 .


1
@BobC, 중재자 중 한 명이 게시물을이 사이트로 마이그레이션 할 수 있습니다. 가장 합리적 일 것입니다. 기술적 질문에 관해서는, 우선 FFT를 사용하여 상관 관계를 수행하고 있습니까? 절반 정도의 컴퓨터에서 2 백만 개의 데이터 포인트에 적합해야합니다. 신호 대 잡음비는 합리적으로 높아 지므로 비즈니스에 종사해야합니다. 빠르고 더러운 컷은 마지막으로 사용 가능한 샘플 또는 0으로 누락 된 데이터를 채우는 것입니다. 샘플링 간격 차이의 크립은 처리해야 할 데이터 중 가장 까다로운 "기능"일 수 있습니다.
추기경

@ cardinal : 실제로 FFT를 시도했지만 결과적으로 쓰레기를 얻었습니다. 데이터에서 쉽게 볼 수있는 '흥미로운'기능은 FFT의 노이즈와 구별 할 수 없습니다. 그러나 전체 데이터 세트에 대해서만 FFT를 수행했습니다. 아마도 이동 창 FFT는 더 나은 결과를 제공하지만 계산을 효율적으로 구현하는 방법을 아직 찾지 못했습니다. Wavelet 변환이 도움이 될 것으로 생각되지만 익숙하지는 않지만 천천히 배우고 있습니다.
BobC

1
@BobC, 내가 의미했던 것은 상관 관계를 계산하기 위해 FFT 기반 구현을 고려 했습니까? 직접 컨벌루션은 이지만 FFT 기반 구현은이 O ( n log n )를 줄여 실현 가능합니다. 2 백만 개의 데이터 포인트가있는 FFT 자체를 살펴보면 주파수 분해능이 매우 높아집니다. 모든 샘플링 크리프 및 기타 재료는 주파수별로 신호를 씻어냅니다. 그러나 신호를 노이즈에서 제거하기 위해 많은 빈에 집계 할 수 있어야합니다. Welch 접근 방식 또는 사용자 정의 윈도우 기술과 같은 것. O(n2)O(nlogn)
추기경

@BobC, 내 머리 꼭대기에서, 겹침 및 추가 또는 겹침 및 저장 알고리즘의 일부 변형이 슬라이딩 창 FFT를 수행하는 데 사용될 수있는 것처럼 보입니다 . 창 내에서 샘플을 슬라이드하면 위상이 변하기 때문에 왼쪽 끝에서 "떨어져있는"샘플과 오른쪽 끝에서 "오래 들어온"샘플 만 보정하면됩니다.
추기경

안녕하세요, 비슷한 질문이 있습니다. 두 개의 시계열이 있습니다. 각각은 값에 해당하는 첫 번째 열과 시간 차이에 해당하는 두 번째 열이있는 행렬로 표시됩니다 (이전 값 이후)이 두 행렬 사이의 상관 관계는 어떻게 찾습니까? xcorr2 ()을 시도했지만 옳지 않은 것 같고 xcorr을 수행하면 고려할 값만으로 상관 관계를 계산하지만 시간을 고려하고 싶습니다. 여기 정말 혼란스러워 FFT가 도움이 될까요? 내가 그것에 대해 어떻게 제안하겠습니까?

답변:


12

문제는 불규칙적으로 샘플링 된 2 개의 시계열 (1 차원 확률 론적 프로세스) 사이의 상관 관계를 계산하고 이를 최대 상관 된 시간 오프셋 ( "위상차")을 찾는 데 사용하는 것입니다.

시계열 데이터는 체계적으로 (정기 시간 간격으로) 수집되는 것으로 가정되기 때문에이 문제는 일반적으로 시계열 분석에서 해결되지 않습니다. 오히려 시계열의 다차원 일반화와 관련된 지형 통계학 의 주입니다 . 전형적인 지질 통계 데이터 세트는 불규칙한 간격으로 지질 샘플을 측정하는 것으로 구성됩니다.

간격이 불규칙하면 한 쌍의 위치 사이의 거리가 달라집니다. 두 거리가 같을 수는 없습니다. 지리 통계학은 경험적 variogram으로 이것을 극복합니다 . 이것의 "전형적인"(종종 평균 또는 중앙값) 값을 계산한다 고마웠다 "semivariance"- 여기서 Z ( P은 ) 지점에서의 측정 값을 나타내고, Ppq 사이의 거리는 "lag"라 불리는 간격 내에 놓 이도록 제한됩니다. 우리가 프로세스 Z 라고 가정하면(z(p)z(q))2/2z(p)ppqZ정지 및 공분산을 가지고 다음 semivariance의 기대 (동일한 최대 공분산 동일 임의 대한 P ) 마이너스의 공분산 Z ( P )Z ( 질문을 ) . 이 지연으로 인한 비닝은 불규칙한 간격 문제에 대처합니다.Var(Z(p))pZ(p)Z(q)

(z(p),w(p))zw

2 백만 점을 사용하면 정상 성과의 작은 편차를 감지 할 수 있습니다. 두 시계열의 위상차도 시간에 따라 달라질 수 있습니다. 이 기간 동안 서로 다른 창에 대해 교차 Variogram을 별도로 계산하여 이에 대처하십시오.

O(nk)O(n2)k


ntn=nttnτn=tn+α+βnαβ

ββ

@ whuber, @BobC, 나는 비슷한 문제와 문제를 다루는 과거의 경험을 바탕으로 반 교육 된 추측을하고 있습니다. 내가 본 대부분의 접근 방식은 계산 집약적이고 인상적이지 않습니다. 한 번의 시도는 동적 시간 왜곡 또는 Ramsay와 Silverman이 곡선 등록을 호출하는 것과 같은 것을 통해 이루어질 수 있습니다 . 이 크기의 데이터 세트 중 어느 쪽이 실현 가능한지 여부는 확실하지 않습니다.
추기경

내 머리를 감싸려면 약간의 시간이 걸립니다. 위에서 언급 한 R 패키지의 예제부터 시작하겠습니다.
BobC

@BobC, 내가 가지고있는 타이밍 비 동기에 대해 거친 모델입니까? "랜덤 초기 오프셋"+ "선형 오류"라고 생각합니다. 후자는 두 장치 사이의 샘플링 간격에서 작은 일정한 차이로 인한 것입니다. 그런 다음 두 가지 다른 uC의 인터럽트 처리로 인해 약간의 작은 무작위 오류가 있습니다.
추기경
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.