Numpy: الارتباط المتبادل الطبيعي (Trac # 1714)

تم إنشاؤها على ٢٠ أكتوبر ٢٠١٢  ·  12تعليقات  ·  مصدر: numpy/numpy

_التذكرة الأصلية 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

01 - Enhancement Patch numpy.core

التعليق الأكثر فائدة

هناك إجابة في 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')

ال 12 كومينتر

تمت إضافة المرفق بواسطة 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

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات