주파수 영역에서의 상호 상관에 대한 직관적 인 설명


13

상호 상관 정리에 따르면, 두 신호 사이의 상호 상관은 한 신호의 푸리에 변환 곱과 다른 신호의 푸리에 변환의 복소 공액을 곱한 것과 같습니다. 이 작업을 수행 한 후 제품 신호의 도난을 취하면 두 신호 간의 이동을 나타내는 피크가 나타납니다.

이것이 어떻게 작동하는지 이해할 수 없습니까? 두 신호 간의 이동을 나타내는 피크를 얻는 이유는 무엇입니까? 나는 http://mathworld.wolfram.com/Cross-CorrelationTheorem.html 에서 수학을 얻었 지만 이것이 직관적으로 무엇을 의미하는지 이해할 수는 없습니다. 누군가 설명을 제공하거나 올바른 문서를 알려주시겠습니까?

감사!


고마워 Dilip. 나는 여러 피크를 얻을 것이라는 것을 이해합니다. 이 피크 각각은 무엇을 나타 냅니까? 그리고 왜 당신은 ifft를 취할 때 여러 피크를 얻을 것입니까? 상호 상관 정리에 대한 수학적 증거를 읽었지만 해석 방법을 이해할 수 없습니다. 한 신호의 FT와 다른 신호의 켤레를 곱하는 것이 더 많은 것과 비슷합니까? 그것의 물리적 의미는 무엇입니까?
silver surfer

코드는 작동하지 않습니다. 코드는 x와 y가 100으로 주어졌지만 l = 50이더라도 인덱스와 같은 오류가 매트릭스 차원을 초과합니다.
Athira

답변:


11

이 개념은 컨볼 루션 정리를 기반으로하며 , 두 신호 및 경우 푸리에 변환 및 의 곱은 컨벌루션의 푸리에 변환과 같습니다. 두 신호. 그건:x(t)y(t)X(f)Y(f)

F{x(t)y(t)}=F{x(t)}F{y(t)}

위의 Wikipedia 링크에서이 정리의 파생에 대해 자세히 읽을 수 있습니다. 이제 회선은 선형 시스템 자체에서 매우 중요한 작업이므로 속성에 대한 이론이 잘 개발되었습니다.

그러나 당신이 찾고있는 것은 와 사이 의 상호 상관 입니다. 핵심은 다음과 같습니다 . 입력 신호 중 하나가 공역 및 시간 역전 된 경우 상호 상관 적분은 컨볼 루션 적분과 같습니다 . 이를 통해 컨볼 루션 평가를 위해 개발 된 이론 (예 : 빠르게 계산하기위한 주파수 영역 기술)을 사용하여 상관 관계에 적용 할 수 있습니다.x(t)y(t)

귀하의 예에서는 다음을 계산하고 있습니다.

F{x(t)}(F{y(t)})

푸리에 영역에서 복잡한 컨쥬 게이션은 시간 영역에서의 시간 반전과 같습니다 (이는 푸리에 변환의 정의에서 직접 발생 함). 따라서 위에서 주어진 첫 번째 방정식을 사용하여 다음과 같이 말할 수 있습니다.

F{x(t)y(t)}=F{x(t)}(F{y(t)})

이 방정식의 역 푸리에 변환을 취하면 남은 신호는 와 사이의 교차 상관 입니다.y ( t )x(t)y(t)


-1
% Matlab function for frequency domain cross correlation
function [Lag,C]=xcorrf(X,Y,L)
% X, Y ---> Input vectors 
% L --->  maximum lag (must be less than minimum of (length of X, Y)
% C ---> correlation vector
% Lag ---> lag times  
X=X(:);
Y=Y(:);
s1=size(X);
s2=size(Y);
D=min(s1(1,1),s2(1,1));
for i=1:L
    X1=ifft(fft(X(1:D-i,:)).*conj(fft(Y(i+1:D,1))));
    C(i,1)=X1(1,1);
end

C=flipud(C);
X1=ifft(fft(X(1:D,:)).*conj(fft(Y(1:D,1))));
C(L+1,1)=X1(1,1);
for i=1:L
    X1=ifft(fft(Y(1:D-i,:)).*conj(fft(X(i+1:D,1))));
    C(i+L+1,1)=X1(1,1);
end
Lag=-L:1:L;
end

3
코드가 원래 포스터의 질문에 어떻게 대답해야하는지에 대한 좀 더 자세한 정보로 응답을 편집 할 수 있습니까?
A_A September

1
나는 그가이 코드로 어디로 가고 있는지 알지만 100 X 길이 이상의 벡터 X와 Y 로이 코드를 실행했다면 기다리는 동안 차를 만들어야한다고 말해야합니다.
crowie

2
코드만으로는 답이 아닙니다
대변인
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.