Wednesday 28 February 2018

المتوسط المتحرك الدائري


واحدة من التطبيقات الرئيسية لمجلس اردوينو هو قراءة وتسجيل بيانات الاستشعار. على سبيل المثال مراقبين واحد الضغط كل ثانية من اليوم. كما معدلات عينة عالية في كثير من الأحيان يولد طفرات في الرسوم البيانية واحد يريد أيضا أن يكون متوسط ​​القياسات. وبما أن القياسات ليست ثابتة في الوقت المناسب ما نحتاج إليه في كثير من الأحيان هو متوسط ​​التشغيل. هذا هو متوسط ​​فترة معينة وقيمة جدا عند القيام بتحليل الاتجاهات. يمكن أن يكون أبسط شكل من المتوسطات قيد التشغيل من خلال التعليمات البرمجية التي تعتمد على متوسط ​​التشغيل السابق: إذا كان أحد لا يريد استخدام الرياضيات نقطة العائمة - وهذا يأخذ الذاكرة ويقلل السرعة - يمكن للمرء أن تفعل الشيء نفسه تماما في المجال الصحيح. القسمة بمقدار 256 في نموذج الكود عبارة عن مفتاح يمين للتبديل 8، وهو أسرع من تقسيم الشرائح مثلا. 100. هذا ينطبق على كل قوة من 2 كمقسم واحد فقط يجب أن تأخذ الرعاية مجموع ويغثس يساوي قوة 2. وبالطبع ينبغي للمرء أن تأخذ الرعاية لا يوجد تجاوز وسيط (النظر في استخدام غير موقعة طويلة) إذا كنت في حاجة متوسط ​​تشغيل أكثر دقة، في كونكريتو من القياسات العشرة الماضية، تحتاج إلى مصفوفة (أو قائمة مرتبط) للاحتفاظ بها. هذه الصفيف بمثابة العازلة دائرية ومع كل قياس جديد يتم إزالة أقدم واحد. يتم حساب متوسط ​​التشغيل على أنه مجموع كل العناصر مقسوما على عدد العناصر في المصفوفة. سيكون رمز المتوسط ​​التشغيلي شيئا من هذا القبيل: عيب هذا الرمز هو أن المصفوفة لعقد جميع القيم يمكن أن تصبح كبيرة جدا. إذا كان لديك قياس واحد في الثانية وتريد متوسط ​​الجري في الدقيقة تحتاج صفيف من 60 متوسط ​​في الساعة سوف تحتاج إلى صفيف من 3600. وهذا لا يمكن أن يتم بهذه الطريقة على اردوينو كما أن لديها 2K من ذاكرة الوصول العشوائي فقط. ومع ذلك من خلال بناء متوسط ​​2 المرحلة يمكن أن يقترب بشكل جيد جدا (إخلاء المسؤولية: ليس لجميع القياسات). في بسيدو رمز: كما هو مطلوب مجموعة جديدة ثابتة الداخلية لكل وظيفة رونينغافيراج، هذه الصراخ ليتم تنفيذها كطبقة. رونينغ متوسط ​​مكتبة مكتبة رونينغافيغ يجعل فئة من الدالة أعلاه بحيث يمكن استخدامها عدة مرات في رسم تخطيطي. ويؤدي ذلك إلى إزالة وظيفة الإضافة () والدالة أفغ () لتصبح أكثر مرونة. يمكن للمرء أن يدعو متوسط ​​مرات متعددة دون إضافة شيء. يرجى ملاحظة أن كل حالة من الصف يضيف صفيف الخاصة بها لإجراء القياسات، وأن هذا يضيف ما يصل إلى استخدام الذاكرة. يتم الاحتفاظ واجهة الطبقة صغيرة قدر الإمكان. ملاحظة: مع الإصدار 0.2 يتم إجراء جميع الأساليب أكثر وصفية. يظهر رسم صغير كيف يمكن استخدامها. ويستخدم مولد عشوائي لمحاكاة جهاز استشعار. في الإعداد () يتم مسح ميرا حتى نتمكن من البدء في إضافة بيانات جديدة. في حلقة () أولا يتم إنشاء رقم عشوائي وتحويلها إلى تعويم ليتم إضافتها إلى ميرا. ثم تتم طباعة تشغيل الجري إلى المنفذ التسلسلي. يمكن للمرء أيضا عرض على بعض لد أو إرسال عبر إيثرنت الخ عندما يتم إضافة 300 البنود يتم مسح ميرا للبدء من جديد. لاستخدام المكتبة، وجعل مجلد في سكيتبوكباثاريباري مع اسم رونينغافيراج ووضع. h و. كب هناك. يمكنك اختياريا إنشاء دليل فرعي لوضع نموذج التطبيق. 2011-01-30: النسخة الأولية 2011-02-28: الثابتة ديستروكتور مفقود في ملف. h 2011-02-28: إزالة منشئ الافتراضي 2012--. تريففالو () يوفال نافيه أضاف تريمفالو ​​(وجدت على شبكة الإنترنت) 2012-11-21: ريفاكتوريد 2012-12-30: وأضاف فيفالو () ريفاكتوريد للنشر 2014-07-03: وأضاف رمز حماية الذاكرة - إذا لم يتم تخصيص مجموعة الداخلية حجم يصبح 0. هذا هو حل المشكلة الموصوفة هنا - forum. arduino. ccindex. phptopic50473.msg1790086msg1790086 - اختبار على نطاق واسع. فئة القالب رونينغ أفيراج. h رونينغافيراج. cppThe دليل العلماء والمهندسين لمعالجة الإشارات الرقمية من قبل ستيفن دبليو سميث، دكتوراه في الطب. وكما يوحي الاسم، فإن مرشاح المتوسط ​​المتحرك يعمل عن طريق حساب عدد من النقاط من إشارة الدخل لإنتاج كل نقطة في إشارة الخرج. وفي صيغة المعادلة، يكتب هذا: حيث هي إشارة الدخل، هي إشارة الخرج، و M هو عدد النقاط في المتوسط. على سبيل المثال، في مرشاح متوسط ​​الحركة من 5 نقاط، تعطى النقطة 80 في إشارة الخرج بواسطة: كبديل، يمكن اختيار مجموعة النقاط من إشارة الدخل بشكل متناظر حول نقطة المخرجات: يقابل ذلك تغيير التجميع في إق . 15-1 من: j 0 إلى M -1، إلى: j - (M -1) 2 إلى (M -1) 2. على سبيل المثال، في مرشح متوسط ​​متحرك ب 10 نقاط، فهرس، j. يمكن تشغيلها من 0 إلى 11 (متوسط ​​الجانب الواحد) أو -5 إلى 5 (المتوسط ​​المتناظر). ويتطلب المتوسط ​​المتناظر أن يكون الرقم M رقما فرديا. البرمجة أسهل قليلا مع النقاط على جانب واحد فقط، وهذا يؤدي إلى تحول نسبي بين إشارات المدخلات والمخرجات. يجب أن تعترف بأن عامل تصفية المتوسط ​​المتحرك هو اندماج باستخدام نواة تصفية بسيطة جدا. على سبيل المثال، مرشح 5 نقاط يحتوي على نواة الفلتر: 82300، 0، 15، 15، 15، 15، 15، 0، 08230. وهذا يعني أن مرشح المتوسط ​​المتحرك هو انحراف إشارة الدخل بنبضة مستطيلة منطقة واحدة. ويبين الجدول 15-1 برنامج لتنفيذ المرشح المتوسط ​​المتحرك. كما هو التشخيص، أريد أن عرض عدد دورات في الثانية في بلدي التطبيق. (أعتقد إطارات لكل ثانية في أول شخص مطلق النار.) ولكن أنا لا أريد أن عرض أحدث قيمة، أو متوسط ​​منذ إطلاق. ما أريد حسابه هو متوسط ​​القيم X الأخيرة. سؤالي هو، أفترض، حول أفضل طريقة لتخزين هذه القيم. كان فكرتي الأولى لإنشاء مجموعة حجم ثابت، لذلك كل قيمة جديدة من شأنها أن تدفع من أقدم. هل هذا هو أفضل وسيلة للقيام بذلك إذا كان الأمر كذلك، كيف يمكنني تطبيقه تحرير: هيريس الطبقة كتبت: ركيو. أنها ترث الطابور، ولكن يفرض القدرة و ديكويس إذا لزم الأمر. سأل 22 يونيو 10 في 20:34

No comments:

Post a Comment