Sunday 4 February 2018

स्थानांतरण - औसत - msp430


मुझे पता है कि यह बढ़ावा देने के साथ प्राप्त करने योग्य है। लेकिन मैं वास्तव में बढ़ावा देने का उपयोग करना चाहूंगा, जो मुझे पसंद है और मुझे कोई उचित या पठनीय उदाहरण नहीं मिल रहा है। मूल रूप से मैं फ़्लोटिंग बिंदु संख्याओं की एक धारा की चलती औसत पर चलना चाहता हूं डेटा नमूने के रूप में सबसे हाल ही में 1000 नंबरों का उपयोग करते हुए। इसे प्राप्त करने का सबसे आसान तरीका क्या है। मैंने एक परिपत्र सरणी, घातीय चलती औसत और एक अधिक सरल चलती औसत का उपयोग करने के साथ प्रयोग किया और पाया कि परिपत्र सरणी के परिणाम मेरी आवश्यकताओं को सबसे अधिक उपयुक्त मानते हैं.कुछ 12 जून को 4 38. यदि आपकी ज़रूरतें सरल हैं, तो आप शायद एक घातीय चलती औसत का उपयोग करने की कोशिश कर सकते हैं। बस, आप एक संचायक चर बनाते हैं, और जैसा आपका कोड प्रत्येक नमूना पर दिखता है, कोड संचयकर्ता को अद्यतन करता है नया मान आप 0 और 1 के बीच के बीच एक निरंतर अल्फा चुनते हैं, और इसकी गणना करें। आपको अल्फा के मूल्य को खोजने की ज़रूरत है जहां दिए गए नमूनों का प्रभाव केवल 1000 नमूनों के लिए रहता है। एचएम, मैं वास्तव में यह नहीं जानता कि यह वास्तव में है आपके लिए उपयुक्त, अब टी टोपी मैंने इसे रख दिया है समस्या यह है कि 1000 एक घातीय चलती औसत के लिए एक सुंदर खिड़की है मुझे यकीन नहीं है कि एक अल्फा है जो पिछले 1000 अंकों के औसत पर फैलेगा, बिना अस्थायी बिंदु गणना में, लेकिन अगर आप एक छोटा औसत, 30 नंबर या इतने की तरह, यह करना बहुत आसान और तेज़ तरीका है। उत्तर 12 जून को 4 4 44. 1 अपने पोस्ट पर, घातीय चलती औसत अल्फा को वैरिएबल होने की अनुमति दे सकता है इसलिए ये इसकी अनुमति देता है समय आधार औसत की गणना करने के लिए इस्तेमाल किया जा सकता है बाइट्स प्रति सेकेंड। अगर अंतिम संचयक अद्यतन के समय 1 सेकंड से अधिक है, तो आप अल्फा 1 0 दे सकते हैं, अन्यथा, आप अल्फ़ा को अंतिम अद्यतन 1000000 jxh जून 12 12 6 6.मैं अस्थायी बिंदु संख्याओं की धारा की चलती औसत को ट्रैक करने के लिए सबसे हाल की 1000 संख्याओं का एक डेटा नमूने के रूप में उपयोग करना चाहता हूं। नोट करें कि नीचे कुल जोड़ के रूप में जोड़े गए तत्वों के रूप में अद्यतन करता है, जिस पर गणना करने के लिए ट्रैवर्सल पर महंगा हो राशि - वें के लिए आवश्यक ई औसत - मांग पर, टी से अलग-अलग पैरामीटर बना दिया जाता है जैसे कि लंबे समय तक का उपयोग करते हुए 1000 लम्बाई, चर के लिए एक इंट्री, या कुल फ्लोट के लिए एक डबल। यह उस नमूने में थोड़ा सा दोषपूर्ण है पिछले INTMAX पर जाएं - यदि आप देखभाल करते हैं तो आप एक अहस्ताक्षरित लंबे समय तक इस्तेमाल कर सकते हैं या अतिरिक्त बूल डेटा सदस्य का उपयोग रिकॉर्ड करने के लिए कर सकते हैं जब कंटेनर पहले भर दिया जाता है, जबकि सबसे अच्छा सरणी के आसपास साइक्सिंग नंबर्स के नाम से कुछ अयोग्यता का नाम बदल गया है। जून 12 12 5 5 । एक यह मानता है कि शून्य ऑपरेटर टी नमूना वास्तव में शून्य ऑपरेटर टी नमूना है, 8 जून, 14 14 जून 11 52. ओपलेस अहाह अच्छी तरह से अच्छी तरह से देखा गया है कि मैं इसके लिए शून्य ऑपरेटर टी नमूना होने का मतलब था लेकिन निश्चित रूप से आप जो भी नोटेशन पसंद करते हैं, धन्यवाद टोनी डी 8 जून 14 14 27. अन्य लोगों ने उल्लेख किया है, आपको आईआईआर अनंत आवेग प्रतिक्रिया फ़िल्टर पर विचार करना चाहिए, इसके बजाय एफआईआर सीमित आवेग प्रतिक्रिया फ़िल्टर जो आप अब उपयोग कर रहे हैं इसमें अधिक है, लेकिन पहली नज़र में एफआईआर फिल्टर लागू हैं के रूप में स्पष्ट convolutio समीकरणों के साथ एनएस और आईआईआर फिल्टर। विशेष आईआईआर फिल्टर मैं माइक्रो कंप्यूटर में बहुत कुछ का उपयोग करता हूं एक एकल ध्रुव कम पास फिल्टर है यह एक साधारण आरसी एनालॉग फिल्टर का डिजिटल समकक्ष है अधिकांश अनुप्रयोगों के लिए, ये बॉक्स फिल्टर की तुलना में बेहतर विशेषताएं हैं जो आप एक बॉक्स फिल्टर के अधिकांश उपयोगों का उपयोग कर रहे हैं जो मुझे सामना करना पड़ा है, डिजिटल सिग्नल प्रोसेसिंग क्लास में कोई ध्यान नहीं देने का नतीजा है, न कि उनके विशेष लक्षणों की आवश्यकता के परिणामस्वरूप, यदि आप केवल उच्च आवृत्तियों को घुलाना चाहते हैं जो आपको शोर है, तो एकल ध्रुव कम पास फ़िल्टर बेहतर होता है एक microcontroller में डिजिटल रूप से लागू करने का सबसे अच्छा तरीका आम तौर पर होता है। फ़िल्ट - फ़िल्ट एफएफ न्यू - फ़िल्ट। फ़िलट लगातार राज्य का एक टुकड़ा यह एकमात्र स्थिर चर है जिसे आपको इस फ़िल्टर की गणना करने की आवश्यकता है NEW है इस चलन एफएफ के साथ फिल्टर का नवीनीकरण किया जा रहा है कि नए मूल्य फ़िल्टर अंश है जो फ़िल्टर की भारीता समायोजित करता है इस एल्गोरिथ्म को देखो और देखें कि एफएफ 0 फ़िल्टर के लिए infin है यह बहुत भारी है क्योंकि आउटपुट में परिवर्तन कभी नहीं होता है एफएफ 1 के लिए, यह वास्तव में कोई भी फिल्टर नहीं है क्योंकि उत्पादन केवल इनपुट का अनुसरण करता है उपयोगी मूल्य आपके बीच एफएफ को चुनने के लिए 1 2 एन होना चाहिए ताकि एफएफ द्वारा गुणा किया जा सके। एन बीट्स द्वारा सही बदलाव के रूप में, उदाहरण के लिए, एफएफ 1 16 हो सकता है और एफएफ द्वारा गुणा बढ़ता है इसलिए 4 बीट्स का एक सही बदलाव अन्यथा इस फिल्टर को केवल एक घटाएं और एक जोड़ना चाहिए, हालांकि संख्या को आमतौर पर इनपुट मूल्य से अधिक व्यापक होना चाहिए नीचे दिए गए एक अलग सेक्शन में संख्यात्मक परिशुद्धता पर अधिक। मैं आमतौर पर एडी रीडिंग की आवश्यकता से ज्यादा तेज़ी से लेता हूं और इनमें से दो फिल्टर को कैस्केड किया जाता है यह सीरीज में दो आरसी फिल्टर के डिजिटल समकक्ष को लागू करता है, और रोलऑफ आवृत्ति से 12 डीबी अष्टकोण हालांकि, एडी रीडिंग के लिए यह आमतौर पर अधिक से अधिक प्रासंगिक है जब आप इसके कदम प्रतिक्रिया पर विचार करके समय डोमेन में फ़िल्टर को देख सकते हैं यह आपको बताता है कि जब आप परिवर्तन को मापना चाहते हैं तो आपके सिस्टम को कितनी तेजी से बदलाव दिखाई देगा। इन फिल्टरों को डिजाइन करने का मतलब केवल एफएफ चुनना और तय करना कि उनमें से कितने कैस्केड होते हैं, मैं अपने प्रोग्राम का उपयोग करता हूँ FILTBITS आप फिल्टर के कैस्केड श्रृंखला में प्रत्येक एफएफ के लिए बदलाव बिट्स की संख्या निर्दिष्ट करते हैं, और यह चरण प्रतिक्रिया और अन्य मूल्यों को मापता है वास्तव में I आमतौर पर इसे मेरे आवरण स्क्रिप्ट के माध्यम से चलाता है PLOTFILT यह फ़िलबिट्स चलाता है, जो सीएसवी फ़ाइल बनाता है, फिर सीएसवी फ़ाइल को भूखंड देता है उदाहरण के लिए, यहां PLOTFILT 4 का परिणाम है 4. PLOTFILT के दो मापदंडों का मतलब है कि दो प्रकार के फिल्टर को कैस्केड किया जाएगा ऊपर वर्णित 4 के मान एफएफ द्वारा गुणा का पता लगाने के लिए शिफ्ट बिट्स की संख्या दर्शाते हैं इसलिए दो एफएफ मान इस मामले में 1 16 हैं। लाल ट्रेस यूनिट स्टेप रिस्पांस है, और देखने के लिए मुख्य बात यह है कि उदाहरण के लिए, यह आपको बताता है कि अगर इनपुट तत्काल बदलता है, तो संयुक्त फिल्टर का उत्पादन 60 पुनरावृत्तियों में नए मूल्य के 90 में हो जाएगा यदि आप लगभग 9 0 निपटने के समय की देखभाल करते हैं, तो आपको 73 पुनरावृत्तियों के बारे में इंतजार करना होगा, और 50 के लिए बस समय 26 पुनरावृत्त। हरे रंग का ट्रेस आपको एक पूर्ण आयाम स्पाइक से आउटपुट दिखाता है यह आपको यादृच्छिक शोर दमन के बारे में कुछ विचार देता है ऐसा लगता है कि कोई भी नमूना आउटपुट में 2 5 बदलाव से अधिक नहीं होगा। नीले ट्रेस देना है क्या यह फिल्टर सफेद शोर के साथ एक व्यक्तिपरक महसूस करता है यह कोई कठोर परीक्षण नहीं है क्योंकि इसमें कोई गारंटी नहीं है कि क्या वास्तव में सामग्री की यादृच्छिक संख्या को PLOTFILT के इस चलाने के लिए सफेद शोर इनपुट के रूप में चुना गया था यह केवल आपको किसी न किसी को देने के लिए है यह कितना चिकना होगा और यह कितना चिकना होगा। पीएलटीएफआईएलटी, हो सकता है FILTBITS, और विशेषकर पीआईसी फर्मवेयर विकास के लिए कई अन्य उपयोगी चीजें मेरे सॉफ़्टवेयर डाउनलोड पृष्ठ पर पीआईसी डेवलपमेंट टूल सॉफ़्टवेयर रिहाई में उपलब्ध हैं। संख्यात्मक परिशुद्धता के बारे में जोड़ा.मैं टिप्पणियों से देखता हूं और अब एक नया जवाब है कि इस फ़िल्टर को कार्यान्वित करने के लिए आवश्यक बिट्स की संख्या पर चर्चा करने में रूचि है, ध्यान दें कि एफएफ द्वारा गुणा बायनरी बिंदु के नीचे लॉग 2 एफएफ नया बिट बना देगा छोटी प्रणालियों पर, एफएफ आमतौर पर 1 2 एन होना चुना जाता है ताकि यह एन बीट्स की सही पारी से वास्तव में एहसास हो जाता है। फ़िल्ट इसलिए आमतौर पर एक निश्चित बिन्दु पूर्णांक है, ध्यान दें कि यह प्रोसेसर से कोई भी गणित नहीं बदलता है देखने का बिंदु उदाहरण के लिए, यदि आप 10 बिट एडी रीडिंग और एन 4 एफएफ 1 16 को फ़िल्टर कर रहे हैं, तो आपको 10 बिट पूर्णांक एडी रीडिंग्स के नीचे 4 अंश बिट्स की आवश्यकता है एक सबसे प्रोसेसर, आप 10 बिट के कारण 16 बिट पूर्णांक आपरेशन कर रहे हैं बिट एडी रीडिंग्स इस मामले में, आप अभी भी एक ही 16 बिट पूर्णांक ऑपरेशंस कर सकते हैं, लेकिन 4 बिट्स द्वारा स्थानांतरित एडी रीडिंग्स से शुरू हो सकता है प्रोसेसर को अंतर नहीं पता है और पूरे 16 बिट इंटिजर्स पर गणित करने की आवश्यकता नहीं है यह काम करता है कि क्या आप उन्हें 12 4 निर्धारित बिंदु या सही 16 बिट पूर्णांक 16 0 बिंदु तय करते हैं। सामान्यतया, यदि आपको संख्यात्मक प्रतिनिधित्व के कारण शोर जोड़ने के लिए नहीं चाहते हैं, तो सामान्यतः, आप प्रत्येक फ़िल्टर ध्रुव में एन बिट्स जोड़ना चाहते हैं ऊपर दिए गए उदाहरण में , दो के दूसरे फिल्टर में 10 4 होना पड़ेगा 4 18 बिट्स जानकारी खोने के लिए 8 बिट मशीन पर अभ्यास करने का मतलब है कि आप 24 बिट मूल्यों का उपयोग कर सकते हैं तकनीकी तौर पर केवल दो ध्रुवों के लिए व्यापक मूल्य की आवश्यकता होगी, लेकिन फर्मवेयर सादगी के लिए मैं आम तौर पर एक ही प्रतिनिधित्व का उपयोग करता हूं, और इसी प्रकार एक फिल्टर के सभी खंभे के लिए कोड। आम तौर पर मैं एक फिल्टर पोल ऑपरेशन करने के लिए एक सब-रूटिन या मैक्रो लिखता हूं, फिर प्रत्येक ध्रुव पर लागू होता है चाहे उपनियम या मैक्रो इस पर निर्भर करता है कि क्या उस विशेष परियोजना में चक्र या प्रोग्राम स्मृति अधिक महत्वपूर्ण हैं या तो , मैं कुछ खरोंच राज्य का उपयोग उप-रूट मैक्रो में, जो कि FILT अपडेट करता है, में नए पास करता हूं, लेकिन यह भी एक ही खरोंच स्थिति में लोड करता है NEW में यह एक से अधिक ध्रुवों को लागू करना आसान बनाता है चूंकि एक ध्रुव के अपडेट किए गए फ़िलट नए हैं अगले एक जब सबस्ट्रैनीइन, जिस तरह से फ़िल्ट को फ़िल्ट को पॉइंटर बिन्दु प्राप्त करने के लिए उपयोगी होता है, जिस तरह से फ़िलट के बाद अपडेट किया जाता है, इस तरह से सबरॉयटाइन स्वचालित रूप से मेमोरी में लगातार फिल्टर पर संचालित होता है, जिसे कई बार एक मैक्रो के साथ आपको एक सूचक की जरूरत नहीं है क्योंकि आप प्रत्येक पुनरावृत्ति पर संचालित करने के लिए पते में पास करते हैं। उदाहरण के कोड। यहां एक तस्वीर के लिए ऊपर वर्णित मैक्रो का उदाहरण है 18. और यहां एक तस्वीर 24 के लिए एक समान मैक्रो है या डीएसपीआईसी 30 या 33. इन उदाहरणों को मेरे पीआईसी कोडांतरक प्रीप्रोसेसर का उपयोग करते हुए मैक्रोज़ के रूप में लागू किया गया है जो कि अंतर्निहित मैक्रो सुविधाओं की तुलना में अधिक सक्षम है। clabacchio एक और मुद्दा जो मैंने उल्लेख किया है फर्मवेयर कार्यान्वयन है एक बार आप एक एकल ध्रुव कम पास फिल्टर उपनेमका लिख ​​सकते हैं, तो इसे कई बार लागू करें वास्तव में मैं आमतौर पर इस तरह के एक उपकार्यक्रम को लिखता है, ताकि फिल्टर स्थिति में स्मृति में एक सूचक लेता हो, फिर इसे अग्रिम कर दें पॉइन्टर ताकि इसे उत्तराधिकार में आसानी से बुलाया जा सके बहु-पोल फिल्टर का पता लगाया जा सकता है Olin Lathrop Apr 20 12 at 15 03.1 आपके उत्तर के लिए बहुत बहुत धन्यवाद - उन सभी ने मैंने इस आईआईआर फ़िल्टर का उपयोग करने का निर्णय लिया, लेकिन इस फ़िल्टर का उपयोग नहीं किया गया है एक मानक कम पाट फ़िल्टर, क्योंकि मुझे काउंटर मानों की औसत जरूरत है और उनकी तुलना एक निश्चित श्रेणी में परिवर्तनों का पता लगाने के लिए क्योंकि इन वैल्यू वैन हार्डवेयर के आधार पर बहुत अलग आयाम होने के कारण मैं इन हार्डवेयर पर प्रतिक्रिया करने में सक्षम होने के लिए औसतन लेना चाहता था विशिष्ट परिवर्तनों को स्वचालित रूप से 12 मई 12 12 बजे सेंसिलन करें। यदि आप दो नंबरों की शक्ति के प्रतिबंध को सामान्य औसत 2,4,8,16,32 आदि के साथ रह सकते हैं, तो विभाजन आसानी से और कुशलता से किया जा सकता है कम प्रदर्शन सूक्ष्म के साथ कोई समर्पित विभाजन नहीं है क्योंकि यह थोड़ा सा शिफ्ट के रूप में किया जा सकता है प्रत्येक शिफ्ट सही दो उदाहरणों में से एक शक्ति है। ओपी ने सोचा था कि उसकी दो समस्याएं हैं, उनकी पीआईसी 16 और उसकी अंगूठी बफर के लिए मेमोरी में यह जवाब दर्शाता है कि विभाजन यह मुश्किल नहीं है कि यह मेमोरी समस्या का समाधान नहीं करता है लेकिन एसई सिस्टम आंशिक उत्तर देता है, और उपयोगकर्ता खुद के लिए प्रत्येक उत्तर से कुछ ले सकते हैं, या फिर अन्य एस के उत्तर को संपादित और गठजोड़ कर सकते हैं, क्योंकि अन्य कुछ उत्तरों में विभाजित ऑपरेशन की आवश्यकता होती है, वे इसी तरह से अधूरे हैं क्योंकि वे यह नहीं दिखाते हैं कि पीआईसी 16 मार्टिन 13 अप्रैल को 12 अप्रैल को कुशलतापूर्वक इसे कैसे हासिल किया जाए। कम स्मृति आवश्यकताओं के साथ एक सही चलती औसत फिल्टर उर्फ ​​बॉक्सर फिल्टर के लिए कोई जवाब नहीं है, यदि आप इसे डाउनसैम्पलिंग नहीं मानते हैं कैसकेड एग्निटर-कंघी फ़िल्टर सीआईसी कहलाता है कि आपके पास एक संपूर्नकर्ता है, जो आप एक समय अवधि में अंतर लेते हैं, और महत्वपूर्ण मेमोरी-बचत डिवाइस यह है कि डाउनसैम्पलिंग द्वारा, आपको ईव को स्टोर करना नहीं है संपूर्न का राई वैल्यू यह निम्नलिखित छद्मकोण का उपयोग करके कार्यान्वित किया जा सकता है। आपकी प्रभावी चलती औसत लंबाई decimationFactor statesize है लेकिन आपको केवल राजनैतिक नमूनों के आसपास रखने की ज़रूरत है, जाहिर है आप बेहतर प्रदर्शन प्राप्त कर सकते हैं यदि आपका राजनैतिक और डिक्रेशन फक्टर 2 की शक्तियां हैं, ताकि विभाजन और शेष ऑपरेटरों को पाली और मुखौटा द्वारा प्रतिस्थापित किया जाता है। और पोस्टस्क्रिप्ट मैं ओलिन से सहमत हूं कि आपको चलती औसत फिल्टर से पहले हमेशा साधारण आईआईआर फिल्टर पर विचार करना चाहिए अगर आपको बॉक्सर फिल्टर की आवृत्ति-नल की आवश्यकता नहीं है, तो 1-पोल या 2-पोल कम-पास फ़िल्टर संभवतः ठीक काम करेगा। दूसरी तरफ, यदि आप उच्च-नमूना-दर इनपुट लेने और कम दर वाली प्रक्रिया के उपयोग के लिए औसतन होने पर डीआईसी फ़िल्टर के लिए फ़िल्टरिंग कर रहे हैं तो सीआईसी फ़िल्टर हो सकता है कि आप जो भी देख रहे हों, खासकर यदि आप राजनैतिक 1 का उपयोग कर सकते हैं और रिंगबफर को पूरी तरह से एक ही पिछली समेकन मूल्य से बचा सकते हैं। पहले गणित का उपयोग करने के पीछे गणित के कुछ गहन विश्लेषण हैं आईआईआईआर फ़िल्टर जो कि ओलाइन लैथ्रोप ने डिजिटल सिग्नल प्रोसेसिंग स्टैक एक्सचेंज में पहले से ही वर्णित किया है, इसमें बहुत सारे सुंदर चित्र शामिल हैं IIR फ़िल्टर के लिए समीकरण। यह केवल पूर्णांक का उपयोग करके कार्यान्वित किया जा सकता है और निम्न कोड का उपयोग करके कोई डिवीजन कुछ डीबगिंग की आवश्यकता नहीं हो सकता है I स्मृति से टाइप कर रहा था। यह फिल्टर पिछले कश्मीर नमूनों की अल्फा के मूल्य को 1 कश्मीर सेट करके चलती औसत के अनुमानित करता है। यह पिछले कोड में LOG2 K, K 16 सेट बिट्स के लिए 4 के लिए, के लिए आईटी बिट्स को परिभाषित करके करें। 4 सेट बीआईटीएस टू 2, आदि। मैं यहां सूचीबद्ध कोड को जल्द से जल्द सत्यापित करूँगा जैसे कि मुझे कोई परिवर्तन मिल जाए और इस उत्तर को संपादित करें यदि आवश्यक हो। उत्तर 23 जून को 4 04 04। यहां एकल-ध्रुव कम-पास फ़िल्टर चलती औसत, साथ cutoff आवृत्ति CutoffFrequency बहुत सरल, बहुत तेजी से काम करता है, महान काम करता है, और लगभग कोई स्मृति ओवरहेड नहीं। सभी चर को फ़िल्टर समारोह से परे है, नए इन्पुट से पारित किए बिना। नोट यह एक एकल चरण फिल्टर है कई चरणों को एक साथ बढ़ाया जा सकता है की तीव्रता फ़िल्टर यदि आप एक से अधिक चरण का उपयोग करते हैं, तो आप को डिपेफैक्टर को समायोजित करना होगा क्योंकि कटऑफ-फ़्रिक्वेंसी से मुआवजे के लिए संबंधित है। और जाहिर है कि आपको सिर्फ उन दोनों लाइनों को कहीं भी रखा गया है, उन्हें अपने स्वयं के फ़ंक्शन की ज़रूरत नहीं है। चलती औसत से पहले रैंप-अप समय इनपुट सिग्नल को दर्शाता है यदि आपको उस रैंप-अप के समय को बायपास करना पड़ता है, तो आप बस MovingAverage को 0 के बजाय नए इनपुट के प्रथम मान के लिए शुरू कर सकते हैं, और उम्मीद कर सकते हैं कि पहला नया इनपुट आउटवेयर नहीं है। CutoffFrequency नमूनारेब में 0 और 0 5 के बीच की एक श्रेणी है, DecayFactor 0 और 1 के बीच का मान है, आमतौर पर 1.Single-precision floats के करीब है, ज्यादातर चीजों के लिए पर्याप्त हैं, मैं सिर्फ डबल्स की पसंद करता हूं यदि आपको पूर्णांक के साथ छड़ी करने की आवश्यकता है, तो आप डिकैफैक्टर और आयाम फैक्टर को आंशिक पूर्णांक में परिवर्तित करें, जिसमें अंश को पूर्णांक के रूप में संग्रहीत किया जाता है, और हर 2 का पूर्णांक पावर है, ताकि आप फ़िल्टर पाश के दौरान विभाजित करने के बजाय द्विनेत्री के रूप में दाएं-शिफ्ट कर सकें। उदाहरण, यदि DecayFactor 0 99, और आप पूर्णांक का उपयोग करना चाहते हैं, तो आप DecayFactor 0 99 65536 64881 सेट कर सकते हैं और फिर कभी भी जब आप अपने फिल्टर लूप में डिकैफैक्टर द्वारा गुणा करते हैं, तो नतीजे 16 में बदलें। इस पर अधिक जानकारी के लिए, एक उत्कृष्ट पुस्तक पुनरावृत्त फिल्टर पर अध्याय 1 ऑनलाइन। चलने की औसत प्रतिमान के लिए, डिकैफैक्चर और एम्प्लीलिटफ़ैक्टर सेट करने के लिए एक अलग दृष्टिकोण जो कि आपकी आवश्यकताओं के लिए अधिक प्रासंगिक हो सकता है, मान लें कि आप पिछला, लगभग 6 आइटम औपचारिक रूप से चाहते हैं ईथर, यह कड़ाई से कर रहा है, आप 6 वस्तुओं को जोड़ते हैं और 6 से विभाजित करते हैं, तो आप एम्प्लीथैक्टफैक्टर को 1 से 6, और डिकैफ़ैक्टर को 1 0 - एम्प्लीट्यूडफ़ैक्टर के रूप में सेट कर सकते हैं। 12 मई को 12 मई को 12 उत्तर दिया गया है। सभी ने उपयोगिता पर पूरी तरह से टिप्पणी की है आईआईआर बनाम एफआईआर का और दो-दो डिवीजनों पर, मैं कुछ कार्यान्वयन विवरण देना पसंद करता हूं नीचे कोई एफपीयू के साथ छोटे माइक्रोकंट्रोलर्स पर अच्छा काम नहीं होता है। इसमें कोई गुणन नहीं है, और यदि आप एन को दो की शक्ति रखते हैं, तो सभी डिवीजन सिंगल-चक्र बिट-स्थानांतरण है। मूल प्राथमिकी रिंग बफर पिछले एन मूल्यों के चलने वाला बफर रखता है, और बफर में सभी मानों का चलना SUMMUT हर बार जब कोई नया नमूना आता है, तो बफर में सबसे पुराना मान घटाएं SUM , इसे नए नमूने के साथ बदलें, नया नमूना SUM में जोड़ें और आउटपुट SUM N. Modified IIR अंगूठी बफर अंतिम N मानों का चलने वाला SUM रखें हर बार एक नया नमूना आता है, SUM - SUM N, नया में जोड़ें नमूना, और आउटपुट SUM N. उत्तर 28 अगस्त 13 13 पर 45. यदि मैं आपको सही पढ़ रहा हूँ, तो आप पहले क्रम का वर्णन कर रहे हैं आईआईआर फ़िल्टर का मूल्य जो आप फिर से घटाना चाहते हैं वह सबसे पुराना मूल्य है जो बाहर गिर रहा है, लेकिन इसके बजाय पिछले मूल्यों की औसत प्रथम श्रेणी के IIR फ़िल्टर निश्चित रूप से उपयोगी हो सकते हैं, लेकिन मुझे यकीन नहीं है कि आप इसका क्या मतलब है जब आप यह कहें कि आउटपुट सभी आवधिक संकेतों के लिए एक समान है एक 10 किलोहर्ट्ज़ नमूना दर पर, 20-स्टेज बॉक्स फिल्टर में एक 100 हर्ट्ज वर्ग की लहर को खिलाने से 20 नमूनों के लिए समान रूप से उगने वाला एक संकेत मिलेगा, 30 के लिए उच्च बैठता है, 20 नमूनों के लिए समान रूप से निकलता है, और कम बैठता है 30 के लिए एक प्रथम-ऑर्डर आईआईआर फिल्टर सुपरकास्ट 28 अगस्त 13 को 15 31। एक लहर जो तेजी से बढ़ती जा रही है और धीरे-धीरे करीब स्तर को बंद कर देती है, लेकिन अधिकतम इनपुट पर नहीं, फिर तेजी से गिरने लगती है और धीरे-धीरे स्तर बंद हो जाता है लेकिन इनपुट पर नहीं न्यूनतम बहुत अलग व्यवहार सुपरकास्ट 28 अगस्त 13 15 32. एक मुद्दा यह है कि एक सरल चल औसत औसत या उपयोगी नहीं हो सकता है IIR फिल्टर के साथ, आप अपेक्षाकृत कुछ कैल्शर्स के साथ एक अच्छा फिल्टर प्राप्त कर सकते हैं आप बताए गए एफआईआर केवल आपको समय में आयत - एक sinc in फ्रीक - और आप पक्षों का प्रबंधन नहीं कर सकते हैं कुछ पूर्णांक में फेंकने के लिए यह अच्छी तरह से मूल्यवान हो सकता है कि आप इसे एक अच्छा सममित ट्यून करने योग्य एफआईआर बनाने के लिए गुंजाइश कर सकते हैं यदि आप घड़ी की टिक टिक कर सकते हैं स्कॉट सीडमन 29 अगस्त 13 13 50. स्कॉट साइडमैन नहीं बहुभुज की आवश्यकता होती है, अगर एफआईआर के प्रत्येक चरण में या तो इनपुट के औसत को उस स्टेज और उसके पहले की गई संचित मूल्य में आउटपुट करते हैं, और फिर इनपुट को स्टोर करते हैं, अगर कोई संख्यात्मक सीमा होती है, तो कोई औसतन योग का उपयोग कर सकता है चाहे वह एक बॉक्स फिल्टर से बेहतर आवेदन पर निर्भर करता है, उदाहरण के लिए, 1 एमएमएस की कुल विलंब के साथ बॉक्स फिल्टर के चरण प्रतिक्रिया में, जब इनपुट परिवर्तन, और फिर 1ms बाद में एक बुरा डी 2 डीटी स्पाइक होगा, लेकिन न्यूनतम संभव होगा डीडी के लिए एक फिल्टर के लिए कुल 1ms देरी सुपरकास्ट अगस्त 29 13 15 15 पर। मैकेसिलेक्ट्रिकस्टफ ने कहा, अगर आपको अपनी स्मृति की जरूरतों को कम करने की आवश्यकता है, और आप अपने आवेग प्रतिक्रिया को एक आयताकार नाड़ी के बजाय एक घातीय होने का ध्यान नहीं देते हैं, तो मैं एक घातीय चलती एवे के लिए जाना होगा क्रोध फिल्टर मैं उनसे बड़े पैमाने पर फिल्टर का उपयोग करता हूं, आपको किसी भी बफर की ज़रूरत नहीं है आपको न तो पिछले नमूनों को स्टोर करना है I एक ही, आपकी स्मृति आवश्यकताओं को एन के एक कारक से भी कम किया जाता है, इसके अलावा, आपको किसी भी प्रकार की आवश्यकता नहीं है उस विभाजन के लिए केवल गुणन यदि आपके पास फ्लोटिंग-पॉइंट अंकगणितीय तक पहुंच है, तो फ़्लोटिंग-पॉइंट गुणन का उपयोग करें अन्यथा, पूर्णांक गुणांक और सही में बदलाव करें लेकिन, हम 2012 में हैं, और मैं आपको कम्पाइलर और एमसीयू का उपयोग करने की सलाह देता हूं जो आपको अनुमति देता है फ्लोटिंग-पॉइंट नंबरों के साथ काम करने के लिए। अधिक स्मृति कुशल और तेज होने के अलावा आपको किसी भी परिपत्र बफर में आइटम अपडेट करने की ज़रूरत नहीं है, मैं कहूंगा कि यह भी अधिक स्वाभाविक है क्योंकि प्रकृति के व्यवहार की तरह एक घातीय आवेग प्रतिक्रिया बेहतर ढंग से सामने आती है, ज्यादातर मामलों में । अप्रैल 20 12 9 9 पर। आईआईआर फिल्टर के साथ एक मुद्दा लगभग ओलिन और सुपरकास्ट से छुआ है, लेकिन जाहिरा तौर पर अन्य लोगों की ओर से अव्यवहार यह है कि गोलाकार नीचे कुछ अशुद्धि और संभाव्य पूर्वाग्रह का संक्षिप्त वर्णन करता है जो एन आई दो की शक्ति, और केवल पूर्णांक अंकगणितीय का प्रयोग किया जाता है, बदलाव का सही ढंग से नए नमूने के एलएसबी को खत्म करने का तरीका सही है, इसका मतलब यह है कि श्रृंखला कितनी देर तक हो सकती है, औसतन उन लोगों को कभी भी ध्यान नहीं लेगा। उदाहरण के लिए, श्रृंखला 8,8,8 8,7,7,7 7,6,6 घट रही है, और मानते हैं कि औसत शुरुआत में वास्तव में 8 है मुट्ठी 7 नमूना औसत 7 लाएगा, जो कुछ भी फिल्टर ताकत बस एक नमूने के लिए समान 6 के लिए कहानी, आदि अब लगता है कि सीरी के विपरीत हो जाता है औसत 7 पर रहेंगे, जब तक कि नमूना इसे बदलने के लिए काफी बड़ा न हो। बेशक, आप 1 2 एन 2 को जोड़कर पूर्वाग्रह के लिए सही कर सकते हैं, लेकिन वह वास्तव में सटीक समस्या को हल करता है उस मामले में घटते श्रृंखला हमेशा के लिए 8 में रहती है जब तक कि नमूना 8-1 2 एन 2 के लिए उदाहरण के लिए, शून्य से ऊपर कोई भी नमूना औसत अपरिवर्तित बनाए रखेगा। मेरा मानना ​​है कि जो खोए हुए एलएसबी के संचायक को पकड़ने का मतलब होगा लेकिन मैंने इसे कोड तैयार करने के लिए पर्याप्त रूप से नहीं बनाया है, और मुझे यकीन नहीं है कि यह श्रृंखला के कुछ अन्य मामलों में आईआईआर शक्ति को नुकसान नहीं पहुंचाएगा, उदाहरण के लिए कि 7 9, 7, 9 8 औसत तब 8 होगा। ओलिन, आपके दो-चरण के झरना को भी कुछ स्पष्टीकरण की आवश्यकता होगी क्या आप का मतलब है कि प्रत्येक औसत चलने वाले दूसरे के दूसरे परिणाम के साथ दो औसत मूल्य धारण करना इसका लाभ क्या है। अगर आप उस वजन को लागू करते हैं जो व्युत्क्रम होता है खिड़की के आकार के लिए आनुपातिक। लोकक वर्ग औसतक्राहक इंट्रिंग रनिंगएव्हजी इंट रनिंगकाउंट यह सर्कुलर सूची को बदल देता है INTIS विंडो। रिकर्सिव चल औसत औसत एन डब्ल्यू - 1 डब्ल्यू एजी एन -1 1 डब्ल्यू नमूना जहां डब्ल्यू विंडो का आकार है रनिंगएवग रनिंगकैंट - 1 रनिंगकाना रनिंगएवग 1 रनिंगकाउंट न्यूवैल। पब्लिक फ्लोट औसत रिटर्न रनिंगएवग। - 13 53 शुक्रवार 9 नवंबर 2007 को संशोधित किया गया। 8-जनवरी-08 16 25. यह फार्मूला औसत चलती औसत का अनुमान लगाने के लिए ठीक काम करता है, जब तक कि कुछ बाधाओं को ध्यान में रखा जाता है। यह चलती औसत का अनुमान लगाता है जो वास्तविक धारणा औसत पर आधारित नहीं है जो कि नमूना मान आम तौर पर मतलब के बारे में वितरित किया जाता है.मैंने इसे पहले के एक पोस्ट में बताया था। 9-अक्टूबर -11 15 46.जो मूर्ख था वह 4 साल पहले नहीं था और मेरे पास बेहतर सुझाव हो सकता है बल्कि एक परिपत्र सूची का उपयोग करने के बजाय एक लिंक्ड सूची और मैन्युअल रूप से अधिकतम सूची आकार को बनाए रखता है इस तरह से आप कुल सकल कुल रख सकते हैं - जब लिंक सूची में जोड़ते हैं, एक नोड को ट्रिम करते समय जोड़ते हैं, उस योग से उस मूल्य को घटाते हैं 5 नोड्स, शायद आप नोटिस एटी नहीं जीते हालांकि, कई उदाहरणों के लिए, हजारों नोड्स के साथ यह कोई मायने रखता है। AddValue विधि में, एक नई लिंक सूची नोड जोड़ें, और जोड़ने के बाद औसत 2 में जोड़ें, आकार 3 की जांच करें यदि आकार थ्रेशोल्ड औसत से घटाएं और फिर नोड को ट्रिम करें। लिंक सूची का उपयोग करने के बजाय, और अधिक कुशलता के लिए, आप मूल्यों की एक सरणी के आधार पर अपनी स्वयं की परिपत्र सूची लागू कर सकते हैं - जब आप एक सरणी मान को बदलते हैं, तो औसत से घटाते हैं। मार्क क्लिफटन 10-अक्टूबर -11 1 37.4 वर्ष पर और मेरे पास एक बेहतर सुझाव हो सकता है। दरअसल, यह बेहतर काम करेगा। मैं सही समाधान के बारे में निश्चित नहीं हूँ, हालांकि, प्रत्येक नमूने के औसतन योग को पूर्ण रूप से घूमने में त्रुटि मिलती है। एचएम मुझे आश्चर्य है कि पूरे भाग में प्रत्येक संख्या के पूरे हिस्से को गिनाने में विभाजित करने में मदद मिलेगी तीन चलनों की रकम रखो 1 पूरे भागों का औसत, 2 प्रत्येक विभाजन का शेष, और 3 प्रत्येक संख्या का आंशिक हिस्सा। प्रत्येक समय का पूरा हिस्सा वह संख्या है विभाजित, पूरे भाग के परिणाम को औसत चलने वाले योग में जोड़ दिया जाता है और शेष शेष चल योग में जोड़ दिया जाता है जब शेष चलती राशि में गिनती से अधिक या उसके बराबर मूल्य प्राप्त होता है, तो इसे पूरे भाग के परिणाम के साथ गिनती से विभाजित किया जाता है औसत चलने वाले योग में जोड़ा गया और शेष शेष राशि में जोड़ा जाता है, प्रत्येक गणना में, आंशिक भाग को आंशिक चलने वाले योग में जोड़ दिया जाता है। जब औसत समाप्त हो जाता है, तो शेष चलती राशि को गिनती और परिणाम से विभाजित किया जाता है औसत चल रहे राशि को एक फ्लोटिंग नंबर के रूप में जोड़ दिया जाता है उदाहरण के लिए। अब आंशिक चलने वाले योग के साथ क्या करना चाहिए ओवरफ़्लो का खतरा बहुत कम होने की संभावना है, यद्यपि अभी भी संभव है, इसलिए इसे नियंत्रित करने का एक तरीका आंशिक चलने को विभाजित करना होगा अंत में गिनती से जोड़ता है और इसे हमारे परिणाम में जोड़ता है। एक विकल्प प्रत्येक गणना में आंशिक चल योग को देखने के लिए होगा, यह देखने के लिए कि क्या यह गिनती से अधिक या उसके बराबर है जब ऐसा होता है, तो बस ऐसा ही करें हिंग है कि हम बाकी चल रहे राशि के साथ करते हैं।

No comments:

Post a Comment