Monday 12 March 2018

चलती - औसत - सी कोड नमूना


मुझे पता है कि यह बढ़ावा देने के साथ प्राप्त करने योग्य है। लेकिन मैं वास्तव में बढ़ावा देने का उपयोग करना चाहूंगा, जो मुझे पसंद है और मुझे कोई उचित या पठनीय उदाहरण नहीं मिल रहा है। मूल रूप से मैं फ़्लोटिंग बिंदु संख्याओं की एक धारा की चलती औसत पर चलना चाहता हूं डेटा नमूने के रूप में सबसे हाल ही में 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 से 14 27.मॉविंग औसत - एमए। 4. डाउन मूविंग एवर - एमए। एसएमए उदाहरण के रूप में, 15 दिनों में निम्नलिखित समापन कीमतों के साथ सुरक्षा पर विचार करें। 1 5 दिन 20, 22, 24, 25 , 23.Week 2 5 दिन 26, 28, 26, 29, 27.Week 3 5 दिन 28, 30, 27, 29, 28. ए 10-डी एई एमए पहले डेटा बिंदु के रूप में पहले 10 दिनों के लिए समापन कीमतों का औसत होगा अगले डेटा बिंदु जल्द से जल्द कीमत को छोड़ देगा, 11 दिन की कीमत बढ़ाएं और औसत ले लें, और इसी तरह नीचे दिखाया गया है। जैसा कि पहले लिखा गया है, एमईए वर्तमान मूल्य कार्रवाई की वजह से पिछड़े कीमतों पर आधारित हैं क्योंकि वे पिछले कीमतों पर आधारित हैं जो अब एमए के लिए समय अवधि अधिक है, इस प्रकार 200 दिन के एमए में 20-दिवसीय एमए की तुलना में काफी अधिक अंतर होगा क्योंकि इसमें कीमतें शामिल हैं पिछले 200 दिनों का उपयोग करने के लिए एमए की लंबाई व्यापारिक उद्देश्यों पर निर्भर करती है, अल्प अवधि के व्यापार और लंबी अवधि के निवेशकों के लिए इस्तेमाल किए जाने वाले कम एमए के साथ लंबी अवधि के निवेशकों के लिए अधिक उपयुक्त 200-दिन एमए व्यापक रूप से निवेशकों और व्यापारियों द्वारा पीछा किया जाता है , इस चलती औसत से ऊपर और उससे नीचे ब्रेक के साथ महत्वपूर्ण व्यापारिक संकेत माना जाता है। एमए अपने दम पर महत्वपूर्ण व्यापार संकेतों को भी प्रदान करते हैं, या जब बढ़ते एमए से दो औसत पार हो जाते हैं, तो यह इंगित करता है कि सुरक्षा एक अपट्रेंड में है, जबकि गिरावट एमए इंगित करता है कि यह एक डाउनट्रेंड सिमिल में है अर्ली, ऊपरी गति को एक तेजी से क्रॉसओवर के साथ की पुष्टि की जाती है, जो तब होता है जब एक अल्पावधि एमए एक लंबी अवधि के एमए डाउनवर्ड गति से ऊपर की ओर बढ़ता है एक मंदी के विदेशी के साथ पुष्टि की जाती है, जो तब होता है जब एक अल्पावधि एमए लंबे समय तक एमए के नीचे पार करता है जैसा कि अन्य लोगों ने उल्लेख किया है, आपको अब आईआईआर अनंत आवेग प्रतिक्रिया फ़िल्टर के बजाय आईआईआर अनंत आवेग प्रतिक्रिया फ़िल्टर पर विचार करना चाहिए, जो आप अब उपयोग कर रहे हैं इसमें अधिक है, लेकिन पहली नज़र में एफआईआर फिल्टर को स्पष्ट रूप से क्रॉलॉल्यूशन और आईआईआर फिल्टर समीकरणों के साथ लागू किया जाता है। विशेष आईआईआर फिल्टर मैं माइक्रो कंप्यूटर में बहुत कुछ का उपयोग करता हूँ एक एकल ध्रुव कम पास फिल्टर है यह एक साधारण आरसी एनालॉग फ़िल्टर का डिजिटल समकक्ष है अधिकांश अनुप्रयोगों के लिए, ये बॉक्स फ़िल्टर की तुलना में बेहतर विशेषताएँ हैं जो कि आप एक बॉक्स फिल्टर के अधिकांश उपयोगों का उपयोग कर रहे हैं जो मुझे सामना करना पड़ा है, किसी का डिजिटल सिग्नल प्रोसेसिंग क्लास में ध्यान न देने का नतीजा है, न कि उनके विशेष लक्षणों की ज़रूरत के परिणामस्वरूप, यदि आप केवल उन्मूलन करना चाहते हैं उच्च आवृत्तियों जो आप जानते हैं शोर हैं, एक एकल ध्रुव कम पास फ़िल्टर बेहतर होता है एक माइक्रो कंप्यूटर में डिजिटल रूप से लागू करने का सबसे अच्छा तरीका आम तौर पर होता है। फ़िल्ट - फ़िल्ट एफएफ नई - फ़िल्ट। फ़िलट लगातार राज्य का एक टुकड़ा यह एकमात्र स्थिर है वेरिएबल को आपको इस फ़िल्टर की गणना करने की ज़रूरत है नया नया मूल्य है कि फ़िल्टर को इस पुनरावृत्ति के साथ अद्यतन किया जा रहा है एफएफ फिल्टर अंश है जो फ़िल्टर की भारीता को समायोजित करता है इस एल्गोरिथ्म को देखो और देखें कि एफएफ 0 फ़िल्टर के लिए असीम रूप से भारी है आउटपुट कभी नहीं बदलता है एफएफ 1 के लिए, यह वास्तव में कोई फिल्टर नहीं है क्योंकि उत्पादन केवल इनपुट का अनुसरण करता है उपयोगी मूल्य आपके बीच एफएफ को चुनने के लिए छोटी सी प्रणालियों के बीच होते हैं, ताकि एफएफ द्वारा गुणा सही पारी के रूप में पूरा किया जा सके। एन बिट्स द्वारा उदाहरण के लिए, एफएफ 1 16 हो सकता है और एफएफ द्वारा गुणा बढ़ता है इसलिए 4 बीट्स का एक सही बदलाव अन्यथा इस फिल्टर को केवल एक घटाएं और एक जोड़ने की आवश्यकता है, हालांकि संख्या को आमतौर पर संख्यात्मक सटीक पर इनपुट वैल्यू से अधिक व्यापक होना चाहिए मैं नीचे दिए गए अलग सेक्शन पर क्लिक करें। मैं आम तौर पर एडी रीडिंग लेता है जो उन्हें जरूरत से ज़्यादा तेज है और इनमें से दो फ़िल्टर को कैस्केड किया जाता है यह सीरीज में दो आरसी फिल्टर के डिजिटल समकक्ष है, और रोलऑफ आवृत्ति से ऊपर 12 डीबी अष्टकोई के द्वारा attenuates हालांकि, एडी रीडिंग के लिए यह आम तौर पर अधिक से अधिक प्रासंगिक है, इसके कदम प्रतिक्रिया पर विचार करके समय डोमेन में फ़िल्टर करने के लिए यह आपको बताता है कि जब आप परिवर्तन को मापते हैं तो आपके सिस्टम को कितनी तेजी से बदलाव दिखाई देगा। इन फ़िल्टरों को डिज़ाइन करने में मदद करने के लिए केवल एफएफ चुनना और तय करना उनमें से कितने कैस्केड के लिए मैं अपने प्रोग्राम का उपयोग करता हूँ FILTBITS आप फिल्टर के कैस्केड श्रृंखला में प्रत्येक एफएफ के लिए बदलाव बिट्स की संख्या निर्दिष्ट करते हैं, और यह चरण प्रतिक्रिया और अन्य मूल्यों की गणना करता है असल में मैं आमतौर पर इसे अपने आवरण स्क्रिप्ट PLOTFILT द्वारा चलाता है FILTBITS, जो एक सीएसवी फ़ाइल बनाता है, फिर सीएसवी फ़ाइल को प्लॉट करता है उदाहरण के लिए, यहां PLOTFILT 4 का परिणाम है 4. PLOTFILT के दो मापदंडों का मतलब है कि दो फिल्टर को कैस्केड किया जाएगा ई प्रकार ऊपर वर्णित है 4 के मान एफएफ द्वारा गुणा करने के लिए बदलाव बिट्स की संख्या को दर्शाते हैं इस मामले में दो एफएफ मान इसलिए 1 16 हैं। लाल ट्रेस यूनिट स्टेप रिस्पांस है, और यह देखने के लिए मुख्य बात है उदाहरण के लिए, यह आपको बताता है कि यदि इनपुट तुरंत बदला जाता है, तो संयुक्त फिल्टर का उत्पादन 60 पुनरावृत्तियों में नए मान के 90 में हो जाएगा यदि आप 95 निपटने के समय की देखभाल करते हैं, तो आपको 73 पुनरावृत्तियों के बारे में प्रतीक्षा करनी होगी, और 50 के लिए समय तय करना केवल 26 पुनरावृत्तियों। हरे रंग का ट्रेस आपको एक पूर्ण आयाम स्पाइक से आउटपुट दिखाता है यह आपको यादृच्छिक शोर दमन के कुछ विचार देता है ऐसा लगता है कि कोई भी नमूना आउटपुट में 2 5 बदलाव से अधिक नहीं होगा। नीले ट्रेस इस फिल्टर को सफेद शोर के साथ क्या करता है इसकी एक व्यक्तिपरक भावना दें यह एक कठोर परीक्षण नहीं है क्योंकि इसमें कोई गारंटी नहीं है कि प्लेटैटफिल्म के इस चलाने के लिए सफेद शोर इनपुट के रूप में उठाए गए यादृच्छिक संख्या में सामग्री क्या थी, यह केवल आपको देने के लिए है किसी न किसी शुल्क यह कितना चिकना होगा और यह कितना चिकना होगा। पीएलटीएफआईएलटी, हो सकता है 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 बिट मूल्यों का उपयोग कर सकते हैं तकनीकी तौर पर केवल दो के दूसरे ध्रुव को व्यापक मान की आवश्यकता होगी, लेकिन फर्मवेयर सादगी के लिए मैं आम तौर पर उसी प्रतिनिधित्व का उपयोग करता हूं, और जिससे एक फिल्टर के सभी खंभे के लिए एक ही कोड। आम तौर पर मैं एक फिल्टर पोल ऑपरेशन करने के लिए एक सब-रूटिन या मैक्रो लिखता हूं, फिर प्रत्येक ध्रुव पर लागू होता है चाहे उपनियम या मैक्रो इस पर निर्भर करता है कि क्या उस विशेष में चक्र या प्रोग्राम स्मृति अधिक महत्वपूर्ण हैं या नहीं समर्थक ject किसी भी तरह से, मैं कुछ खरोंच राज्य का उपयोग करने के लिए subroutine मैक्रो, जो अद्यतन करता है में नई पारित करने के लिए, लेकिन यह भी लोड करता है कि एक ही खरोंच राज्य में नया था यह आसान कई पोल लागू करने के बाद से एक ध्रुव के अद्यतन FILT है अगले एक का नया जब एक सबस्ट्रैनीन, जिस तरह से फ़िल्ट को फ़िल्ट को पॉइंटर बिन्दु रखने के लिए उपयोगी होता है, जिस तरह से फ़िलट के बाद अपडेट किया जाता है जिस तरह से उपनेमिका स्वचालित रूप से मेमोरी में लगातार फिल्टर पर चलती है, जिसे कई बार कहा जाता है मैक्रो के साथ आपको एक सूचक की जरूरत नहीं है क्योंकि प्रत्येक प्रेषण पर काम करने के लिए पते में आप पास होते हैं। कोड्स के उदाहरण. यहाँ एक तस्वीर के लिए ऊपर वर्णित एक मैक्रो का उदाहरण है 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 होगा। ओलिन, आपके दो-चरण का झरना को भी कुछ स्पष्टीकरण की आवश्यकता होगी क्या आप का मतलब है कि प्रत्येक औसत चलने वाले दूसरे के परिणाम के साथ दो औसत मूल्यों को पकड़ना इस का लाभ क्या है?

No comments:

Post a Comment