Tuesday 23 January 2018

चलती - औसत - ग - कोड - avr


मैंने एट एमएगा 48 में नियंत्रक रोशनी (पीडब्लूएम) के लिए एडीसी डेटा में बदलाव को चौरसाई करने के लिए कुछ चलने वाले औसत तकनीकों की कोशिश की है, जब एक बर्तन (एडीसी) घूर्णन करते हैं। फिल्टर (छद्म कोड): मैंने देखा कि फिल्टर बहुत अच्छे हैं। लेकिन प्रतिक्रिया में धीमा है जो अपेक्षित है। मैं एक्सपेंनेलीली मूविंग एवरेज जैसी तकनीकों की तलाश कर रहा हूं अधिक संवेदनशील होने के लिए कहा क्या ऐसा कोई अन्य है जैसा कि यह कहता है: 0 और 1 के बीच कहाँ है। कोड के अनुसार और उन कोड के अनुसार अनुकूल (फ्लोट्स का उपयोग किए बिना) या मैं कैसे कोड को छोटे, तेज और उत्तरदायी बनाने के लिए फ्लोट को संबंधित पूर्णांक में परिवर्तित कर सकता हूं। और मैंने 1 रख रखा था अन्य तो यह काम के रूप में अपेक्षित नहीं होगा क्योंकि इडवे ने सभी चर को फ्लोट में बदल दिया है। कृपया निम्नलिखित वक्तव्य पर ध्यान दें, लेकिन ध्यान दें कि समय के लिए। मेरे कोड बेस में तैरते हुए प्रोग्राम स्मृति को 45 से 137 में भरना है, यदि आप बाइनरी अंशों को सीमित करके न्यूनतम ओवरहेड के साथ कार्यान्वित कर सकते हैं। मैंने अच्छे परिणामों के साथ इसका इस्तेमाल किया है मौजूदा परिणाम लें, 2 एन द्वारा विभाजित करने के लिए इसे स्थानांतरित करने के लिए N स्थान को स्थानांतरित करें, मौजूदा परिणाम से इसे घटाएं। नए डेटा जोड़ें यह आप जितना चाहें उतना इनपुट डेटा में एक चरण में परिवर्तन के साथ बदलते समय तेजी से नहीं है, लेकिन कई मामलों में एक फिल्टर के रूप में लागू करना आसान और प्रभावी है। आप अपनी प्रतिक्रिया को तेजी से उन मामलों में अपने व्यवहार के रूप में अनौपचारिक निर्णय कर सकते हैं जो बहुत अलग हैं उदाहरण के लिए, अनुक्रमिक इनपुट की गिनती बनाए रखें जो मौजूदा परिणाम से कुछ सीमा से अधिक है। यदि यह गिनती कुछ थ्रेशोल्ड से अधिक है तो कुछ फर्क से एन डिवाइड अनुपात को परिवर्तित करें। जैसे एन आम तौर पर 4- परिणाम सही स्थानांतरित कर रहे हैं 4 बार 16 विभाजन। यदि इनपुट जवाब से xxx दूर से अधिक है, तो केवल दो बदलाव ठीक करें और जोड़ते समय नया नमूना 4 गुणा करें। 4 अक्टूबर को 6: 08 पर उत्तर दिया यदि आपके पास एन नमूनों का औसत है, तो बस एन के औसत से गुणा करें, नया नमूना जोड़ें और एन 1 से विभाजित करें। यही आपको एक चलती औसत नहीं मिलती आपको 150 नमूनों को स्टोर करने के लिए तैयार होना चाहिए। फिर, जब आप एक नया नमूना प्राप्त करते हैं, तो 150 से औसत गुणा करें, सबसे पुराना घटाएं, नवीनतम जोड़ें और 150 से विभाजित करें। 150-आकार के बफर में नवीनतम रखें और सबसे पुराना हटा दें। ऐसी अन्य योजनाएं हैं जो नवरेज रखते हैं जो गुणात्मकताओं को थोड़ी कम कर देता है। जिम वैगनर ओरेगन रिसर्च इलेक्ट्रॉनिक्स, परामर्श डिवेल। स्पर्शरेखा, या, संयुक्त राज्य अमरीका ओरेक्लोनट्रिक्स क्लेइनस्टीन स्तर: पोस्टिंग फ्रीक शामिल हो गए: शनि। 22 सितम्बर, 2007 क्लेनस्टाइन द्वारा पोस्ट किया गया रवि। 18 जनवरी 2009 - 04:34 PM आखिरी एन (लगभग 150) नमूने को बचाने के लिए कोई रास्ता नहीं है, अगर प्रत्येक स्थान के लिए वास्तविक चलती औसत की आवश्यकता हो। 150 Samles अभी भी रैम में फिट होना चाहिए। आप गुणों को बचा सकते हैं लेकिन फिर भी नया नमूना जोड़ें और डालने के लिए पिछले एक को कम करें। फिर परिणाम के लिए एन के योग को विभाजित करें और अगले चरण के लिए योग रखें। अगर आप 128 नमूनों का उपयोग कर सकते हैं तो डिविजन बहुत आसान हो जाता है स्तर: 10 के पोस्टमैन में शामिल हो गए: शनि। 12 फ़रवरी 2005 स्थान: वर्म्सशिल, इंग्लैंड द्वारा प्रकाशित किया गया था डेविड पीरेंटिस। रवि। 18 जनवरी, 2009 - 04:51 PM औसत कुल नमूने नवीनता (कुल नए) (नमूने 1) यदि आप एक वैध औसत रिपोर्टिंग के बारे में चिंतित हैं, तो जब तक नमूने की संख्या 150 नहीं हो जाती है, तब तक आप अपनी रिपोर्ट में देरी करते हैं जब तक कि वैध न हो। नियमित इनट्स के 16000 नमूनों को आसानी से एक लंबी कुल में फिट होगा। आप जब औसत मूल्य की रिपोर्ट करने के लिए कहा जाता है तो आप विभाजित करते हैं। वैकल्पिक रूप से, आप औसत गणना करते हैं और अपने कुल 150 नमूनों को रीसेट करते हैं। आप इस औसत की अगली गणना तक रिपोर्ट करते हैं मेरे चक्र कंप्यूटर पर गति की तरह थोड़ा सा गति की गणना की जा सकती है इससे पहले सामने पहिया को एक से अधिक क्रांति करना है। curtvm स्तर: Raving Lunatic शामिल: Wed. 21 सितंबर, 2005 curtvm द्वारा पोस्ट किया। सोम 1 9 जनवरी, 2009 - 04:40 पूर्वाह्न (यह क्लिंस्टीन विचार के समान है)। स्तर: 10 के पोस्टमैन में शामिल हो गए: सोम। 1 9 फ़रवरी, 2001 स्थान: विस्कॉन्सिन संयुक्त राज्य अमेरिका द्वारा प्रकाशित किया गया था theusch सोम 1 9 जनवरी, 2009 - 02:58 PM विवरण की प्रकृति, बड़ी संख्या में नमूनों पर रोलिंग औसत, संकेत धीमी गति से चलती है। अगर मुझे अपने ऐप को सामान्य बनाना होता था, तो आम तौर पर हर 500 एमओपी को बंद करना है। मेरे पास एडीसी है जो सभी इस्तेमाल किए गए एडी नमूनों के एक सरणी में कच्चे पठन को संचित करते हुए निरंतर (इंटरप्ट-चालित) नमूना ले रहा है। प्रत्येक चैनल पर प्रत्येक 10 एमएमएस एक या अधिक रूपांतरण किए गए हैं। (57600 एडीसी घड़ी में जो ISR ओवरहेड के साथ 226 वसूली है, शायद यह 250 एसयूपी है, इसलिए प्रत्येक 10 एमएमएस में 40 रूपांतरण होते हैं।) 10 एमएस बिंदु पर मैं प्रत्येक चैनल के लिए नवीनतम रूपांतरण परिणाम का प्रतिनिधित्व करने वाले कच्चे मान को जोड़ता हूं। एप लूप बंद करने के लिए प्रत्येक 500 एमएमएस औसत का उपयोग किया जाता है। यह धीमी गति से चलने वाले संकेतों जैसे कि थर्मिस्टर्स, वर्तमान ड्रॉ रीडिंग, और नियंत्रण वोल्टेज के लिए ठीक काम करता है। राशि-औसत में बहुत अधिक शोर लगती है और रीडिंग्स आम तौर पर रॉक-स्थिर होते हैं। (एडीसी रीडिंग्स में देखे गए बॉबबल के बारे में बहुत सारे थ्रेड्स हैं।) ध्यान दें कि औसत के बजाय योग का उपयोग कुछ और कम बिट्स को सुरक्षित रखता है, लेकिन हेक - यहां तक ​​कि एक धीमी गति से चलती संकेत भी एक सेगमेंट में बदलना शुरू हो सकता है कि 500 ​​एमएमएस तो बात क्या है अब, तेजी से बढ़ते संकेतों या उनको एक तेज प्रतिक्रिया की आवश्यकता होती है एक अलग दृष्टिकोण की आवश्यकता होती है मेरे लिए एक आम स्थिति आने वाली बिजली नुकसान के लिए कच्चे डीसी की निगरानी कर रही है। यह संकेत अच्छी तरह से कच्चा सुधारित एसी हो सकता है और बहुत लहर है। या उसके पास अन्य कारक हो सकते हैं जो इसे उड़ा सकते हैं उन मामलों में मैं क्लिंस्टीन जैसी एक सरल औसत योजना करता हूं, नए नमूने के साथ पिछले मूल्य को बदलने के लिए वजन होता है नहीं, सही रोलिंग औसत नहीं है क्योंकि सभी नमूने नहीं बनाए जाते हैं। नए नमूने की निगरानी के लिए बिजली 12 या 14 या 18 वजन हो सकती है, जो किसी विशिष्ट मामले में सबसे अच्छा काम करता है। नीचे एक ऐप से कोड है जहां 12 बहुत मोटे थे, और अंतिम उपयोग 116: आप एक सुअर पर लिपस्टिक डाल सकते हैं, लेकिन यह अभी भी एक सुअर है। Ive कभी नहीं एक सुअर मैं पसंद नहीं था, जब तक आप कुछ नमक और काली मिर्च के रूप में पसंद नहीं है। औसत सरल चाल औसत औसत औसत चलती औसत आप काम विवरण के अनुसार इस कार्य को हल करने के लिए प्रोत्साहित किया जाता है, आप जानते हो सकता है किसी भी भाषा का उपयोग कर। संख्याओं की एक श्रृंखला की साधारण चलती औसत की गणना करना एक राज्यपूर्ण फ़ंक्शन क्लास इंस्टाल्ट बनाएं जो एक अवधि लेता है और एक नियमितता देता है जो एक संख्या को तर्क के रूप में लेता है और अब तक इसके तर्कों का सरल चलती औसत लौटाता है। एक सरल चल औसत औसत धारा 160 के 160 160 160 160 अंकों की औसत से औसत संख्या की गणना करने का एक तरीका है, इस अवधि के रूप में जाना जाता है 160। इसे 160 पी 160 के रूप में अपनी तर्क, 160 I (P), 160 के साथ आरंभिक रूटीन को कॉल करके लागू किया जा सकता है, जिसे तब एक नियमित रूप से वापस करना चाहिए, जब संख्याओं की एक धारा के व्यक्तिगत, लगातार सदस्यों के साथ बुलाया जाता है (ऊपर का मतलब) से), पिछले 160 पी 160 उनमें से, यह 160 एसएमए () को फोन करता है कार्य वर्णन में 160 160 शब्दपूर्ण शब्द 160 एसएमए (160) के लिए आवश्यक है जो इसे कॉल के बीच कुछ जानकारी याद रखता है: 160 अवधि, 160 पी 160 प्रत्येक के कम से कम पिछले 160 पी 160 नंबरों का आदेश दिया कंटेनर अपने व्यक्तिगत कॉल स्टेट 160 (160) स्टेटमेंट का मतलब है कि 160 I (), 160 प्रारंभकर्ता, 160 को लगातार कॉल करने से अलग रूटिने को दोहराया जाना चाहिए जो 160 160 शेयर सहेजे गए राज्य करते हैं ताकि वे डेटा के दो स्वतंत्र नदियों पर इस्तेमाल किए जा सकें। 160 एसएमए 160 के कार्यान्वयन के लिए छद्म कोड है: यह संस्करण हालिया पी मानों को रखने के लिए लगातार कतार का उपयोग करता है। इनट-हिलिंग-एवरेज से प्रत्येक फ़ंक्शन को एक कंटेट वैल्यू पर आधारित एटम में अपनी स्थिति है। यह क्रियान्वयन प्रत्येक चक्कर संकेतक की शुरुआत में खिड़की के भीतर संख्याओं को संग्रहीत करने के लिए एक परिपत्र सूची का उपयोग करता है जो उस सूची सेल को संदर्भित करता है जो सिर्फ खिड़की से बाहर निकलने वाला मान रखता है और बस-जोड़ा गया मान के साथ प्रतिस्थापित किया जाता है। क्लोजर एडिटेशन का उपयोग करना वर्तमान में यह एसएमए कैप नोग्क हो सकता है क्योंकि यह ढेर पर बंद करने के लिए आवंटित करता है। कुछ पलायन विश्लेषण ढेर आवंटन को हटा सकता है। एक स्ट्रक्चर संपादन का उपयोग करना यह संस्करण मुख्य फ़ंक्शन के स्टैक फ्रेम में डेटा को रखने के बंद होने के ढेर आवंटन से बचा जाता है। एक ही आउटपुट: फ्लोटिंग प्वाइंट अनुमान से बचने के लिए, पेलिंग और बढ़ते रहें, कोड पूरे परिपत्र कतार सरणी पर एक आवधिक योग कर सकता है। यह क्रियान्वयन दो (फ़ंक्शन) ऑब्जेक्ट्स साझा करने वाले राज्य का उत्पादन करता है। यह ई में मुहावरेदार है कि उन्हें एक ऑब्जेक्ट में संयोजन करने के बजाय आउटपुट (लिखित) से इनपुट को अलग करने के लिए इनपुट को अलग करें। संरचना मानक विचलन ई के कार्यान्वयन के समान है नीचे के अमृत प्रोग्राम में एक अनाम फ़ंक्शन को एक एम्बेडेड अवधि पी के साथ उत्पन्न किया जाता है, जिसका इस्तेमाल सरल चलती औसत की अवधि के रूप में किया जाता है। चलने वाला फ़ंक्शन, संख्यात्मक इनपुट पढ़ता है और इसे नव निर्मित गुमनाम समारोह में भेजता है, और फिर परिणाम को एसटीडीओयूटी के निरीक्षण करता है। आउटपुट नीचे दिखाया गया है, औसत के साथ, समूहीकृत इनपुट के बाद, प्रत्येक चलती औसत का आधार बनाते हैं। Erlang बंद है, लेकिन अचल चर। फिर एक समाधान प्रक्रियाओं का उपयोग करना है और एक सरल संदेश पासिंग वाला एपीआई है। मैट्रिक्स भाषाओं में वस्तुओं के दिए गए अनुक्रम के लिए ग्लाइडिंग एवरेज की गणना करने के लिए रूटीन होते हैं। निम्न कमांड के रूप में यह लूप के लिए कम कुशल है लगातार एक इनपुट के लिए मैं पूछता है I जो सूची L1 के अंत में जोड़ा गया है एल 1 को 2ND1 दबाकर पाया जा सकता है, और इसका मतलब प्रोग्राम को समाप्त करने के लिए सूचीऑप्स प्रेस ऑन में पाया जा सकता है। फ़ंक्शन जो एक सूची प्रदान करता है जिसमें दी गई आर्गुमेंट प्रोग्राम का औसत आंकड़ा होता है जो प्रत्येक आवेश पर एक साधारण मान देता है: सूची एक औसत सूची है: p अवधि है: 5 औसत सूची देता है: उदाहरण 2: प्रोग्राम movinav2 (i , 5) - औसत गणना को गति प्रारंभ करने, और 5 movinav2 (3, x) की अवधि को परिभाषित करें: x - सूची में नया डेटा (मान 3), और परिणाम चर x पर संग्रहीत किया जाएगा, और movinav2 (4, x) : एक्स - नया डेटा (मान 4), और नया परिणाम चर x पर संग्रहीत किया जाएगा, और प्रदर्शित (43) 2 फ़ंक्शन movinavg का विवरण: चर r - परिणाम (औसत सूची) है जो कि वेरिएबल को वापस कर दिया जाएगा I - वह इंडेक्स वैरिएबल है, और यह उप-सूची की समाप्ति तक इंगित करता है जो कि सूची की औसत होती है। चर z - एक सहायक वेरिएबल यह फ़ंक्शन वैरिएबल I का उपयोग करता है यह निर्धारित करने के लिए कि सूची का कौन सा मान अगली औसत गणना में माना जाएगा। हर पुनरावृत्ति पर, वेरिएबल I सूची में अंतिम मान को इंगित करता है जो कि औसत गणना में उपयोग किया जाएगा। इसलिए हमें यह पता करने की आवश्यकता है कि सूची में पहला मान क्या होगा। आम तौर पर पी तत्वों पर विचार करना होता है, इसलिए पहला तत्व एक (i-p1) अनुक्रमित होगा। हालांकि पहले पुनरावृत्तियों पर कि गणना आमतौर पर नकारात्मक होगी, इसलिए निम्नलिखित समीकरण नकारात्मक इंडेक्स से बचें: अधिकतम (i-p1,1) या, समीकरण, अधिकतम (आई-पी, 0) 1 का प्रबंध करना लेकिन पहले पुनरावृत्तियों पर तत्वों की संख्या भी छोटी होगी, सही मान (अंत सूचकांक - सूचकांक 1 शुरू होगा) या, समीकरण की व्यवस्था करेगा, (i - (अधिकतम (आईपी, 0) 1) 1, और फिर , (आई-मैक्स (आईपी, 0))। वेरिएबल z में आम मान (अधिकतम (आईपी)), 0) होता है, इसलिए आरंभइंडएक्स (z1) होगा और संख्याओं के आंकड़े (iz) मध्य (सूची, z1, iz) हो जाएगा जो मूल्य की सूची वापस करेगा, जो औसत योग होगा ( ।) उन योगों की राशि (।) (iz) री का औसत होगा और परिणाम को परिणाम सूची में उचित स्थान में संग्रहीत करना बंद करना और फ़ंक्शन बनाना

No comments:

Post a Comment