_التذكرة الأصلية http://projects.scipy.org/numpy/ticket/1714 بتاريخ 2011-01-15 بواسطة trac user bubla ، المخصصة لـ unknown.
أهلا،
لقد أنشأت تصحيحًا يوسع وظيفة correlate
حتى يتمكن من حساب الارتباط التبادلي الطبيعي الآن
راجع [ http://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross -correlation the Wikipedia article].
لقد أضفت الوثائق والدليل البسيط أيضًا ، بالطبع.
التصحيح ضد أحدث سيد Git
تمت إضافة المرفق بواسطة trac user bubla في 2011-01-15: correlate.parch
_ @ rgommers كتب بتاريخ 2011-03-29_
نظرًا لأن هذه وظيفة جديدة ، يجب أن تسأل في القائمة البريدية عما إذا كان يمكن تضمينها.
اختبار الوحدة ضروري ، لا يتم تنفيذ العقيدة بشكل افتراضي في مجموعة الاختبار.
قد يكون هذا مفيدا.
يمكن لأي شخص التحقق من صحة هذا؟
أتساءل عما هو صحيح مع mode='full'
.
أنا بحاجة إلى هذه الميزة ، لكنني لست متأكدًا من صحتها إلا عندما يكون الوضع = 'صالحًا' ويكون كلا المصفوفين بالحجم نفسه. بعبارة أخرى ، أعتقد أنه يجب تطبيق التطبيع على كل نافذة.
أي تحديثات في هذا الشأن؟
هل تم اختبار التصحيح لجميع أوضاع الارتباط؟
VlamV ، حيث لا يوجد شيء هنا ، لا ، لا أعتقد ذلك. إذا كان لديك الوقت لإصلاحه للأوضاع الأخرى ، أعتقد أنه يمكننا إضافته.
أي أخبار عن هذا؟
ألن يكون من المنطقي القسمة على الانحراف المعياري لجزء a
المستخدم بالفعل (في حالة mode=same
أو mode=full
)
لن يكون من المنطقي أيضًا استخدام الخيارين bias
و ddof
من numpy.corrcoef
بدلاً من القسمة على len(a)
هناك إجابة في SO تشير هنا: https://stackoverflow.com/a/5639626/5392420
كما أنه يحتوي على الكود الأكثر صلة. نظرًا لأن المرفق أعلاه لم يعد متاحًا (على الأقل بالنسبة لي) ، فقد اعتقدت أنه قد يكون من المفيد أن يكون هذا بمثابة بداية للتنفيذ.
يمكنني أيضًا أن أؤكد أنه - على الأقل في حالتي - يعمل على "تسوية" متجهات الإدخال قبل استخدام np.correlate
مثل هذا وسيتم إرجاع القيم المعقولة في نطاق [-1،1]:
a = (a - np.mean(a)) / (np.std(a) * len(a))
b = (b - np.mean(b)) / (np.std(b))
c = np.correlate(a, b, 'full')
يتم تنفيذ التطبيع بواسطة جزء الإشارة المستخدم بالفعل (راجع تعليق wilberth ) باستخدام طرق numpy في وظيفة correlate_template في هذا المستودع: https://github.com/trichter/xcorr
التعليق الأكثر فائدة
هناك إجابة في SO تشير هنا: https://stackoverflow.com/a/5639626/5392420
كما أنه يحتوي على الكود الأكثر صلة. نظرًا لأن المرفق أعلاه لم يعد متاحًا (على الأقل بالنسبة لي) ، فقد اعتقدت أنه قد يكون من المفيد أن يكون هذا بمثابة بداية للتنفيذ.
يمكنني أيضًا أن أؤكد أنه - على الأقل في حالتي - يعمل على "تسوية" متجهات الإدخال قبل استخدام
np.correlate
مثل هذا وسيتم إرجاع القيم المعقولة في نطاق [-1،1]: