وأنا أعلم أن هذا يمكن تحقيقه مع دفعة كما per. But أنا حقا أود أن تجنب استخدام دفعة لدي غوغلد ولم يتم العثور على أي أمثلة مناسبة أو مقروءة. في الأساس أريد أن تتبع المتوسط المتحرك لتيار مستمر من تيار من أرقام النقطة العائمة باستخدام أحدث 1000 رقم كعينة بيانات. ما هي أسهل طريقة لتحقيق هذا. اختبرت باستخدام صفيف دائري ومتوسط متحرك أسي ومتوسط متحرك أكثر بساطة ووجدت أن النتائج من المصفوفة الدائرية تناسب احتياجاتي أفضل. asked يونيو 12 12 في 4 38.If احتياجاتك بسيطة، قد حاولت مجرد استخدام المتوسط المتحرك الأسي. ببساطة، يمكنك إجراء متغير تراكم، وكما التعليمات البرمجية الخاصة بك ينظر في كل عينة، رمز بتحديث تراكم مع قيمة جديدة يمكنك اختيار ألفا ثابت ما بين 0 و 1، وحساب هذا. كل ما تحتاجه هو العثور على قيمة ألفا حيث تأثير عينة معينة يستمر فقط لحوالي 1000 عينة. Hmm، أنا لست متأكدا فعلا هذا هو مناسبة لك، الآن ر قبعة أنا وضعت عليه هنا المشكلة هي أن 1000 هو نافذة طويلة جدا لمتوسط متحرك أسي أنا لست متأكدا من وجود ألفا التي من شأنها أن تنتشر المتوسط على آخر 1000 أرقام، دون تدفق في حساب النقطة العائمة ولكن إذا كنت أراد متوسطا أصغر، مثل 30 أرقام أو نحو ذلك، وهذا هو وسيلة سهلة جدا وسريعة للقيام بذلك. مسألة 12 يونيو 12 في 4 44. 1 على مشاركتك المتوسط المتحرك الأسي يمكن أن تسمح ألفا أن تكون متغيرة لذلك هذا يسمح لها تستخدم لحساب متوسطات قاعدة الوقت على سبيل المثال بايت في الثانية إذا كان الوقت منذ آخر تحديث تراكم أكثر من 1 ثانية، يمكنك السماح ألفا يكون 1 0 خلاف ذلك، يمكنك السماح ألفا يكون أوسيكس منذ آخر تحديث 1000000 ج 12 يونيو 12 12 في 6 21 . باسيكالي أريد تتبع المتوسط المتحرك لتيار مستمر لتيار من أرقام النقطة العائمة باستخدام أحدث 1000 رقم كعينة بيانات. لاحظ أن أدناه يقوم بتحديث المجموع كعناصر كما تمت إضافتها محلها، وتجنب تكلفة تشغيل الاجتياز لحساب المبلغ - اللازمة ل e - عند الطلب. وتكون المجموع معلما مختلفا عن T لدعم مثلا استخدام طول طويل عندما يبلغ مجموعه 1000 ثانية s أو إنت ل s s أو ضعف إلى إجمالي s فلوت s. وهذا معيب بعض الشيء في أن نامبلز يمكن تذهب الماضي إنتماكس - إذا كنت تهتم يمكنك استخدام طويلة غير موقعة أو استخدام عضو بيانات بول إضافية لتسجيل عندما يتم تعبئة الحاوية لأول مرة في حين ركوب الدراجات نامزيمبلز حول مجموعة أفضل ثم إعادة تسمية شيء حميدة مثل pos. leases يونيو 12 12 في 5 19.one يفترض أن عامل الفراغ عينة T هو في الواقع باطلة عامل T عينة أوبليس يونيو 8 14 في 11 52. أوبليس أهه رصدت بشكل جيد في الواقع يعني أنا أن يكون عامل باطل تي عينة ولكن بالطبع يمكنك استخدام أي نوتاتيون كنت أحب سوف إصلاح، شكرا توني D جون 8 14 في 14 27. كما ذكر آخرون، يجب عليك النظر في مرشح استجابة الاندفاع لانهائي إير بدلا من المرشح الاستجابة النبضية محددة فير تستخدم الآن هناك أكثر من ذلك، ولكن للوهلة الأولى يتم تنفيذ مرشحات فير كما هو واضح كونفولوتيو مرشحات نس و إير مع المعادلات. المرشح إير معين يمكنني استخدام الكثير في ميكروكنترولر هو القطب واحد مرشح تمريرة منخفضة هذا هو المعادل الرقمي للمرشح التناظرية أرسي بسيط بالنسبة لمعظم التطبيقات، وهذه سيكون لها خصائص أفضل من فلتر مربع أن تستخدم معظم استخدامات مرشح مربع التي واجهتها هي نتيجة لشخص لا تولي اهتماما في فئة معالجة الإشارات الرقمية، وليس نتيجة لخصائصها الخاصة إذا كنت ترغب فقط في تخفيف الترددات العالية التي تعرفها هي الضوضاء، و قطب واحد مرشح تمرير منخفض هو أفضل أفضل طريقة لتنفيذ واحد رقميا في متحكم هو عادة. ملء - فيلت فف جديد - FILT. FILT هو قطعة من حالة بيرسيستانت هذا هو المتغير بيرسيستانت الوحيد الذي تحتاج إلى حساب هذا الفلتر جديد هو القيمة الجديدة التي يتم تحديث الفلتر مع هذا التكرار فف هو جزء التصفية الذي يضبط ثقل المرشح انظر إلى هذه الخوارزمية ونرى أنه بالنسبة إلى فف 0 الفلتر هو إنفين إيتيلي الثقيلة منذ الإخراج لا يتغير أبدا ل فف 1، انها حقا لا مرشح على الإطلاق منذ الإخراج فقط يتبع المدخلات القيم المفيدة في ما بين على الأنظمة الصغيرة التي تختار فف لتكون 1 2 N بحيث يمكن مضاعفة من قبل فف يمكن أن يتحقق على سبيل المثال، فف قد يكون 1 16 و تتضاعف بواسطة فف وبالتالي تحول صحيح من 4 بتات إلا هذا المرشح يحتاج فقط طرح واحد وإضافة واحدة، على الرغم من أن الأرقام عادة ما تحتاج إلى أن تكون أوسع من قيمة المدخلات أكثر على الدقة العددية في قسم منفصل أدناه. أنا عادة ما تأخذ قراءات أد أسرع بكثير من الحاجة إليها وتطبيق اثنين من هذه المرشحات المتتالية هذا هو ما يعادل الرقمية اثنين من مرشحات أرسي في السلسلة، ويخفف بنسبة 12 ديسيبل اوكتاف فوق تردد لفة ومع ذلك، لقراءات أد فإنه عادة ما تكون أكثر صلة للنظر في عامل التصفية في المجال الزمني من خلال النظر في ردها خطوة هذا يخبرك مدى سرعة النظام الخاص بك وسوف نرى تغيير عندما الشيء الذي يقيس التغييرات. للتيسير تصميم هذه المرشحات التي تعني فقط اختيار فف وتحديد عدد منهم لتتالي، يمكنني استخدام فلتبيتس برنامج قمت بتحديد عدد بت التحول لكل فف في سلسلة متتالية من المرشحات، ويحسب استجابة الخطوة والقيم الأخرى في الواقع أنا عادة تشغيل هذا عن طريق بلدي السيناريو المجمع بلوتفيلت هذا يعمل فلتبيتس، مما يجعل ملف كسف، ثم المؤامرات ملف كسف على سبيل المثال، هنا هو نتيجة بلوتفيلت 4 4. معلمتين ل بلوتفيلت يعني سيكون هناك اثنين من المرشحات تتالي من نوع الموضحة أعلاه قيم 4 تشير إلى عدد بتات التحول لتحقيق مضاعفة بواسطة فف القيم اثنين فف هي بالتالي 1 16 في هذه الحالة. التتبع الأحمر هو استجابة خطوة الوحدة، وهو الشيء الرئيسي للنظر في على سبيل المثال، هذا يخبرك أنه إذا تغيرت المدخلات على الفور، فإن الإخراج من مرشح مجتمعة يستقر إلى 90 من القيمة الجديدة في 60 التكرارات إذا كنت تهتم حوالي 95 وقت التسوية ثم عليك أن تنتظر حوالي 73 التكرارات، و 50 وقت التسوية فقط 26 التكرار. التتبع الأخضر يظهر لك الإخراج من واحد ارتفاع السعة الكامل هذا يعطيك بعض فكرة الضجيج العشوائي يبدو وكأنه لا عينة واحدة سوف يسبب أكثر من 2 5 تغيير في الإخراج. النتيجة الزرقاء هو إعطاء شعور شخصي ما يفعله هذا المرشح مع الضوضاء البيضاء هذا ليس اختبار صارم لأنه لا يوجد ضمان ما بالضبط المحتوى كان من أرقام عشوائية التقطت كما إدخال الضوضاء البيضاء لهذا المدى من بلوتفيلت انها فقط لتعطيك الخام والشعور كم سوف يكون سحق وكيف سلاسة it. PLOTFILT، فلبيتبيتس ربما، والكثير من الاشياء المفيدة الأخرى، وخاصة بالنسبة لتطوير البرامج الثابتة الموافقة المسبقة عن علم هو متاح في إصدار برنامج تطوير أدوات الموافقة المسبقة عن علم في بلدي التنزيلات البرمجيات page. Added عن الدقة العددية. أرى من التعليقات والآن إجابة جديدة أن هناك مصلحة في مناقشة عدد البتات اللازمة لتنفيذ هذا المرشح لاحظ أن ضرب من قبل فف سيخلق لوغ 2 فف بت جديدة تحت النقطة الثنائية في الأنظمة الصغيرة، عادة ما يتم اختيار فف ليكون 1 2 N بحيث يتم تحقيق هذه المضاعفة في الواقع عن طريق التحول الصحيح من N بتس. فيلت ولذلك عادة ما يكون عدد صحيح نقطة ثابتة لاحظ أن هذا لا تغيير أي من الرياضيات من المعالج وجهة نظر على سبيل المثال، إذا كنت تقوم بتصفية قراءات 10 بت أد و N 4 فف 1 16، فأنت بحاجة 4 بت جزء جزء من 10 بت صحيح عدد قراءات واحد معظم المعالجات، وكنت د القيام 16 بت عدد صحيح العمليات بسبب 10 بت قراءات أد في هذه الحالة، لا يزال بإمكانك القيام بالضبط نفس 16 بت عدد صحيح أوبيرتيونس، ولكن تبدأ بقراءات أد اليسار تحولت من 4 بت المعالج لا يعرف الفرق ولا تحتاج إلى القيام الرياضيات على كامل 16 بت صحيح يعمل ما إذا كنت تعتبرها لتكون 12 4 نقطة ثابتة أو صحيح 16 بت عدد صحيح 16 0 نقطة ثابتة. بصفة عامة، تحتاج إلى إضافة N بت كل مرشح القطب إذا كنت لا تريد إضافة الضوضاء بسبب التمثيل العددي في المثال أعلاه ، فإن المرشح الثاني من اثنين يجب أن يكون 10 4 4 18 بتة لا تفقد المعلومات في الممارسة العملية على آلة 8 بت يعني أنك تستخدم قيم 24 بت من الناحية التقنية فقط القطب الثاني من اثنين سوف تحتاج إلى قيمة أوسع، ولكن لبساطة البرامج الثابتة وعادة ما تستخدم نفس التمثيل، وبالتالي نفسه رمز، لجميع أقطاب مرشح. عادة ما أكتب سوبروتين أو ماكرو لتنفيذ عملية قطب فلتر واحد، ثم تطبيق ذلك على كل قطب إذا كان روتين فرعي أو ماكرو يعتمد على ما إذا كانت دورات أو ذاكرة البرنامج أكثر أهمية في هذا المشروع بالذات في كلتا الحالتين ، وأنا استخدم بعض الدولة الصفر لتمرير جديد في الماكرو روتين، الذي يقوم بتحديث فيلت، ولكن أيضا الأحمال التي في نفس حالة الصفر كان جديد في هذا يجعل من السهل تطبيق أقطاب متعددة منذ تحديث فيلت من قطب واحد هو الجديد من التالي عند وجود روتين فرعي، من المفيد أن يكون مؤشر نقطة إلى فيلت على الطريق في، والذي يتم تحديثه فقط بعد فيلت على الطريق بهذه الطريقة يعمل روتين التشغيل تلقائيا على مرشحات متتالية في الذاكرة إذا دعا متعددة مرات مع ماكرو لا تحتاج إلى مؤشر منذ تمرير في العنوان للعمل على كل التكرار. أمثلة الأمثلة. هنا مثال على ماكرو كما هو موضح أعلاه ل بيك 18. هنا هو ماكرو مماثل ل بيك 24 أو دسبيك 30 أو 33. يتم تطبيق هذه الأمثلة على وحدات الماكرو باستخدام المعالج المسبق المجمع بيك الذي هو أكثر قدرة من أي من مرافق الماكرو المضمنة. كلاباشيو قضية أخرى كان يجب أن أذكرها هو تنفيذ البرامج الثابتة يمكنك كتابة قطب واحد تمرير منخفض روتين مرشح مرة واحدة، ثم تطبيقه عدة مرات في الواقع أنا عادة كتابة مثل هذا الروتين إلى اتخاذ مؤشر في الذاكرة إلى حالة التصفية، ثم يكون مقدما المؤشر بحيث يمكن استدعاؤها في الخلافة بسهولة لتحقيق مرشحات متعددة القطب أولين لاثروب أبر 20 12 في 15 03.1 شكرا جزيلا على إجاباتك - كل منهم قررت استخدام هذا فلتر إير، ولكن لا يتم استخدام هذا الفلتر كما مرشح لوباس القياسية، لأنني بحاجة إلى متوسط قيم العداد ومقارنتها للكشف عن التغييرات في نطاق معين لأن هذه القيم فان تكون من أبعاد مختلفة جدا اعتمادا على الأجهزة أردت أن تأخذ في المتوسط من أجل أن تكون قادرة على الرد على هذه الأجهزة تغييرات محددة تلقائيا سينسلن 21 مايو 12 في 12 06.If يمكنك العيش مع تقييد قوة اثنين من عدد من العناصر إلى المتوسط أي 2،4،8،16،32 الخ ثم يمكن تقسيم بسهولة وكفاءة على وانخفاض الأداء الجزئي مع عدم وجود تقسيم مخصص لأنه يمكن القيام به كما تحول قليلا كل حق الحق هو قوة واحدة من اثنين على سبيل المثال. The أوب اعتقد انه كان اثنين من المشاكل، وتقسيم في PIC16 والذاكرة لعشاق له حلقة ويوضح هذا الجواب أن تقسيم ليس من الصعب اعترافا أنه لا يعالج مشكلة الذاكرة ولكن نظام سي يسمح إجابات جزئية، ويمكن للمستخدمين اتخاذ شيء من كل إجابة لأنفسهم، أو حتى تحرير والجمع بين إجابات أخرى لأن بعض الإجابات الأخرى تتطلب عملية الانقسام، فإنها هي أيضا غير مكتملة لأنها لا تظهر كيفية تحقيق ذلك بكفاءة على PIC16 مارتن أبريل 20 12 في 13 01.There هو الجواب لمرشح المتوسط المتحرك الحقيقي ويعرف أيضا باسم فلتر بوكسكار مع متطلبات الذاكرة أقل، إذا كنت لا تفكر في التفكير تسمى مرشح المتكامل التكامل مشط سيك والفكرة هي أن لديك تكامل الذي كنت تأخذ الاختلافات على مدى فترة زمنية، وجهاز حفظ الذاكرة الرئيسية هو أنه من خلال تقليص، لا تحتاج إلى تخزين عشية قيمة ري من التكامل ويمكن تنفيذها باستخدام pseudocode. Your التالية المتوسط المتوسط المتحرك الفعال هو ديسيماتيون فاكتور ستاتيزيز ولكن تحتاج فقط للحفاظ على عينات ستاتيزيز من الواضح أنك يمكن أن تحصل على أداء أفضل إذا كان لديك ستيزيز و ديسيماتيونفاكتور هي القوى 2، بحيث القسم و باقي مشغلي استبدالها بواسطة التحولات و ماسك-ands. Postscript أنا أتفق مع أولين أنه يجب عليك دائما النظر مرشحات إر بسيطة قبل مرشح المتوسط المتحرك إذا كنت لا تحتاج إلى ترددات خالية من فلتر علبة التروس، القطب 1 أو 2 القطب مرشح تمريرة منخفضة من المحتمل أن تعمل بشكل جيد. من ناحية أخرى، إذا كنت تصفية لأغراض الإفساد أخذ مدخلات عالية معدل العينة ومتوسط ذلك للاستخدام من قبل عملية منخفضة معدل ثم مرشح سيك قد يكون مجرد ما كنت تبحث عن خاصة إذا كنت تستطيع استخدام ستيزيز 1 وتجنب رينغبوفر تماما مع مجرد واحد قيمة التكامل السابقة. هناك بعض تحليل متعمق من الرياضيات وراء استخدام أول أوردر إير إير تصفية أن أولين لاثروب قد وصفت بالفعل أكثر على معالجة الإشارات الرقمية كومة تبادل يتضمن الكثير من الصور الجميلة المعادلة لهذا فلتر إير هو. هذا يمكن تنفيذها باستخدام الأعداد الصحيحة فقط ولا تقسيم باستخدام التعليمات البرمجية التالية قد تحتاج إلى بعض التصحيح كما أنا كان يكتب من الذاكرة. هذا المرشح يقترب متوسط متحرك من عينات K الأخيرة عن طريق تحديد قيمة ألفا إلى 1 K القيام بذلك في التعليمات البرمجية السابقة عن طريق تحديد بيتس ل LOG2 K، أي لمجموعة K 16 بيتس إلى 4، ل K 4 مجموعة بيتس إلى 2، وما إلى ذلك سوف تحقق من التعليمات البرمجية المدرجة هنا في أقرب وقت وأنا الحصول على تغيير وتعديل هذه الإجابة إذا لزم الأمر. مسألة يونيو 23 12 في 04 04.Here سا واحد القطب منخفض تمرير مرشح المتوسط المتحرك، مع قطع تردد كوتوفريكنسي بسيط جدا، سريع جدا، يعمل كبيرة، وتقريبا لا الذاكرة فوق. ملاحظة جميع المتغيرات لديها نطاق خارج وظيفة مرشح، إلا أن مرت في newInput. Note هذا هو مرشح مرحلة واحدة يمكن أن تتعاقب مراحل متعددة معا لزيادة الحدة المرشح إذا كنت تستخدم أكثر من مرحلة واحدة، سيكون لديك لضبط ديكايفاكتور كما يتعلق قطع التردد لتعويض. وهو واضح كل ما تحتاجه هو هذين الخطين وضعت في أي مكان، فإنها لا تحتاج وظيفة خاصة بهم هذا مرشح لديه وقت التمرير قبل أن يمثل المتوسط المتحرك إشارة الدخل إذا كنت بحاجة إلى تجاوز هذا الوقت المنحدر، يمكنك فقط تهيئة موفينغافيراج إلى القيمة الأولى من نيو إنبوت بدلا من 0، ونأمل أن يكون أولينبوت الأول خارجا. كوتوفريكنسي سامبلريت لديها مجموعة من 0 و 0 5 ديكايفاكتور هو قيمة بين 0 و 1، وعادة ما تكون قريبة من 1.Single الدقة العوامات جيدة بما فيه الكفاية لمعظم الأشياء، وأنا فقط تفضل دوبلز إذا كنت بحاجة إلى التمسك مع الأعداد الصحيحة، يمكنك تحويل عامل ديكايفاكتور والسعة إلى أعداد صحيحة كسرية، حيث يتم تخزين البسط كما عدد صحيح، والمقام هو عدد صحيح من 2 حتى تتمكن من التحول قليلا إلى اليمين كمقام بدلا من الاضطرار إلى تقسيم خلال حلقة تصفية ل على سبيل المثال، إذا ديكايفاكتور 0 99، وتريد استخدام الأعداد الصحيحة، يمكنك تعيين ديكايفاكتور 0 99 65536 64881 ثم في أي وقت تتضاعف من قبل ديكايفاكتور في حلقة تصفية الخاص بك، مجرد تحويل النتيجة 16.For مزيد من المعلومات حول هذا، وهو كتاب ممتاز أن على شبكة الإنترنت، الفصل 19 على الفلاتر المتكررة. PS لالمتوسط المتحرك نموذج، نهجا مختلفا لوضع ديكايفاكتور و أمبليتيودفاكتور التي قد تكون أكثر ملاءمة لاحتياجاتك، دعونا أقول انك تريد السابقة، حوالي 6 بنود متوسط توغ الأثير، والقيام بذلك ديسرتلي، يمكنك د إضافة 6 بنود وتقسيمها 6، حتى تتمكن من تعيين أمبليتيودفاكتور إلى 1 6، و ديكايفاكتور إلى 1 0 - AmplitudeFactor. resp 14 مايو 12 في 22 55.Everyone آخر قد علقت بدقة على الأداة المساعدة من إير مقابل فير، وعلى السلطة من قسم اثنين أنا فقط أود أن أعطي بعض تفاصيل التنفيذ أدناه يعمل بشكل جيد على ميكروكنترولر صغيرة مع عدم وجود فبو هناك S لا الضرب، وإذا حافظت N قوة اثنين، كل قسم هو دورة واحدة بت-shiftting. Basic العازلة الدائري فير الاحتفاظ العازلة تشغيل القيم N الماضية و سوم قيد التشغيل من كافة القيم في المخزن المؤقت في كل مرة يأتي نموذج جديد في طرح أقدم قيمة في المخزن مؤقت من سوم ، واستبدالها بالعينة الجديدة، وإضافة العينة الجديدة إلى سوم، والإخراج سوم N. Modified إير العازلة حلقة الحفاظ على سوم التوالي من القيم N الماضية في كل مرة تأتي عينة جديدة في، سوم - سوم N، إضافة في الجديد عينة، والمخرجات سوم N. أسئلة وأجوبة 28 أغسطس 13 في 13 45. إذا أنا م قراءة الحق، كنت إعادة وصف الدرجة الأولى إير تصفية القيمة التي تعيد طرحها هي t أقدم قيمة التي تسقط، ولكن بدلا من ذلك متوسط القيم السابقة من الدرجة الأولى مرشحات إير يمكن بالتأكيد أن تكون مفيدة، ولكن أنا لست متأكدا ما تقصد عندما تقترح أن الإخراج هو نفسه بالنسبة لجميع الإشارات الدورية في معدل عينة 10KHZ، تغذية موجة مربع 100HZ في مرشح مربع 20 مرحلة سوف تسفر عن إشارة التي ترتفع بشكل موحد ل 20 عينة، يجلس عالية لمدة 30، قطرات بشكل موحد ل 20 عينة، ويجلس منخفضة ل 30 مرشح من الدرجة الأولى سوبيركات أغسطس 28 13 في 15 31.will تسفر عن موجة التي تبدأ بشكل حاد ارتفاع وتدريجيا مستويات قريبة من ولكن ليس عند المدخلات القصوى، ثم يبدأ بشكل حاد السقوط وتدريجيا مستويات قريبة ولكن ليس عند المدخلات الحد الأدنى سلوك مختلف جدا سوبيركات أغسطس 28 13 في 15 32. قضية واحدة هي أن متوسط متحرك بسيط قد أو قد لا تكون مفيدة مع مرشح إير، يمكنك الحصول على مرشح لطيفة مع كالكس قليلة نسبيا منطقة معلومات الطيران التي تصف يمكن أن تعطيك فقط المستطيل في الوقت المناسب - صادقة في التكرار - ويمكنك إدارة تي الفصوص الجانبية قد يكون من المفيد أن رمي في عدد صحيح يتضاعف عدد قليل لجعله لطيفة الطيف التماثل متماثل إذا كنت يمكن أن تدخر القراد على مدار الساعة سكوت سيدمان 29 أغسطس 13 في 13 50. سكوتسيدمان لا تحتاج إلى مضاعفة إذا كان المرء ببساطة كل مرحلة من مراحل معلومات الطيران إما إخراج متوسط المدخلات لتلك المرحلة وقيمتها المخزنة السابقة، ومن ثم تخزين المدخلات إذا كان واحد لديه النطاق الرقمي، يمكن للمرء أن استخدام المجموع بدلا من المتوسط سواء كان ذلك s أفضل من فلتر مربع يعتمد على تطبيق استجابة الخطوة من مرشح مربع مع تأخير كامل من 1ms، على سبيل المثال، سوف يكون d2 دت ارتفاع سيئة عند تغيير المدخلات، ومرة أخرى 1ms في وقت لاحق، ولكن سيكون الحد الأدنى الممكن د دت لمرشح مع مجموع 1ms تأخير سوبيركات أغسطس 29 13 في 15 25. كما قال ميكيسيلكتريكستوف، إذا كنت حقا بحاجة إلى تقليل احتياجات الذاكرة الخاصة بك، وكنت لا تدع رد فعل الاندفاع الخاص بك هو الأسي بدلا من نبض مستطيلة، وأنا سوف تذهب ل أفي تتحرك أسي فلتر الغضب أنا استخدامها على نطاق واسع مع هذا النوع من التصفية، لا تحتاج إلى أي المخزن المؤقت لا تحتاج إلى تخزين N عينات الماضي واحد فقط لذلك، متطلبات الذاكرة الخاصة بك الحصول على خفض من قبل عامل N. Also، لا تحتاج أي تقسيم لذلك فقط مضاعفات إذا كان لديك الوصول إلى الحساب العائمة نقطة، واستخدام مضاعفات نقطة العائمة خلاف ذلك، لا مضاعفات صحيحة والتحولات إلى اليمين ومع ذلك، نحن في عام 2012، وأود أن أوصي لك استخدام المجمعين و مكوس التي تسمح لك للعمل مع أرقام العائمة. بالإضافة إلى كونها أكثر كفاءة الذاكرة وأسرع كنت لا تحتاج إلى تحديث العناصر في أي العازلة دائرية، وأود أن أقول أنه هو أيضا أكثر طبيعية لأن استجابة النبض الأسي يطابق بشكل أفضل الطريقة التي تتصرف بها الطبيعة، في معظم الحالات .20 أبريل 9 في 9 59.One المسألة مع فلتر إير كما لمست تقريبا من قبل أولين و سوبيركات ولكن تجاهلها على ما يبدو من قبل الآخرين هو أن التقريب أسفل يدخل بعض عدم الدقة وربما التحيز اقتطاع بافتراض أن N ط سا من اثنين، ويتم استخدام الحساب الصحيح فقط، والتحول الحق لا القضاء بشكل منهجي على لسبس من العينة الجديدة وهذا يعني أن كم من الوقت يمكن أن تكون سلسلة من أي وقت مضى، فإن متوسط أبدا أن تأخذ تلك في الاعتبار. على سبيل المثال، لنفترض ببطء وتناقص سلسلة 8،8،8 8،7،7،7 7،6،6، وتفترض أن المتوسط هو في الواقع 8 في بداية قبضة 7 عينة سيجلب المتوسط إلى 7، مهما كانت قوة مرشح فقط لعينة واحدة نفسه قصة ل 6، الخ الآن التفكير في عكس سيري ترتفع سيكون متوسط البقاء على 7 إلى الأبد، حتى العينة كبيرة بما فيه الكفاية لجعله تغيير. بطبيعة الحال، يمكنك تصحيح للتحيز عن طريق إضافة 1 2 N 2، ولكن التي فازت حقا حل مشكلة الدقة في هذه الحالة سوف تنخفض سلسلة البقاء إلى الأبد في 8 حتى العينة 8-1 2 N 2 ل N 4 على سبيل المثال، أي عينة فوق الصفر سوف تبقي على المتوسط دون تغيير. أعتقد أن الحل ل والتي من شأنها أن تنطوي على عقد تراكم من لسب فقدت ولكن أنا لم تجعل من بعيد بما فيه الكفاية ليكون رمز جاهزة، وأنا لست متأكدا من أنه لن يضر الطاقة إير في بعض الحالات الأخرى من سلسلة على سبيل المثال ما إذا كان 7،9،7،9 سوف متوسط إلى 8 ثم. أولين، سلسلة من مرحلتين أيضا سوف تحتاج إلى بعض التفسير هل يعني عقد اثنين من القيم المتوسطة مع نتيجة الأولى تغذي في الثانية في كل التكرار ما فائدة هذا. ويمكن أن يكون إذا قمت بتطبيق الوزن الذي هو عكسيا يتناسب مع حجم النافذة. فئة عامة متوسطالكونت إنت رونينغفغ إنت رونينغكونت هذا يحل محل القائمة الدائرية في windowSize. public أفيراجكونتر نافذة إنت نافذة الحجم نافذة كبيرة الحجم سيز. بوبليك فواد أدفالو فلوت نيوفالو تنمو حجم النافذة كما يتم تسجيل المزيد من العينات إذا رونينغكونت ويندوزيزي رونينغكونت. المتوسط المتحرك العكسي المتوسط n w - 1 W متوسط n-1 1 W عينة حيث W هو حجم النافذة رونينغافغ رونينغكونت - 1 رونينغكونت رونينغفغ 1 رونينغكونت عائمة جديدة. العمومية عائد متوسط رونينغ أوفغ .-- تعديل في 13 53 الجمعة 9 نوفمبر 2007.pwasser 8-جان-08 16 25. تعمل هذه الصيغة بشكل جيد لتقدير المتوسط المتحرك ما دام هناك عدد قليل من القيود التي تم وضعها في الاعتبار. وهو يحسب تقديرا للمتوسط المتحرك ليس المتوسط المتحرك الحقيقي بناء على الافتراض الهام بأن قيم العينة هي موزعة عادة حول المتوسط. وأشرت هذا في وقت سابق post. toadth 9-أوكت-11 15 46.Well أن كان البكم واسن ر it.4 سنوات على وأنا قد يكون أفضل اقتراح بدلا من استخدام قائمة دائرية، واستخدام وقائمة مرتبطة والحفاظ يدويا على الحد الأقصى لحجم القائمة وبهذه الطريقة يمكنك الحفاظ على مجموع تشغيل التجميع - عند إضافة إلى قائمة الارتباط، إضافة إلى التجميع، عند تقليم عقدة، طرح تلك القيمة من التجميع لمتوسط العداد مع 5 العقد، وربما كنت فاز تي إشعار أب ، ولكن في كثير من الحالات مع القول الآلاف من العقد من شأنه أن يهم 1. في طريقة أدفالو، إضافة عقدة قائمة ارتباط جديدة، وإضافة إلى أفيراج 2 بعد إضافة، والتحقق من حجم 3 إذا كان حجم الحد طرح من أفيراج ومن ثم وتقليم قبالة عقدة. لأكثر كفاءة، بدلا من استخدام قائمة مرتبطة، هل يمكن تنفيذ قائمة دائرية الخاصة بك على أساس مجموعة من القيم - طرح من أفيراج عند استبدال قيمة صفيف. مارك كليفتون 10 أكتوبر 11 1 37.4 سنوات على وأنا قد يكون أفضل اقتراح. في المقام الأول، من شأنها أن تعمل بشكل أفضل. أنا لا لست متأكدا من الحل الصحيح على الرغم من أن جمع متوسط كل عينة من شأنه أن يعرض كمية لا بأس بها من خطأ التقريب. هل أنا أتساءل عما إذا كان فصل جزء كسري من والجزء كله سيساعد على تقسيم الجزء كله من كل عدد من قبل العد الحفاظ على ثلاثة مبالغ تشغيل 1 متوسط الأجزاء كلها، 2 ما تبقى من كل قسم، و 3 جزء كسري من كل عدد. في كل مرة الجزء الكامل من العدد مقسمة، تضاف نتيجة الجزء كله إلى متوسط مجموع الجري ويتم إضافة الباقي إلى المبلغ المتبقي قيد التشغيل عندما يحصل المبلغ الباقي قيد التشغيل على قيمة أكبر من أو يساوي العدد، يتم تقسيمه بالعد مع النتيجة الكاملة للجزء تضاف إلى متوسط المبلغ الجاري والباقي تضاف إلى المبلغ المتبقي قيد التشغيل أيضا، وفي كل حساب، يضاف الجزء الكسري إلى الكسر الجري. وعندما ينتهي المتوسط، ينقسم المبلغ المتبقي الجاري على العد والنتيجة يضاف إلى متوسط مجموع الجري باعتباره رقم عائم على سبيل المثال. الآن ما يجب القيام به مع مجموع الجزئي تشغيل خطر تجاوز هو أقل بكثير من المرجح هنا، على الرغم من لا يزال ممكنا، لذلك طريقة واحدة للتعامل مع ذلك سيكون لتقسيم الكسور الجري سوم بي ذي كونت أت ذي إند أند أد إيت تو أور result. An بديل سيكون للتحقق من كسور مجموع التوالي في كل حساب لمعرفة ما إذا كان أكبر من أو يساوي العد عندما يحدث ذلك، فقط تفعل نفس t هينغ أن نقوم به مع المبلغ المتبقي تشغيل.
No comments:
Post a Comment