cross-correlation function क्लासिक सिग्नल प्रोसेसिंग समाधान है। यदि आपके पास मैटलैब तक पहुंच है, तो XCORR फ़ंक्शन देखें। max(abs(xcorr(Signal1, Signal2, 'coeff')))
आपको विशेष रूप से जो कुछ भी ढूंढ रहा है वह आपको देगा और पाइथन में समकक्ष भी मौजूद है।
क्रॉस-सहसंबंध मानता है कि "समानता" जो आप खोज रहे हैं वह दो संकेतों के बीच रैखिक संबंध का एक उपाय है। समय सूचकांक n = 0..N-1
साथ वास्तविक मूल्य परिमित-लंबाई संकेतों के लिए परिभाषा है: -N..N
से
C[g] = sum{m = 0..N-1} (x1[m] * x2[g+m])
g
रन (कि सीमा के बाहर योग अंदर उत्पाद 0 है)।
हालांकि आपने किसी संख्या के लिए कहा है, तो समारोह बहुत दिलचस्प है। फ़ंक्शन डोमेन g
को अंतराल डोमेन कहा जाता है।
यदि x1
और x2
एक समय शिफ्ट से संबंधित हैं, तो क्रॉस-सहसंबंध समारोह में शिफ्ट के अनुरूप अंतराल पर इसकी चोटी होगी। उदाहरण के लिए, यदि आपके पास x1 = sin[wn]
और x2 = sin[wn + phi]
था, तो एक ही आवृत्ति और विभिन्न चरण में दो साइन लहरें, पार-सहसंबंध समारोह चरण चरण के अनुरूप अंतराल पर अपने चरम पर होगा।
यदि x2
x1
का एक स्केल संस्करण है, तो क्रॉस-सहसंबंध भी स्केल करेगा। आप sqrt(sum(x1^2)*sum(x2^2))
द्वारा विभाजित करके फ़ंक्शन को एक सहसंबंध गुणांक में सामान्यीकृत कर सकते हैं, और इसे पूर्ण मूल्य (0 मैटलैब की यह पंक्ति है) द्वारा 0..1
में लाएं।
अधिक आम तौर पर, नीचे का क्रॉस-सहसंबंध अच्छा/बुरा है इसका सारांश है।
पार से संबंध निर्धारित करने के लिए अच्छी तरह से काम करता है, तो एक संकेत रैखिक दूसरे से जुड़े हुए है, वह यह है कि अगर
x2(t) = sum{n = 0..K-1}(A_n * x1(t + phi_n))
जहां x1(t)
और x2(t)
सवाल में संकेत कर रहे हैं, A_n
कारकों स्केलिंग रहे हैं, और phi_n
समय बदलाव कर रहे हैं। इस के निहितार्थ हैं:
- यदि एक संकेत एक समय अन्य
(phi_n <> 0 for some n)
के संस्करण में स्थानांतरित कर दिया है पार से संबंध समारोह होगा गैर शून्य।
- यदि एक सिग्नल अन्य
(A_n <> 0 for some n)
का स्केल संस्करण है तो क्रॉस-सहसंबंध फ़ंक्शन गैर-शून्य होगा।
- यदि एक सिग्नल दूसरे के स्केल किए गए और समय स्थानांतरित संस्करणों का संयोजन है (
A_n
और phi_n
कुछ संख्याओं के लिए गैर-शून्य हैं) क्रॉस-सहसंबंध फ़ंक्शन गैर-शून्य होगा। ध्यान दें कि यह एक रैखिक फ़िल्टर की परिभाषा भी है।
अधिक ठोस पाने के लिए, मान लीजिए x1
एक वाईडबैंड यादृच्छिक संकेत है। x2=x1
दें। अब सामान्यीकृत क्रॉस-सहसंबंध फ़ंक्शन जी = 0 पर बिल्कुल 1 होगा, और हर जगह 0 के करीब होगा। अब x2
x1
का एक (रैखिक रूप से) फ़िल्टर संस्करण बनें। क्रॉस-सहसंबंध समारोह g=0
के पास शून्य-शून्य होगा। गैर-शून्य भाग की चौड़ाई फ़िल्टर की बैंडविड्थ पर निर्भर करेगी।
x1
और x2
के विशेष मामले के लिए आवधिक होने के कारण, उत्तर के मूल भाग में चरण-परिवर्तन पर जानकारी लागू होती है।
जहां क्रॉस-सहसंबंध की सहायता नहीं करेगा, यदि दो सिग्नल रैखिक रूप से संबंधित नहीं हैं। उदाहरण के लिए, विभिन्न आवृत्तियों पर दो आवधिक संकेत रैखिक रूप से संबंधित नहीं हैं। न ही विभिन्न समय पर एक वाईडबैंड यादृच्छिक प्रक्रिया से खींचे गए दो यादृच्छिक सिग्नल हैं। न ही दो संकेत हैं जो आकार में समान हैं लेकिन अलग-अलग समय अनुक्रमण के साथ - यह असमान मौलिक आवृत्ति मामले की तरह है।
सभी मामलों में, क्रॉस-सहसंबंध समारोह को सामान्यीकृत करने और अधिकतम मूल्य को देखने से आपको पता चलेगा कि सिग्नल संभावित रूप से रैखिक रूप से संबंधित हैं - यदि संख्या कम है, तो 0.1 से कम की तरह, मैं उन्हें असंबंधित घोषित कर दूंगा। उससे अधिक और मैं इसे अधिक सावधानी से देखता हूं, सामान्यीकृत और असामान्य क्रॉस-सहसंबंध कार्यों दोनों को चित्रित करता हूं और संरचना को देखता हूं। एक आवधिक क्रॉस-सहसंबंध का तात्पर्य है कि दोनों सिग्नल आवधिक हैं, और क्रॉस-सहसंबंध फ़ंक्शन जो g=0
के आसपास काफी अधिक है, का अर्थ है कि एक सिग्नल दूसरे का फ़िल्टर किया गया संस्करण है।
इनपुट के कुछ प्रकार के लिए नहीं एक बुरा सुझाव है, लेकिन आप वास्तव में एक ही समस्या के साथ ओपी छोड़: कैसे दो स्पेक्ट्रा के तुलना करें। – dmckee
dmckee: सिवाय इसके कि चौकोर रूपांतरित परिवर्तन सिग्नल बिना बदलाव के तुलनीय बिंदु-दर-बिंदु होंगे। वैसे, "स्पेक्ट्रा" मूल संकेतों के लिए गलत शब्द है, क्योंकि इससे एक्स अक्ष पर ऊर्जा (या समतुल्य माप) का अर्थ होगा। – Svante