คำอธิบายที่เข้าใจง่ายของความสัมพันธ์ข้ามในโดเมนความถี่


13

ตามทฤษฎีบทความสัมพันธ์ข้าม: ความสัมพันธ์ข้ามระหว่างสองสัญญาณเท่ากับผลคูณของการแปลงฟูริเยร์ของสัญญาณหนึ่งคูณด้วยคอมเพล็กซ์ที่ซับซ้อนของการแปลงฟูริเยร์ของสัญญาณอื่น หลังจากทำสิ่งนี้แล้วเมื่อเรารับสัญญาณของผลิตภัณฑ์เราจะได้จุดสูงสุดซึ่งบ่งชี้การเปลี่ยนแปลงระหว่างสัญญาณทั้งสอง

ฉันไม่สามารถเข้าใจวิธีการทำงานนี้ได้อย่างไร ทำไมฉันถึงได้จุดสูงสุดซึ่งบ่งบอกถึงการเปลี่ยนแปลงระหว่างสัญญาณทั้งสอง ฉันได้คณิตศาสตร์มาจาก: http://mathworld.wolfram.com/Cross-CorrelationTheorem.html แต่ฉันไม่สามารถเข้าใจได้ว่าสิ่งนี้มีความหมายอย่างไรโดยสัญชาตญาณ ใครช่วยกรุณาอธิบายหรือชี้แนะฉันไปที่เอกสารที่ถูกต้องได้ไหม?

ขอบคุณ!


ขอบคุณ Dilip ฉันเข้าใจว่าฉันจะได้รับยอดเขาหลาย ๆ จุดสูงสุดแต่ละจุดนี้ระบุอะไร และทำไมคุณถึงได้รับยอดเขาหลาย ๆ ครั้งเมื่อคุณหยิบธงขึ้น? ฉันได้อ่านหลักฐานทางคณิตศาสตร์เกี่ยวกับทฤษฎีบทความสัมพันธ์ข้ามกัน แต่ฉันไม่เข้าใจวิธีตีความมัน เช่นเดียวกับสิ่งที่จะทวีคูณ 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)}

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับทฤษฎีบทนี้ได้จากลิงค์ข้างบนของ Wikipedia ทีนี้การบิดเป็นสิ่งที่สำคัญมากสำหรับระบบเชิงเส้นในตัวมันเองดังนั้นทฤษฎีเกี่ยวกับคุณสมบัติของมันจึงได้รับการพัฒนาอย่างดี

แต่สิ่งที่คุณกำลังมองหาคือข้ามความสัมพันธ์ระหว่างและ(t) นี่คือกุญแจสำคัญ: คุณอินทิกรัลครอสสหสัมพันธ์นั้นเท่ากับอินทิกรัลสังวัตนาถ้าสัญญาณอินพุตหนึ่งสัญญาณถูกคอนจูเกตและเปลี่ยนกลับเวลา สิ่งนี้ช่วยให้คุณใช้ประโยชน์จากทฤษฎีที่พัฒนาขึ้นสำหรับการประเมิน convolutions (เช่นเทคนิคความถี่โดเมนสำหรับการคำนวณพวกเขาอย่างรวดเร็ว) และนำไปใช้กับความสัมพันธ์x(t)y(t)

ในตัวอย่างของคุณคุณกำลังคำนวณสิ่งต่อไปนี้:

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

โปรดจำไว้ว่าในโดเมนฟูริเยร์การผันคำกริยาที่ซับซ้อนเทียบเท่ากับการกลับเวลาในโดเมนเวลา (ซึ่งตามมาโดยตรงจากคำจำกัดความของการแปลงฟูริเยร์) ดังนั้นเมื่อใช้สมการแรกที่ให้ไว้ข้างต้นเราสามารถระบุได้ว่า:

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

จากนั้นถ้าคุณใช้เวลาผกผันฟูเรียร์ของสมการนี้สัญญาณที่คุณกำลังเหลือเป็นข้ามความสัมพันธ์ระหว่างและ(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 ตัวอย่างคุณจะต้องทำชาสักถ้วยในขณะที่รอ
Crowie

2
รหัสเพียงอย่างเดียวไม่ใช่คำตอบ
tobassist
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.