周波数領域での相互相関の直感的な説明


13

相互相関定理によれば、2つの信号間の相互相関は、1つの信号のフーリエ変換と別の信号のフーリエ変換の複素共役の積に等しくなります。これを行った後、積信号のifftを取得すると、2つの信号間のシフトを示すピークが得られます。

これがどのように機能するのか理解できませんか?2つの信号間のシフトを示すピークが得られるのはなぜですか。http://mathworld.wolfram.com/Cross-CorrelationTheorem.htmlから数学を取得しましたが、 これが直感的に何を意味するのか理解できません。誰かが説明を提供したり、適切な文書を教えてくれたりできますか?

ありがとう!


ありがとうディリップ。複数のピークが発生することを理解しています。このピークのそれぞれは何を示していますか?また、ifftを使用するときに複数のピークが発生するのはなぜですか 相互相関定理についての数学的証明を読んだことがありますが、それを解釈する方法がわかりません。1つの信号のFTを別の信号の共役と乗算することにより、何が示されるのでしょうか?それの物理的な意味は何ですか?
シルバーサーファー

コードは、インデックスは、XおよびYは= 50 100およびLとして与えられたにも関わらず行列の次元を超えるようないくつかのエラーで終わる【選択コードが動作していない
Athira

回答:


11

この概念は、2つの信号およびフーリエ変換およびの積が次の畳み込みのフーリエ変換に等しいことを示す畳み込み定理に基づいています。2つの信号。あれは:y t X f Y f バツtytバツfYf

F{バツtyt}=F{バツt}F{yt}

上記のウィキペディアのリンクで、この定理の派生について詳しく読むことができます。現在、畳み込みは線形システム自体にとって非常に重要な操作であるため、その特性に関する理論は十分に開発されています。

しかし、あなたが探していることである相互相関の間し、。ここで重要なのは、入力信号の1つが共役で時間反転している場合、相互相関積分は畳み込み積分と同等です。これにより、畳み込みを評価するために開発された理論(それらをすばやく計算するための周波数領域手法など)を利用して、相関に適用できます。y t バツtyt

あなたの例では、以下を計算しています:

F{バツt}F{yt}

フーリエ領域では、複素共役は時間領域での時間反転に相当することを思い出してください(これはフーリエ変換の定義から直接得られます)。したがって、上記の最初の式を使用して、次のように述べることができます。

F{バツtyt}=F{バツt}F{yt}

その後、この方程式の逆フーリエ変換を行うと、残っている信号はと相互相関です。バツtyt


-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

1
私は彼がこのコードをどこに向かっているのか見ていると思いますが、長さ100サンプル以上のベクトルXとYでこのコードを実行した場合、待っている間にお茶を飲む必要があります。
crowie

2
コードだけでは答えになりません
トバシスト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.