علوم وفضاء

أنماط خرج الالتفاف: ماذا تحتفظ به same وvalid؟

مثالنا: الكامل 2 و5 و−4 و19 و−6 و10 و6؛ same يحتفظ بالفهارس 1 إلى 5، وvalid بالفهارس 2 إلى 4.
القيم محفوظة من نتيجة واحدة؛ الفهارس معروضة قبل إعادة ترقيم القص.

يحدد mode حجم خرج الالتفاف في SciPy. [1] لنحسب مثالًا ونحدد القيم المحفوظة.

احسب الكامل مرة واحدة

الالتفاف المباشر يجمع الجداءات. [1] نكتب y[n]=Σⱼ x[j]h[n−j]، مع صفر خارج مجال كل مدخل.

نثبت x=[1,3,−2,4,2] وh=[2,−1,3]، والفهرسة صفرية. القيم أعداد بلا وحدة، وليست تسجيلًا من جهاز. طول x خمسة وطول h ثلاثة؛ معاملات h ليست متوسطًا لأن مجموعها 4.

عند n=0 يوجد الجداء 1×2 فقط، فيكون y[0]=2. وعند n=1 نحصل على 3×2+1×(−1)=5. وعند n=2 نحصل على (−2)×2+3×(−1)+1×3=−4.

عند n=3 تصبح الحدود 4×2+(−2)×(−1)+3×3=19. وعند n=4 نحصل على 2×2+4×(−1)+(−2)×3=−6. ثم y[5]=2×(−1)+4×3=10، وy[6]=2×3=6.

إذن لدينا سبعة مواضع، من صفر إلى 6، وقائمة كاملة هي [2,5,−4,19,−6,10,6]. يمكن مراجعتها بضرب (1+3z−2z²+4z³+2z⁴)(2−z+3z²)؛ معامل zⁿ يجمع الجداءات ذات مجموع الفهرسين n.

بصورة عامة، إذا كان طول المدخلين N وM، فإن j يقع بين صفر وN−1، وفهرس عنصر h بين صفر وM−1. مجموعهما يقع بين صفر وN+M−2؛ عدّ هذه المواضع يعطي N+M−1. قد تكون بعض قيمها صفرًا، لكن عدّ المواضع لا ينقص بسبب ذلك.

حدد الفهارس التي تحتفظ بها

full يعيد الكامل، وsame جزءًا متمركزًا بطول المدخل الأول، وvalid الجزء الذي لا يعتمد على الحشو الصفري. [1]

في تطبيق SciPy v1.18.0، يبدأ القص المتمركز عند القسمة الصحيحة لنصف فرق الطولين. [2] في بعد واحد نكتب بداية same: s=⌊(M−1)/2⌋؛ نأخذ N قيم بدءًا منها.

لمثالنا M=3، فتكون s=1. نحتفظ بـy[1] إلى y[5]، أي [5,−4,19,−6,10]. حذفنا 2 من اليسار و6 من اليمين؛ لم نأخذ أول خمس قيم [2,5,−4,19,−6]. العددان المحذوفان قيمتان من الناتج، وليسا عدد العناصر المحذوفة.

لنحدد valid من التداخل الكامل عندما N≥M. لكي يقع المدخل x تحت جميع عناصر h، يجب أن يكون أصغر فهرس مطلوب n−(M−1) غير سالب، وأكبره n لا يتجاوز N−1. إذن M−1≤n≤N−1.

في مثالنا، المجال 2≤n≤4؛ ثلاث قيم هي [−4,19,−6]. عند n=1 يغيب عنصر x ذي الفهرس −1 عن جزء من الجمع، لذلك يستبعده هذا الشرط، حتى لو كانت قيمة الجداء الغائب صفرًا في فرض آخر.

عدّ الفهارس من M−1 إلى N−1 يعطي N−M+1 عندما N≥M. ولأن تبديل المدخلين لا يغير الالتفاف الكامل، يصير العدد العام max(N,M)−min(N,M)+1. هذا اشتقاق في بعد واحد لمدخلين غير فارغين؛ لا نعممه على أبعاد متعددة ذات أطوال متقاطعة.

اختبر نواة من أربعة عناصر

نؤلف مثالًا ثانيًا: x=[4,4,4,4,4]، وh=[1/4,1/4,1/4,1/4]، وصفر خارج القائمتين. هنا مجموع الأوزان واحد، وطول الكامل 5+4−1=8.

في الطرف الأول تدخل قيمة 4 واحدة مع وزن 1/4، فيكون الناتج 1. بعدها تدخل قيمتان فيصير 2، ثم ثلاث فيصير 3، ثم أربع فيصير 4. يحافظ الموضع التالي على أربعة عناصر أيضًا؛ بعده تتناقص أعداد العناصر إلى ثلاثة ثم اثنين ثم واحد.

لذلك الكامل [1,2,3,4,4,3,2,1] عند الفهارس من صفر إلى 7. بداية القص الخماسي ⌊(4−1)/2⌋=1؛ نأخذ الفهارس 1 إلى 5 فنحصل على [2,3,4,4,3]. حذفنا عنصرًا واحدًا من اليسار وعنصرين من اليمين.

فرق الطولين ثلاثة، فلا يمكن تقسيم العناصر المحذوفة إلى عددين صحيحين متساويين. اختيار البداية 1 يترك الحذف الزائد في اليمين. لو بدأنا من 2 لأخذنا [3,4,4,3,2]؛ هذا قص آخر، وليس الاتفاقية التي نراجعها.

أما التداخل الكامل فيقع من n=3 إلى n=4 فقط، فيعطي قيمتين كلتاهما 4. إذا كان المطلوب استبعاد الحافة وفق هذا النموذج، فإن اختيار خمس قيم لمجرد مساواتها طول x يبقي القيم 2 و3 المحسوبة مع الامتداد الصفري.

لم يخبرنا النموذج أن إشارة حقيقية خارج التسجيل تساوي صفرًا. لو امتد الثابت 4 على جميع الفهارس، لكان مجموع الأوزان الأربعة يعطي 4 في كل موضع. كما أن القسمة على عدد القيم المتاحة عند الحافة ستعرف متوسطًا مختلفًا؛ لم نستخدمها هنا.

لخمس قيم 4 وأربعة أوزان 1/4: الكامل 1 و2 و3 و4 و4 و3 و2 و1؛ القص الخماسي يبدأ من الفهرس 1، والتداخل الكامل عند 3 و4.
مثال مفترض؛ القص الخماسي يحذف عنصرًا من اليسار وعنصرين من اليمين.

راجع ترتيب المدخلين ووسم الفهرس

يمكن تبديل x وh في الجمع الكامل بتغيير اسم الفهرس: كل جداء x[j]h[k] يذهب إلى الموضع j+k، وضرب العددين وجمع فهرسيهما لا يتغيران بالتبديل. إذن الالتفاف الكامل نفسه في مثالنا.

لكن الطلب same يربط الطول بالمدخل الأول. [1] إذا قدمنا h الثلاثي أولًا وx الخماسي ثانيًا، صارت البداية ⌊(5−1)/2⌋=2 والطول 3. الناتج [−4,19,−6]، بينما ترتيبنا الأول أعطى خمس قيم.

يتطابق هذا القص الجديد مع valid في المثال الأول؛ التطابق خاص بالطولين والمواضع هنا، وليس مساواة عامة بين الخيارين. مثلًا نواة الأربعة في مثال الثابت أعطت خمس قيم في same وقيمتين في valid.

إذا سميت عناصر القائمة المقصوصة q[0] وq[1] وهكذا، فإن q[k]=y[k+s]. في ترتيب المثال الأول s=1، لذلك q[0]=5 هي y[1]، وليست y[0]=2. ترقيم قائمة جديدة لا يبدل الفهرس الذي جاء منه الحساب.

الفهرس هنا موضع حسابي، لا ثانية ولا مسافة. لإسناد زمن إلى هذه القيم نحتاج معلومات أخذ العينات ومعنى وسم الناتج؛ القص وحده لا يوفر ذلك. كذلك حفظ N قيم لا يثبت أن الحساب قابل للإتاحة فورًا في بث حي.

راجع أولًا ترتيب المدخلين، ثم طول كل منهما، وفرض القيم خارج المجال، والخيار المطلوب، وبداية الفهارس المحتفظ بها. هدفنا اختيار جزء من التفاف خطي محدد، لا اختيار طول تحويل فورييه أو مقارنة سرعة خوارزميات.

تحققنا بكسور دقيقة: جمع قطري للجداءات مقابل تجميع معاملات كثيرات الحدود؛ وقص same مقابل حذف متناوب من الطرفين؛ وvalid مقابل جداءات نوافذ كاملة مع عكس ترتيب النواة. شملت المراجعة الأطوال 1 إلى 6 وأنماط صفرية ومتغيرة محددة. لم ننفذ SciPy أو نقس أداءً أو ندعِ اختبار كل بيانات المكتبة.

الخيار في مثالنا الأولفهارس الكاملالقيم
full0..62,5,−4,19,−6,10,6
same: x أولًا1..55,−4,19,−6,10
valid2..4−4,19,−6
same: h أولًا2..4−4,19,−6

للتوسع: السعة والتردد في الموجات.

المراجع

  1. SciPy — convolve
  2. SciPy v1.18.0 — center crop implementation

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.