Frekans alanında sezgisel çapraz korelasyon açıklaması


13

Çapraz korelasyon teoremine göre: iki sinyal arasındaki çapraz korelasyon, bir sinyalin fourier dönüşümünün, başka bir sinyalin fourier dönüşümünün karmaşık konjugatı ile çarpılmasıyla eşittir. Bunu yaptıktan sonra, ürün sinyalinin çıkışını aldığımızda, iki sinyal arasındaki değişimi gösteren bir tepe elde ederiz.

Bunun nasıl çalıştığını anlayamıyorum? Neden iki sinyal arasındaki geçişi gösteren bir tepe elde edeyim. Matematik var: http://mathworld.wolfram.com/Cross-CorrelationTheorem.html ama bunun sezgisel olarak ne anlama geldiğini anlayamıyorum. Birisi lütfen biraz açıklama yapabilir ya da beni doğru belgelere yönlendirebilir mi?

Teşekkürler!


Teşekkürler Dilip. Birden fazla zirve alacağımı anlıyorum. Bu zirvenin her biri ne gösteriyor? Ve ifft aldığınızda neden birden fazla tepe elde edesiniz? Çapraz korelasyon teoremi hakkında matematiksel kanıtları okudum ama nasıl yorumlayacağımı anlamıyorum. Daha çok, bir sinyalin FT'sini başka bir sinyalin konjugatı ile çarpmak neyi gösterir? bunun fiziksel önemi nedir?
gümüş sörfçü

Kod çalışmaz. X ve y 100 ve l = 50
Athira

Yanıtlar:


11

Kavram, büklüm teoremi , iki sinyal için bu durumlar, ve , Fourier geçişlerinin ürünüdür ve sanhşmm Fourier transform eşittir iki sinyal. Yani:x(t)y(t)X(f)Y(f)

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

Bu teoremin türetilmesi hakkında yukarıdaki Wikipedia bağlantısından daha fazla bilgi edinebilirsiniz. Şimdi, evrişim kendi içinde lineer sistemler için çok önemli bir işlemdir, bu nedenle özellikleri hakkındaki teori iyi gelişmiştir.

Ancak, aradığınız şey ve arasındaki çapraz korelasyondur . Anahtar: size çapraz korelasyon integrali, giriş sinyallerinden biri konjuge ve zaman tersine çevrilirse , evrişim integraline eşdeğerdir . Bu, kıvrımları değerlendirmek için geliştirilen teoriyi (hızlı bir şekilde hesaplamak için frekans-alan teknikleri gibi) kullanmanızı ve korelasyonlara uygulamanızı sağlar.x(t)y(t)

Örneğinizde aşağıdakileri hesaplıyorsunuz:

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

Fourier alanında, karmaşık konjugasyonun zaman alanındaki zaman tersine eşdeğer olduğunu hatırlayın (bu doğrudan Fourier dönüşümünün tanımından sonra gelir). Bu nedenle, yukarıda verilen ilk denklemi kullanarak şunları söyleyebiliriz:

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

Daha sonra bu denklemin ters Fourier dönüşümünü alırsanız, bıraktığınız sinyal ve arasındaki çapraz korelasyondur .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
Lütfen yanıtınızı, kodun asıl posterin sorusuna nasıl yanıt vermesi gerektiği hakkında biraz daha fazla bilgi ile düzenleyebilir misiniz?
A_A

1
Bence bu kodla nereye gittiğini görüyorum ama 100'den fazla örnek üzerinde X ve Y vektörleri ile bu kodu çalıştırırsanız, beklerken bir fincan çay yapmak zorunda kalacağınızı söylemeliyim.
crowie

2
Kod tek başına bir cevap değil
tobassist
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.