2014-12-31 5 views
2

두 신호를 동기화하려고합니다 (시간 지연을 찾으십시오). 내가 이미이 게시물 이어 "CCF"기능을 사용하여 최대를 발견했다 :R에서 상호 상관 및 FFT를 사용하여 신호를 동기화하는 방법은 무엇입니까?

Finding lag at which cross correlation is maximum ccf()

그래도 난 내가 효율성,

fft1 <- fft(my.vector1) 
fft2 <- fft(my.vector2) 
ccf(fft1, fft2, lag.max = 6000, plot = FALSE) 

그러나 같은 것을해야 할 것 이유, 다른 게시물에 제안 된대로 고속 푸리에 변환 (FFT)과 상호 상관을 구현하고 싶습니다. 300.000 개의 샘플 (2000Hz에서 1.5 분 샘플링 됨)과 최대 지연 시간이 -3 ~ 3 초인 많은 테스트가 있습니다.

R에서이를 수행하는 방법에 대한 힌트가 있습니까?

나는 fftccf 기능을 알고 있지만, 그것들을 통합하는 방법을 모른다.

이 개 복잡한 기능의 상호 상관 한 기능의 회선과 다른 복소수 동일
+0

특정 프로그래밍 질문을 추가하지 않으면 질문이 정크 야드에 바인딩됩니다. –

답변

1

: R의 기능 convolve으로

Cross correlation and convolution

이미 모든 당신은 고속 푸리에 변환 사용 해야 할 일은 다음과 같습니다

which.max(convolve(my.vector1,my.vector2)) 
:

convolve(my.vector1, my.vector2) 

최대 지연은 찾을 수 있습니다