جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
أنا معجب حقًا بتعليمات akellyirl حول اكتشاف التردد الموثوق به باستخدام تقنيات DSP ولكن في بعض الأحيان لا تكون التقنية التي استخدمها جيدة بما يكفي إذا كانت لديك قياسات صاخبة.
أحد الحلول السهلة للحصول على إدخال أنظف لجهاز الكشف عن التردد هو تطبيق نوع من المرشحات حول التردد الذي تريد اكتشافه.
لسوء الحظ ، فإن إنشاء مرشح رقمي ليس بالأمر السهل وهناك الكثير من الرياضيات المتضمنة. لذلك فكرت في إنشاء نوع من البرامج لتبسيط إنشاء مثل هذه المرشحات ، للسماح لأي شخص باستخدامها في مشاريعهم دون الخوض في التفاصيل.
في Instructable ، سأكتشف موجة جيبية تبلغ 50 هرتز في قياس صاخب باستخدام Arduino Uno (Arduino ليس ضروريًا حقًا).
الخطوة الأولى: المشكلة
تخيل أن بيانات الإدخال المقاسة تبدو مثل المنحنى أعلاه - صاخبة جدًا.
إذا قمنا ببناء كاشف تردد بسيط مثل ذلك الموجود في Instructable الخاص بـ akellyirl ، فستكون النتيجة "-inf" أو في حالة الكود أدناه: "نعم ، الكثير من الضوضاء …"
ملاحظة: لقد استخدمت إلى حد كبير كل كود akellyirl لكنني أضفت مصفوفة rawData في الأعلى تحتوي على القياسات الصاخبة.
يمكنك العثور أدناه على الشفرة بالكامل في ملف يسمى "unfiltered.ino".
الخطوة الثانية: الحل
نظرًا لأن بيانات الإدخال صاخبة ولكننا نعرف التردد الذي نبحث عنه ، فيمكننا استخدام أداة قمت بإنشائها تسمى easyFIR لإنشاء مرشح Bandpass وتطبيقه على بيانات الإدخال ، مما ينتج عنه إدخال أكثر نظافة لكاشف التردد (الصورة أعلاه).
الخطوة 3: EasyFIR
أداة easyFIR سهلة الاستخدام ، ما عليك سوى تنزيل مستودع GitHub وتشغيل ملف easyFIR.py مع عينة واحدة من قياساتك (بتنسيق CSV).
إذا فتحت ملف easyFIR.py ، فستجد 5 معلمات (انظر الصورة أعلاه) يمكنك ويجب عليك تغييرها اعتمادًا على النتيجة التي ترغب في تحقيقها. بعد تعديل المعلمات الخمسة ، وتنفيذ ملف بيثون ، سترى المعاملات المحسوبة في جهازك. هذه المعاملات ضرورية للخطوة التالية!
يمكن العثور على مزيد من المعلومات حول الاستخدام الدقيق هنا:
الخطوة 4: التصفية
الآن إذا قمت بحساب معاملات المرشح المطلوبة ، فمن السهل جدًا تطبيق المصنف الفعلي على كاشف التردد.
كما ترى في الصورة أعلاه ، ما عليك سوى إضافة المعاملات ، وظيفة ApplyFilter ثم تصفية قياسات الإدخال.
يمكنك العثور أدناه على الشفرة بالكامل في ملف يسمى "filtered.ino".
ملاحظة: شكرًا جزيلاً على Stack Overflow Post لخوارزمية تطبيق المرشح الرائعة!
الخطوة 5: استمتع
كما ترون ، نحن الآن قادرون على اكتشاف إشارة 50 هرتز حتى في بيئة صاخبة؟
لا تتردد في تكييف فكرتي ورمزي مع احتياجاتك. سأكون ممتنا جدا لتضمين التحسينات الخاصة بك!
إذا كنت تحب عملي ، سأكون ممتنًا حقًا إذا دعمت عملي مع star على GitHub!
شكرا لدعمك!:)