Інтуїтивне пояснення перехресної кореляції в частотній області


13

Відповідно до теореми перехресної кореляції: перехресна кореляція між двома сигналами дорівнює добутку перетворення фур'є одного сигналу, помноженому на складний кон'югат фур'є-перетворення іншого сигналу. Після цього, коли ми приймаємо ifft сигналу продукту, ми отримуємо пік, який вказує на зсув між двома сигналами.

Я не в змозі зрозуміти, як це працює? Чому я отримав би пік, який вказує на зсув між двома сигналами. Я отримав математику з: http://mathworld.wolfram.com/Cross-CorrelationTheorem.html, але я не в змозі зрозуміти, що це означає інтуїтивно. Може хтось, будь ласка, надати пояснення чи вказати мені на потрібні документи?

Дякую!


Дякую Діліп. Я розумію, я отримаю кілька піків. Що означає кожен цей пік? І чому ви отримаєте кілька піків, коли приймаєте ifft? Я читав математичні докази про теорему перехресної кореляції, але не розумію, як її інтерпретувати. Більше схоже на те, що свідчить про множення FT одного сигналу на кон'югат іншого? яке фізичне значення цього?
срібний серфер

Код не працює. Код закінчується деякою помилкою, як індекс, що перевищує матричний розмір, навіть якщо 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)}

Детальніше про виведення цієї теореми ви можете прочитати за вищенаведеним посиланням у Вікіпедії. Зараз згортання сама по собі є дуже важливою операцією для лінійних систем, тому теорія про її властивості добре розвинена.

Однак те, що ви шукаєте, це перехресна кореляція між та . Ось ключ: ви інтеграл перехресної кореляції еквівалентний інтегралу згортання, якщо один із вхідних сигналів кон'югований та обернений часом . Це дозволяє використовувати теорію, розроблену для оцінки згортків (як методи частотної області для їх швидкого обчислення) та застосовувати їх до кореляцій.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

1
Я думаю, я бачу, куди він йде з цим кодом, але мушу сказати, що якби ти запустив цей код будь-якими векторами X і Y довжиною понад 100 зразків, вам доведеться приготувати чашку чаю, поки ви чекаєте.
groie

2
Код сам по собі не є відповіддю
тобасист
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.