تتحرك من المتوسط - msp430


وأنا أعلم أن هذا يمكن تحقيقه مع دفعة كما في: ولكن أنا حقا ترغب في تجنب استخدام دفعة. لقد غوغلد ولم يتم العثور على أي أمثلة مناسبة أو مقروءة. أساسا أريد أن تتبع المتوسط ​​المتحرك لتيار مستمر من تيار من أرقام النقطة العائمة باستخدام أحدث 1000 أرقام كعينة البيانات. ما هي أسهل طريقة لتحقيق ذلك أنا جربت باستخدام صفيف دائري، المتوسط ​​المتحرك الأسي ومتوسط ​​متحرك أكثر بساطة وجدت أن النتائج من مجموعة دائرية تناسب احتياجاتي أفضل. سأل 12 يونيو 12 في 4:38 إذا احتياجاتك بسيطة، قد حاولت مجرد استخدام المتوسط ​​المتحرك الأسي. ببساطة، يمكنك إجراء متغير تراكم، وكما التعليمات البرمجية الخاصة بك ينظر في كل عينة، التعليمات البرمجية بتحديث تراكم مع القيمة الجديدة. يمكنك اختيار ألفا ثابت ما بين 0 و 1، وحساب هذا: تحتاج فقط إلى العثور على قيمة ألفا حيث تأثير عينة معينة يستمر فقط لحوالي 1000 عينة. هم، إم لا فعلا متأكد من أن هذا هو مناسب لك، والآن أن إيف وضعه هنا. المشكلة هي أن 1000 هو نافذة طويلة جدا لمتوسط ​​متحرك أسي إم غير متأكد من وجود ألفا التي من شأنها أن تنتشر المتوسط ​​على آخر 1000 أرقام، دون تدفق في حساب العائمة. ولكن إذا كنت تريد متوسط ​​أصغر، مثل 30 أرقام أو نحو ذلك، وهذا هو وسيلة سهلة جدا وسريعة للقيام بذلك. أجاب يونيو 12 12 في 4:44 1 على مشاركتك. ويمكن أن يسمح المتوسط ​​المتحرك الأسي للألفا بأن يكون متغيرا. لذلك يسمح هذا باستخدامها لحساب متوسطات قاعدة الوقت (على سبيل المثال وحدات البايت في الثانية). إذا كان الوقت منذ آخر تحديث تراكم هو أكثر من 1 ثانية، يمكنك السماح ألفا يكون 1.0. خلاف ذلك، يمكنك السماح ألفا يكون (أوسيكس منذ last1000000 الماضي). ندش ج 12 يونيو في 6:21 أساسا أريد أن تتبع المتوسط ​​المتحرك لتيار مستمر من تيار من أرقام النقطة العائمة باستخدام أحدث 1000 أرقام كعينة البيانات. لاحظ أن أدناه يقوم بتحديث المجموع كعناصر كما أددريبلاسد، وتجنب مكلفة O (N) اجتياز لحساب المجموع - اللازمة للمتوسط ​​- عند الطلب. يتم إجراء إجمالي معلمة مختلفة من T لدعم على سبيل المثال. باستخدام طويلة طويلة عندما يبلغ مجموعها 1000 ثانية s، إنت لشار s، أو ضعف إلى مجموع تعويم s. هذا هو معيب بعض الشيء في أن الأمثلة يمكن أن تذهب الماضي إنتماكس - إذا كنت تهتم يمكنك استخدام طويلة غير موقعة. أو استخدام عضو بيانات بول إضافية لتسجيل عندما يتم تعبئة الحاوية لأول مرة في حين ركوب الدراجات نامبلز حول مجموعة (أفضل ثم تسميته شيء حميدة مثل بوس). أجاب 12 يونيو 12 في 5:19 واحد يفترض أن المشغل كوتفويد (عينة T) هو في الواقع كوتيفويد أوبيراتورلتلت (عينة T) كوت. نداش أوبليس يونيو 8 14 في 11:52 أوبليس أهه. رصدت جيدا. في الواقع كنت أعني أن يكون عاملا باطلا () (عينة T) ولكن بالطبع يمكنك استخدام أي تدوين كنت أحب. سوف إصلاح، وذلك بفضل. نداشى توني D 14 14 14 في 14: 27Evaluation محور الاستشعار مع انطلاق MSP430 1.Introduction في هذا المشروع، تم تطوير البرامج الثابتة للحصول على البيانات من عدة أجهزة الاستشعار، بما في ذلك MPU9150، BMP180، SHT21، SIL29023، و TMP006.A بسيطة بروتوكول واجهة I2C وقد وضعت على التواصل مع أجهزة الاستشعار. يتم تطبيق خوارزميات تصفية خفيف للحد من الضوضاء الاستشعار، بما في ذلك نقل المتوسط ​​مرشح، مرشح القيمة المتوسطة، فير لوباس مرشح. وقد تم حساب زاوية ديفيس باستخدام أتان (قوس الظل) وظيفة والانصهار البيانات من جيروسكوب والتسارع. واجهة المستخدم تتكون من مفاتيح، المصابيح، و بيسي الناتج النص بنيت لتقييم مختلف أجهزة الاستشعار والتبديل بين وضع الطاقة المنخفضة و وضع العمل. أخيرا جميع البيانات استشعار الخام و البيانات التي تمت تصفيتها أرسلت إلى الكمبيوتر من خلال وارت و تآمر في الوقت الحقيقي. 2.Impplementation ويظهر الرسم البياني كتلة للنظام كله في Fig.1.TIs 16 متحكم قليلا تم استخدام MSP430 هنا لقراءة البيانات من بوستكسل لوحة أجهزة الاستشعار المجلس وإرسال البيانات إلى جهاز الكمبيوتر. الصورة 2. هو مخطط انسيابي للنظام. البرنامج الرئيسي هو حلقة لانهائية وفي كل جولة تقرر البرامج الثابتة التي يتم اختيار الوضع ومن ثم يقرأ البيانات من أجهزة استشعار مختلفة ويستخدم خوارزمية مختلفة بالنسبة لهم. لأن هناك الكثير من أجهزة الاستشعار التي يمكن التعامل معها، ولذلك وضعت في ثلاث مجموعات ويمكن للمستخدم اختيار أي مجموعة لتكون تعمل. بعد السلطة على النظام سوف تذهب إلى وضع أجهزة الاستشعار 0، الذي يقيم أجهزة استشعار درجة الحرارة. إذا ضغط المستخدم أي زر، سوف روتين المقاطعة التقاط العمل وسيتم تنفيذ الرموز المقابلة في الجولة المقبلة. 2.1 بروتوكول I2C منذ MSP430 لديه المدمج في وحدة I2C لذلك أسهل كثيرا للتواصل مع أجهزة الاستشعار. ومع ذلك لا تزال هناك حاجة إلى بعض بروتوكول I2C الأساسية لأن معظم أجهزة الاستشعار تتطلب بعض الأوامر للتهيئة وتسلسل الأوامر محددة لقراءة بيانات الاستشعار. أكثر من أجهزة الاستشعار تستخدم التتابع الموصوف في الشكل 3 كبروتوكول الاتصالات. مقارنة مع وارت، سبي أو غيرها من واجهة شائعة الاستخدام، I2C هو أكثر صعوبة في تنفيذ والتصحيح. لأن I2C هو نصف مزدوج، مما يعني أن كلا الأسلاك تستخدم كالمستقبل والارسال وأنه يحتاج إلى عنوان في كل معاملة، لذلك لا يمكن لأداء الذاتي الإرسال تلقي الاختبار في التصحيح. يستخدم محلل منطق مع تفسير الحافلة ثم للتصحيح الاتصالات I2C. 2.2 خوارزمية التصفية تستخدم عدة خوارزميات ترشيح في هذا المشروع، بما في ذلك المرشح المتوسط، ومرشاح القيمة المتوسطة، ومرشاح تمرير منخفض من نوع فير. ويستخدم مرشح متوسط ​​لأجهزة استشعار درجة الحرارة. لذلك فإن النتيجة هي متوسط ​​قيمة جميع أجهزة استشعار درجة الحرارة، مما يقلل من عدم الدقة من جهاز استشعار واحد. ويستخدم مرشح قيمة الوسيط لمستشعر الضوء المحيط لأن ISL29023 حساس جدا. ميزة مرشح القيمة المتوسطة هو أنه يمكن القضاء على المسامير والحفاظ على معلومات الحافة. يستخدم مرشحات تمرير منخفض الأشعة تحت الحمراء للحد من ارتفاع تردد الضوضاء في البيانات التسارع لأن التسارع قياس قوة التسارع وبالتالي تخضع للاهتزاز. 2.3 واجهة المستخدم يتم استخدام اثنين من الأزرار والمصابيح لإظهار حالة البرنامج. بوتون 1 هو لاختيار أجهزة استشعار مختلفة وزر 2 هو للتبديل بين وضع الطاقة المنخفضة ووضع العمل العادي. يتم استخدام إجراءات الروتينية للقبض على الضغط على زر العمل. أيضا بعض الرموز مكتوبة بحيث يكون وضع تغيير البرنامج فقط بعد عدة مرات من آخر الصحافة لمنع الضوضاء أو ميسوبيراتيون. 2.4 بروتوكول وارت بعد حساب البيانات تصفية MSP430 يرسل البيانات إلى جهاز الكمبيوتر من خلال وارت. يتم عرض جميع البيانات في شكل أسي لذلك يتم استخدام وظيفة سبرينتف لتحويل البيانات نقطة تعويم ل string. Fig.5 يظهر MSP430 هو إرسال سلسلة 12345.79 ،. 3. ريسولت 3.1 مجسات درجة الحرارة هناك 4 مجسات درجة الحرارة على مجلس الكلور. منحنى الخطوة الحمراء هي البيانات من MPU9150، وهو خشن جدا مقارنة مع أجهزة الاستشعار الأخرى حتى تجاهلها قبل مرشح المتوسطة حساب. فيغ 6 يبين جميع قيم درجة الحرارة . 3.2 الرطوبة، الضوء المحيط، مجسات ضغط الهواء تظهر الرطوبة، الضوء المحيط، وضغط الهواء البيانات في Fig.7.منحنى على الجزء السفلي هو بيانات الإضاءة المحيطة. يمكننا أن نرى أن هناك الكثير من المسامير كما لوحت بلدي ضوء فلاش إلى أجهزة الاستشعار. ولكن تقريبا كل المسامير يتم تصفيتها باستخدام مرشح قيمة المتوسطة. 3.3 الجيروسكوب والتسارع البيانات الانصهار Fig.8 يبين البيانات جيروسكوب (الأحمر)، التسارع (البرتقالي) البيانات، وزاوية الجهاز (أسود) data. As يمكننا أن نرى الضوضاء في البيانات زاوية يتم تصفيتها إلى حد كبير. 4.الاستنتاج انتهى هذا المشروع بنجاح جميع الأهداف. أكثر صعوبة وتستغرق وقتا طويلا في هذا المشروع هو الاتصالات I2C وأجهزة الاستشعار تجلب المتابعة. بالإضافة إلى الصعوبات حول I2C وصفها في القسم السابق، كل جهاز استشعار يحتاج إلى تهيئة، وكتب وفقا لكتيبات المستخدم، والتي استغرقت الكثير من الوقت للتحقق والتصحيح. هنا هي الأعمال التي يتعين القيام به في المستقبل. على الرغم من انخفاض وضع الطاقة المستخدمة في هذا المشروع ولكن بدوره فقط على من قبل المستخدم. ويمكن تخفيض استهلاك الطاقة مزيد من خلال تشغيل وضع الطاقة المنخفضة بدلا من تشغيل وحدة المعالجة المركزية من أجل لا شيء في انتظار I2C الصفقة لإكمال. حساب زاوية الجهاز باستخدام جيروسكوب والتسارع لم تتبع الحركة بسرعة لأن الكثير من الوقت ينفق على نقل البيانات إلى PC. This يمكن حلها باستخدام وارت إرسال المقاطعة كاملة ونقل العازلة. تحقق من رمز جيت هاب: انقر فوق مشاركة هذا: كما ذكر آخرون، يجب عليك النظر في مرشح الاستجابة السريعة (لانهائية) استجابة بدلا من فير (استجابة النبض استجابة) فلتر كنت تستخدم الآن. هناك أكثر من ذلك، ولكن للوهلة الأولى يتم تنفيذ مرشحات فير كتحويلات واضحة ومرشحات إير مع المعادلات. مرشح إير معين يمكنني استخدام الكثير في ميكروكنترولر هو مرشح واحد مرشح تمرير منخفض. هذا هو المعادل الرقمي لمرشح التناظرية R-C بسيط. بالنسبة لمعظم التطبيقات، سيكون لها خصائص أفضل من فلتر المربع الذي تستخدمه. ومعظم استخدامات فلتر الصندوق الذي واجهته هي نتيجة لشخص لا يولي اهتماما في فئة معالجة الإشارات الرقمية، وليس نتيجة لخصائصها الخاصة. إذا كنت ترغب فقط في تخفيف الترددات العالية التي تعرفها هي الضوضاء، مرشح واحد مرشح تمرير منخفض أفضل. أفضل طريقة لتنفيذ واحد رقميا في متحكم هو عادة: فيلت lt-- فيلت فف (نيو - فيلت) فيلت هو قطعة من حالة بيرسيستانت. هذا هو المتغير الثابت الوحيد الذي تحتاجه لحساب هذا الفلتر. نيو هو القيمة الجديدة التي يتم تحديث الفلتر مع هذا التكرار. فف هو جزء التصفية. الذي يضبط ثقل المرشح. ننظر إلى هذه الخوارزمية ونرى أن ل فف 0 مرشح هو بلا حدود الثقيلة منذ الإخراج لا يتغير أبدا. ل فف 1، لها حقا أي مرشح على الإطلاق منذ الإخراج فقط يتبع المدخلات. القيم المفيدة في ما بين. على الأنظمة الصغيرة التي تختار فف لتكون 12 N بحيث يمكن مضاعفة بواسطة فف يمكن أن يتحقق كما تحول الصحيح من قبل N بت. فعلى سبيل المثال، يمكن أن يكون فف 116 وأن يتضاعف من خلال فف نقلا سليما قدره 4 بتات. وإلا فإن هذا الفلتر يحتاج إلى طرح واحد وإضافة واحدة فقط، على الرغم من أن الأرقام عادة ما تحتاج إلى أن تكون أوسع من قيمة المدخلات (المزيد عن الدقة العددية في قسم منفصل أدناه). وعادة ما تأخذ قراءات أد أسرع بكثير من الحاجة إليها وتطبيق اثنين من هذه المرشحات تتالي. هذا هو المعادل الرقمي لمرشحين R-C في السلسلة، ويخفف بنسبة 12 ديوكتاف فوق تردد لفة. ومع ذلك، لقراءات أد يقابل عادة أكثر ملاءمة للنظر في عامل التصفية في المجال الزمني من خلال النظر في ردها خطوة. هذا يخبرك مدى سرعة النظام الخاص بك سوف نرى تغيير عندما الشيء الذي يقيس التغييرات. لتسهيل تصميم هذه المرشحات (وهو ما يعني فقط اختيار فف وتحديد عدد منهم لتتالي)، يمكنني استخدام فلتبيتس برنامجي. يمكنك تحديد عدد بتات التحول لكل فف في سلسلة المتتالية من المرشحات، ويحسب استجابة الخطوة والقيم الأخرى. في الواقع أنا عادة تشغيل هذا عن طريق بلدي السيناريو المجمع بلوتفيلت. يعمل هذا فيلتبيتس، مما يجعل ملف كسف، ثم مؤامرات ملف كسف. على سبيل المثال، هنا نتيجة بلوتفيلت 4 4: المعلمتان إلى بلوتفيلت يعني أنه سيكون هناك مرشحين تتالي من النوع الموصوف أعلاه. وتشير قيم 4 إلى عدد بتات التحول لتحقيق المضاعفة بواسطة فف. وبالتالي فإن قيمتي فف هي 116 في هذه الحالة. تتبع الأحمر هو استجابة خطوة الوحدة، وهو الشيء الرئيسي للنظر في. على سبيل المثال، هذا يخبرك أنه إذا تغيرت الإدخال على الفور، فإن إخراج المرشح المجمع يستقر إلى 90 من القيمة الجديدة في 60 تكرارا. إذا كنت تهتم حوالي 95 تسوية الوقت ثم عليك أن تنتظر حوالي 73 التكرار، و 50 وقت التسوية فقط 26 التكرارات. يظهر التتبع الأخضر الناتج من ارتفاع السعة الكاملة واحد. هذا يعطيك فكرة عن قمع الضوضاء العشوائية. يبدو أن أي عينة واحدة سوف يسبب أكثر من 2.5 تغيير في الإخراج. التتبع الأزرق هو إعطاء شعور شخصي لما يفعله هذا الفلتر مع الضوضاء البيضاء. هذا ليس اختبار صارم لأنه لا يوجد ضمان ما بالضبط المحتوى كان من الأرقام العشوائية التقطت كما المدخلات الضوضاء البيضاء لهذا المدى من بلوتفيلت. لها فقط لتعطيك شعور الخام من كم سوف تكون سحق وكيف سلاسة هو. بلوتفيلت، فلبيتبيتس ربما، والكثير من الاشياء المفيدة الأخرى، وخاصة بالنسبة لتطوير البرامج الثابتة الموافقة المسبقة عن علم هو متاح في إصدار برنامج تطوير أدوات الموافقة المسبقة عن علم في بلدي التنزيلات البرمجيات الصفحة. وأضاف حول الدقة العددية أرى من التعليقات والآن إجابة جديدة أن هناك مصلحة في مناقشة عدد البتات اللازمة لتنفيذ هذا الفلتر. ويلاحظ أن المضاعفة بواسطة فف ستؤدي إلى إنشاء بتات لوغ 2 (فف) جديدة تحت النقطة الثنائية. وفيما يتعلق بالنظم الصغيرة، يختار عادة التردد فف ليكون 12 N بحيث تتحقق هذه المضاعفة فعليا بواسطة نوبة صحيحة من البتات N. وبالتالي فإن فيلت عادة ما يكون عددا صحيحا من النقاط الثابتة. لاحظ أن هذا لا يغير أي من الرياضيات من وجهة المعالجات للعرض. على سبيل المثال، إذا كنت تقوم بتصفية قراءات أد 10 بت و N 4 (فف 116)، فأنت بحاجة إلى 4 أجزاء بت أقل من 10 بت عدد صحيح قراءات أد. واحد معظم المعالجات، يود أن تفعل 16 بت عدد صحيح العمليات بسبب قراءات م 10 بت. في هذه الحالة، لا يزال بإمكانك القيام بالضبط نفس 16 بت عدد صحيح أوبيرتيونس، ولكن تبدأ بقراءات أد اليسار تحولت 4 بت. المعالج لا يعرف الفرق ولا تحتاج إلى. القيام بالرياضيات على كامل عدد صحيح 16 بت يعمل ما إذا كنت تعتبرها لتكون 12.4 نقطة ثابتة أو صحيح 16 بت الأعداد الصحيحة (16.0 نقطة ثابتة). بشكل عام، تحتاج إلى إضافة N بت كل مرشح القطب إذا كنت لا تريد إضافة الضوضاء بسبب التمثيل العددي. في المثال أعلاه، مرشح الثاني من اثنين يجب أن يكون 1044 18 بت لا تفقد المعلومات. في الممارسة العملية على جهاز 8 بت يعني أنك تستخدم قيم 24 بت. من الناحية الفنية فقط القطب الثاني من اثنين سوف تحتاج إلى قيمة أوسع، ولكن لبساطة البرامج الثابتة وعادة ما تستخدم نفس التمثيل، وبالتالي نفس الرمز، لجميع أقطاب مرشح. وعادة ما أكتب روتين فرعي أو ماكرو لتنفيذ عملية قطب فلتر واحد، ثم تطبيق ذلك على كل قطب. ما إذا كان الروتين الفرعي أو الماكرو يعتمد على ما إذا كانت الدورات أو ذاكرة البرنامج أكثر أهمية في هذا المشروع بالذات. في كلتا الحالتين، وأنا استخدم بعض الدولة الصفر لتمرير جديد في سوبروتينيماكرو، الذي يقوم بتحديث فيلت، ولكن أيضا الأحمال التي في نفس حالة الصفر كان جديد في. وهذا يجعل من السهل تطبيق أقطاب متعددة منذ تحديث فيلت من قطب واحد هو الجديد من القادم. عند روتين فرعي، من المفيد أن يكون مؤشر يشير إلى فيلت على الطريق في، والتي يتم تحديثها فقط بعد فيلت على الطريق للخروج. وبهذه الطريقة يعمل الروتين الفرعي تلقائيا على فلاتر متتالية في الذاكرة إذا تم استدعاؤها عدة مرات. مع ماكرو كنت لا تحتاج إلى مؤشر منذ كنت تمر في العنوان للعمل على كل التكرار. أمثلة التعليمات البرمجية هنا مثال على ماكرو كما هو موضح أعلاه ل بيك 18: وهنا ماكرو مماثل ل بيك 24 أو دسبيك 30 أو 33: يتم تنفيذ كل هذه الأمثلة وحدات الماكرو باستخدام المعالج المسبق المجمع المجمع بيك. التي هي أكثر قدرة من أي من مرافق الماكرو المدمج. كلاباشيو: قضية أخرى كان ينبغي أن أذكر هو تنفيذ البرامج الثابتة. يمكنك كتابة قطب واحد مرشح تمرير منخفض روتين مرة واحدة، ثم تطبيقه عدة مرات. في الواقع أنا عادة كتابة مثل هذا الروتين الفرعي لاتخاذ مؤشر في الذاكرة إلى حالة التصفية، ثم يكون ذلك مقدما المؤشر بحيث يمكن أن يسمى في الخلافة بسهولة لتحقيق مرشحات متعددة القطب. نداش أولين لاثروب أبر 20 12 في 15:03 1. شكرا جزيلا على إجاباتك - كل منهم. قررت استخدام هذا المرشح إير، ولكن لا يتم استخدام هذا الفلتر كمرشح لوباس القياسية، لأنني بحاجة إلى متوسط ​​القيم العداد ومقارنتها للكشف عن التغييرات في نطاق معين. لأن هذه القيم فان تكون من أبعاد مختلفة جدا اعتمادا على الأجهزة أردت أن تأخذ في المتوسط ​​من أجل أن تكون قادرة على الاستجابة لهذه التغييرات محددة الأجهزة تلقائيا. نداش سينسلن 21 مايو 12 في 12:06 إذا كنت تستطيع أن تعيش مع تقييد قوة عددين من العناصر إلى المتوسط ​​(أي 2،4،8،16،32 الخ) ثم الفجوة يمكن بسهولة وكفاءة القيام به على وانخفاض الأداء الجزئي مع عدم وجود تقسيم مخصص لأنه يمكن القيام به كما تحول قليلا. كل حق التحول هو قوة واحدة من اثنين على سبيل المثال: يعتقد أوب كان لديه مشكلتين، وتقسيم في PIC16 والذاكرة لعزله حلقة. وتبين هذه الإجابة أن التقسيم ليس صعبا. ومن المسلم به أنه لا يعالج مشكلة الذاكرة ولكن نظام سي يسمح إجابات جزئية، ويمكن للمستخدمين اتخاذ شيء من كل إجابة لأنفسهم، أو حتى تحرير والجمع بين الأجوبة الأخرى 39s. وبما أن بعض الإجابات الأخرى تتطلب عملية تقسيم، فإنها غير مكتملة بالمثل لأنها لا تظهر كيفية تحقيق ذلك بكفاءة على PIC16. نداش مارتن أبر 20 12 في 13:01 هناك جواب لمرشح متوسط ​​متحرك صحيح (الملقب فلتر بوكسكار) مع متطلبات الذاكرة أقل، إذا كنت لا تمانع في الامتصاص. تسمى مرشح المتكامل التكامل مشط (سيك). والفكرة هي أن لديك تكامل التي تأخذ الاختلافات على مدى فترة زمنية، والجهاز الرئيسي لحفظ الذاكرة هو أنه من خلال تقليص، لم يكن لديك لتخزين كل قيمة التكامل. ويمكن تنفيذه باستخدام بسيودوكود التالية: الخاص بك المتوسط ​​المتوسط ​​المتحرك الفعال هو ديسيماتيونفاكتورستاتيز ولكن تحتاج فقط للحفاظ على عينات ستاتيزيز. من الواضح أنك يمكن أن تحصل على أداء أفضل إذا كان لديك ستيزيز و ديسيماتيونفاكتور هي صلاحيات 2، بحيث يتم استبدال الشعبة والباقي مشغلي التحولات وقناع-أندس. بوستسكريبت: أنا أتفق مع أولين أنه يجب عليك دائما النظر في مرشحات إير بسيطة قبل مرشح المتوسط ​​المتحرك. إذا كنت لا تحتاج إلى ترددات خالية من فلتر علبة التصفية، فإن فلتر تمرير منخفض ذو عمود واحد أو عمودين قد يعمل بشكل جيد. من ناحية أخرى، إذا كنت ترشيح لأغراض الإفساد (أخذ مدخلات عالية معدل العينة ومتوسطها لاستخدامها من قبل عملية معدل منخفض) ثم مرشح سيك قد يكون مجرد ما كنت تبحث عنه. (خاصة إذا كان يمكنك استخدام stateize1 وتجنب رينغبوفر تماما مع مجرد واحد قيمة التكامل السابقة) ثيريس بعض تحليل متعمق من الرياضيات وراء استخدام أول مرشح إيير النظام الذي أولين لاثروب قد وصفت بالفعل على تبادل الإشارات الرقمية مكدس معالجة (يتضمن الكثير من الصور الجميلة). معادلة هذا المرشح إير هو: يمكن تنفيذ هذا باستخدام الأعداد الصحيحة فقط ولا تقسيم باستخدام التعليمات البرمجية التالية (قد تحتاج إلى بعض التصحيح كما كنت أكتب من الذاكرة.) هذا المرشح يقترب متوسط ​​متحرك من عينات K الأخيرة عن طريق تحديد قيمة ألفا إلى 1K. قم بذلك في التعليمات البرمجية السابقة من خلال تحديد بيتس ل LOG2 (K)، أي ل K 16 مجموعة بيتس إلى 4، ل K 4 مجموعة بيتس إلى 2، الخ (إل التحقق من التعليمات البرمجية المدرجة هنا في أقرب وقت وأنا الحصول على تغيير و تحرير هذه الإجابة إذا لزم الأمر.) أجاب يونيو 23 12 في 4:04 هيريس مرشح تمرير منخفض القطب واحد (المتوسط ​​المتحرك، مع قطع التردد كوتوفريكنسي). بسيطة جدا، سريع جدا، يعمل كبيرة، وتقريبا لا الذاكرة العامة. ملاحظة: كافة المتغيرات لها نطاق خارج وظيفة التصفية، باستثناء ما تم تمريره في نيو إنبوت ملاحظة: هذا هو مرشح مرحلة واحدة. مراحل متعددة يمكن أن تتعاقب معا لزيادة حدة الفلتر. إذا كنت تستخدم أكثر من مرحلة واحدة، سيكون لديك لضبط ديكايفاكتور (كما يتعلق قطع التردد) للتعويض. ومن الواضح أن كل ما تحتاجه هو أن هذين الخطين وضعت في أي مكان، وأنها لا تحتاج إلى وظيفة خاصة بهم. ويوجد في هذا المرشح وقت تصاعدي قبل أن يمثل المتوسط ​​المتحرك إشارة الدخل. إذا كنت بحاجة إلى تجاوز هذا الوقت المنحدر، يمكنك فقط تهيئة موفينغافيراج إلى القيمة الأولى من نيو إنبوت بدلا من 0، ونأمل أن أولينبوت الأول ليس خارجا. (كوتوفريكنسيزامبليرات) تتراوح بين 0 و 0.5. ديكايفاكتور هو قيمة بين 0 و 1، وعادة ما تكون قريبة من 1. العائمة واحدة الدقة جيدة بما فيه الكفاية لمعظم الأشياء، وأنا فقط تفضل الزوجي. إذا كنت بحاجة إلى التمسك مع الأعداد الصحيحة، يمكنك تحويل ديكيفاكتور والعامل السعة إلى أعداد صحيحة كسور، حيث يتم تخزين البسط كما العدد الصحيح، والمقام هو عدد صحيح من 2 (حتى تتمكن من التحول قليلا إلى اليمين كما القاسم بدلا من الاضطرار إلى تقسيم خلال حلقة مرشح). على سبيل المثال، إذا ديكايفاكتور 0.99، وتريد استخدام الأعداد الصحيحة، يمكنك تعيين ديكايفاكتور 0.99 65536 64881. ثم في أي وقت تتضاعف من قبل ديكايفاكتور في حلقة تصفية الخاص بك، مجرد تحويل النتيجة 16. لمزيد من المعلومات حول هذا، كتاب ممتاز أن أونلين، الفصل 19 على الفلاتر التكرارية: dspguidech19.htm بس بالنسبة لنموذج المتوسط ​​المتحرك، هناك طريقة مختلفة لتحديد ديكاي فاكتور و أمبليتيودفاكتور التي قد تكون أكثر ملاءمة لاحتياجاتك، فترى أنك ترغب في السابق، حوالي 6 بنود متوسطها معا، والقيام بها بحذر، يود إضافة 6 بنود وتقسيمها 6، لذلك يمكنك تعيين أمبليتيودفاكتور إلى 16، و ديكايفاكتور إلى (1.0 - أمبليتيودفاكتور). أجاب 14 مايو 12 في 22:55 وقد علق الجميع آخر بدقة على فائدة إير مقابل فير، وعلى السلطة من اثنين من الانقسام. معرف فقط لإعطاء بعض التفاصيل التنفيذ. أدناه يعمل بشكل جيد على ميكروكنترولر صغيرة مع أي فبو. ثيريز لا الضرب، وإذا كنت تبقي N قوة اثنين، كل تقسيم هو دورة واحدة بت التحول. المخزن المؤقت الدائري حلقة معلومات أساسية: إبقاء المخزن المؤقت قيد التشغيل من قيم N الماضية، و سوم قيد التشغيل من كافة القيم في المخزن المؤقت. في كل مرة تأتي عينة جديدة في طرح أقدم قيمة في المخزن المؤقت من سوم، استبداله مع العينة الجديدة، إضافة عينة جديدة إلى سوم، والإخراج سومن. تعديل إر حلقة عازلة: الحفاظ على سوم تشغيل القيم N الماضية. في كل مرة تأتي عينة جديدة في، سوم - سومن، إضافة في العينة الجديدة، والإخراج سومن. أجاب 28 أغسطس 13 في 13:45 إذا I39m قراءة لك الحق، you39re تصف مرشح من الدرجة الأولى إر قيمة you39re طرح isn39t أقدم قيمة التي تسقط، ولكن بدلا من ذلك متوسط ​​القيم السابقة. يمكن أن تكون مرشحات إر من الدرجة الأولى مفيدة بالتأكيد، ولكن I39m غير متأكد ما تقصد عندما تقترح أن الإخراج هو نفسه لجميع الإشارات الدورية. في معدل عينة 10 كيلو هرتز، تغذية موجة 100HZ مربع في مرشح مربع 20 مرحلة سوف تسفر عن إشارة التي ترتفع بشكل موحد ل 20 عينة، يجلس عالية لمدة 30، قطرات بشكل موحد ل 20 عينة، ويجلس منخفضة ل 30. ترتيب الأول فلتر إير. نداش سوبيركات 28 أغسطس 13 في 15:31 سوف تسفر عن موجة التي تبدأ بشكل حاد ارتفاع وتدريجيا مستويات قريبة من (ولكن ليس في) المدخلات القصوى، ثم يبدأ بحدة السقوط وتدريجيا مستويات قبالة بالقرب (ولكن ليس في) الحد الأدنى المدخلات. سلوك مختلف جدا. نداش سوبيركات 28 أغسطس 13 الساعة 15:32 قضية واحدة هي أن المتوسط ​​المتحرك بسيط قد أو قد لا تكون مفيدة. مع فلتر إير، يمكنك الحصول على مرشح لطيفة مع كالكس قليلة نسبيا. منطقة معلومات الطيران التي تصفها يمكن أن تعطيك فقط مستطيل في الوقت المناسب - المخلص في التكرار - ويمكنك إدارة 39t الفصوص الجانبية. قد يكون من المفيد أن رمي في عدد قليل من عدد صحيح مضاعفات لجعله لطيفة الطيف التماثل التماثل إذا كنت يمكن أن تدخر القراد على مدار الساعة. نداش سكوت سيدمان 29 أغسطس 13 في 13:50 سكوتسيدمان: لا حاجة لتضاعف إذا كان واحد ببساطة لديه كل مرحلة من منطقة معلومات الطيران إما إخراج متوسط ​​المدخلات لتلك المرحلة وقيمتها المخزنة السابقة، ومن ثم تخزين المدخلات (إذا كان واحد لديه النطاق الرقمي، يمكن للمرء استخدام المجموع بدلا من المتوسط). إذا كان ذلك أفضل من فلتر مربع يعتمد على التطبيق (استجابة الخطوة من مرشح مربع مع تأخير كامل من 1ms، على سبيل المثال، سوف يكون d2dt ارتفاع سيئة عند تغيير المدخلات، ومرة ​​أخرى 1ms في وقت لاحق، ولكن سيكون الحد الأدنى ممكن دت لمرشح مع تأخير 1ms الكلي). نداش سوبيركات 29 أغسطس 13 في 15:25 كما قال ميكيسيلكتريكستوف، إذا كنت حقا بحاجة إلى تقليل احتياجات الذاكرة الخاصة بك، وأنت لا تمانع في الاستجابة الاندفاع الخاص بك كونها أسية (بدلا من نبض مستطيلة)، وأود أن أذهب لمرشح متوسط ​​متحرك أسي . أنا استخدامها على نطاق واسع. مع هذا النوع من التصفية، أنت لا تحتاج إلى أي المخزن المؤقت. لم يكن لديك لتخزين N عينات الماضي. واحد فقط. لذلك، متطلبات الذاكرة الخاصة بك الحصول على خفض بنسبة عامل N. أيضا، أنت لا تحتاج إلى أي تقسيم لذلك. المضاعفات فقط. إذا كان لديك الوصول إلى الحساب العائم نقطة، واستخدام المضاعفات نقطة العائمة. خلاف ذلك، لا عدد صحيح مضاعفات والتحولات إلى اليمين. ومع ذلك، نحن في عام 2012، وأود أن أوصي لك استخدام المجمعين (و مكوس) التي تسمح لك للعمل مع أرقام نقطة العائمة. إلى جانب كونها أكثر كفاءة الذاكرة وأسرع (لم يكن لديك لتحديث العناصر في أي العازلة دائرية)، وأود أن أقول هو أيضا أكثر طبيعية. لأن استجابة النبض الأسي تتطابق بشكل أفضل مع الطريقة التي تتصرف بها الطبيعة، في معظم الحالات. أجاب 20 أبر 12 في 9:59 قضية واحدة مع فلتر إير كما لمست تقريبا من قبل أولين و سوبيركات ولكن تجاهلها على ما يبدو من قبل الآخرين هو أن التقريب أسفل يدخل بعض عدم الدقة (وربما بياسترونكاتيون). على افتراض أن N هو قوة اثنين، ويستخدم فقط عدد صحيح الحساب، والتحول الحق لا القضاء بشكل منهجي على لسبس من العينة الجديدة. وهذا يعني أن المدة التي يمكن أن تكون سلسلة من أي وقت مضى، فإن المتوسط ​​لن تأخذ تلك في الاعتبار. على سبيل المثال، افترض أن سلسلة تناقص ببطء (8،8،8،7،7،7،7،6،6)، وتفترض أن المتوسط ​​هو في الواقع 8 في البداية. قبضة 7 عينة سيجلب المتوسط ​​إلى 7، مهما كانت قوة التصفية. فقط لعينة واحدة. نفس القصة لمدة 6، الخ الآن التفكير في العكس. وتسلسل دوري الدرجة الاولى الايطالي. سيبقى المتوسط ​​على 7 إلى الأبد، حتى تكون العينة كبيرة بما فيه الكفاية لجعلها تتغير. بالطبع، يمكنك تصحيح للتحيز عن طريق إضافة 12N2، ولكن هذا لن تحل حقا مشكلة الدقة. في هذه الحالة سوف تنخفض سلسلة البقاء إلى الأبد في 8 حتى تكون العينة 8-12 (N2). بالنسبة إلى N4 على سبيل المثال، فإن أي عينة فوق الصفر ستبقي على المتوسط ​​دون تغيير. وأعتقد أن إيجاد حل لذلك يعني ضمنا تراكما لقذائف ال لسب المفقودة. ولكن لم أكن أبعد من أن يكون كود جاهزة، و إم متأكد من أنها لن تضر السلطة إير في بعض الحالات الأخرى من سلسلة (على سبيل المثال ما إذا كان 7،9،7،9 سوف متوسط ​​إلى 8 ثم). أولين، سلسلة من مرحلتين أيضا سوف تحتاج إلى بعض التفسير. هل تعني عقد قيمتين متوسطتين نتيجة أول تغذية في الثانية في كل تكرار. ما فائدة هذا

Comments