चलती - औसत - कार्यान्वयन - सी
क्या नमूने की खिड़की की आवश्यकता के बिना सी में चलती हुई औसत को लागू करना संभव है। मैंने पाया है कि मैं विंडो आकार को चुनकर थोड़ा सा अनुकूलन कर सकता हूं, जो कि दो की शक्ति है जो विभाजन के बजाय बिट-स्थानांतरण की अनुमति देता है, लेकिन एक बफर की ज़रूरत नहीं है अच्छा होगा क्या एक नया चल औसत औसत परिणाम को केवल पुराने परिणाम और नए नमूने के एक समारोह के रूप में व्यक्त करने का एक तरीका है। उदाहरण के लिए, 4 नमूनों की एक खिड़की में औसत स्थानांतरित करने के लिए एक नया नमूना ईए जोड़ें चलती औसत को पुनरावर्ती रूप से लागू किया जा सकता है, लेकिन चलती औसत की सटीक गणना के लिए आपको योग में सबसे पुराना इनपुट नमूना याद रखना होगा जो आपके उदाहरण में है। लंबाई N चलती औसत के लिए आप गणना करते हैं। जहां y आउटपुट संकेत है और xn इनपुट सिग्नल ईक 1 को फिर से लिखा जा सकता है। इसलिए आपको कॉनराड टर्नर द्वारा इंगित करने के लिए 2. एक्स की गणना करने के लिए हमेशा नमूना x एनएएन याद रखना आवश्यक है, आप इसके बजाय एक अनगिनत लम्बी घातीय विंडो का उपयोग कर सकते हैं, जो आपको गणना करने की अनुमति देता है आउटपुट केवल अतीत से बाहर डाला और वर्तमान इनपुट। लेकिन यह एक मानक बिना भारित चलती औसत लेकिन एक तेजी से भारित चलती औसत नहीं है, जहां अतीत में नमूनों का छोटा वजन मिलता है, लेकिन कम से कम सिद्धांत में आप कुछ भी नहीं भूलते हैं केवल छोटे और छोटे होते हैं मैंने पहले जीपीएस ट्रैकिंग कार्यक्रम के लिए व्यक्तिगत आइटम मेमोरी के बिना एक चलती औसत को लागू किया था। मैं 1 नमूना से शुरुआत करता हूं और वर्तमान औसत प्राप्त करने के लिए 1 से विभाजित करता हूं। फिर एक जोड़ नमूना जोड़ें और 2 से विभाजित करें वर्तमान औसत. यह तब तक जारी रहता है जब तक मैं औसत की लंबाई तक नहीं पहुँचता। हर बार बाद में, मैं नया नमूना जोड़ता हूं, औसतन औसतन और औसत से उस औसत को हटाता हूं। मैं गणितज्ञ नहीं हूं, लेकिन यह एक अच्छा तरीका है क्या मुझे लगा कि यह एक वास्तविक गणित के पेट को बदल देगा, लेकिन यह पता चला है कि यह करने के लिए स्वीकृत तरीके हैं और यह अच्छी तरह से काम करता है बस याद रखिए कि जितना अधिक धीमी है, उतना ही वह धीमा है जो आप का पालन करना चाहते हैं इससे अधिकतर बात नहीं हो सकती है समय, लेकिन जब उपग्रहों का अनुसरण करें, यदि आप धीमे हो, तो निशान वास्तविक स्थिति से बहुत दूर हो सकता है और यह बुरा दिखेगा आप बैठे और पीछे वाले बिन्दुओं के बीच अंतर हो सकता है, मैंने 15 मिनट की लंबाई 6 बार प्रति मिनट चुना था पर्याप्त चौरसाई प्राप्त करें और धुंधला निशान डॉट्स के साथ वास्तविक बैठने की स्थिति से बहुत दूर न हो। उत्तर 16 16 में 23 03. कुल 0 में शुरू करें, 0 प्रत्येक बार एक नया मान देखते समय गिनती करें। तब एक इनपुट scanf, एक नया नया जोड़ देता है, एक वेतन वृद्धि की गिनती, एक औसत औसत गिनती होती है। यह सभी इनपुटों पर एक औसत औसत होगा। केवल पिछले 4 निविष्टियों के औसत की गणना करने के लिए, 4 इनपुटवैलियल्स की आवश्यकता होगी, संभवत: प्रत्येक इनपुट को एक पुराने इनपुटविरेबल में कॉपी करना चाहिए, फिर नए चलती औसतन 4 इनपुट-व्हेरीबल्स के योग के रूप में औसत, 4 राइट बदलाव 2 से विभाजित होना अच्छा होगा यदि सभी इनपुट औसत गणना करने के लिए सकारात्मक थे। 3 फरवरी 15 4 बजे उत्तर दिया। यह वास्तव में कुल औसत की गणना करेगा और चलती औसत नहीं गिनती करें किसी भी नए इनपुट नमूने के प्रभाव को बड़ा हो जाता है, 3 फरवरी को 15 जून को 53। आपका उत्तर। 137 स्टैक एक्सचेंज, इंक। एक फिल्टर के रूप में चलने की औसत। चलती औसत अक्सर शोर की उपस्थिति में डेटा को चौरसाई के लिए उपयोग किया जाता है सरल चलती औसत हमेशा परिमित इंपल्स रिस्पांस एफआईआर फ़िल्टर के रूप में नहीं पहचाना जाता है, क्योंकि यह वास्तव में सिग्नल प्रोसेसिंग में सबसे आम फिल्टरों में से एक है, इसे फ़िल्टर के रूप में इलाज करने से इसकी तुलना करने की अनुमति मिलती है, उदाहरण के लिए, विंडोड-साइकेक फिल्टर देखें उन लोगों के उदाहरणों के लिए निम्न पास उत्तीर्ण और बैंड-पास और बैंड-अस्वीकार फिल्टर पर दिए गए लेख, जो उन फिल्टरों के साथ बड़ा अंतर है, यह है कि चलती औसत सिग्नल के लिए उपयुक्त है जिसके लिए उपयोगी जानकारी उस समय के डोमेन में होती है, औसत रूप से चौरसाई माप, विन्डो-सिंक फिल्टर का एक प्रमुख उदाहरण है, दूसरी तरफ, आवृत्ति डोमेन में मजबूत प्रदर्शन वाले ऑडियो प्रसंस्करण में समरूपता के साथ एक विशिष्ट उदाहरण के रूप में एक अधिक विस्तृत तुलना टाइम डोमेन बनाम फ़्रीक्वेंसी डोमेन प्रदर्शन के फिल्टर में दोनों प्रकार के फिल्टर का आयन यदि आपके पास डेटा है जिसके लिए दोनों समय और आवृत्ति डोमेन महत्वपूर्ण हैं, तो आप मूविंग औसत पर विविधताएं देख सकते हैं, जो कि संख्या को प्रस्तुत करता है चल औसत की भारित संस्करण जो उस पर बेहतर होते हैं। लंबाई एन की चलती औसत को परिभाषित किया जा सकता है क्योंकि इसे आमतौर पर लागू किया जाता है, वर्तमान आउटपुट नमूना के साथ, पिछले एन नमूनों के औसत के रूप में देखा जाता है, औसतन, इनपुट अनुक्रम xn का एक लम्बाई का कार्य करता है जो लंबाई के एक आयताकार नब्ज और ऊंचाई 1 एन के साथ नाड़ी का क्षेत्र बनाने के लिए, और, इसलिए, फिल्टर का लाभ, एक अभ्यास में, यह सबसे अच्छा है एन अजीब हालांकि एन के लिए एक अजीब मूल्य का उपयोग करते हुए एक बढ़ते औसत को भी एक संख्या के नमूने का उपयोग करके गणना किया जा सकता है कि फ़िल्टर के विलंब में नमूने की एक पूर्णांक संख्या होगी, चूंकि एन नमूने वाले फिल्टर की देरी बिल्कुल एन - 1 2 चलती है औसत को फिर से मूल आंकड़ों के साथ गठबंधन किया जा सकता है ताकि इसे नमूने की एक पूर्णांक संख्या से बदल दिया जा सके.टाइम डोमेन। चूंकि चलती औसत एक आयताकार पल्स के साथ एक गुच्छा है, इसकी आवृत्ति प्रतिक्रिया एक sinc फ़ंक्शन होती है यह दोहरी की तरह कुछ बनाता है खिड़की-सिंक फिल्टर, चूंकि यह एक सिंक नाड़ी के साथ एक संकुचन है जो आयताकार आवृत्ति प्रतिक्रिया में परिणाम देता है। यह एक sinc आवृत्ति प्रतिक्रिया है जो चलती औसत को आवृत्ति डोमेन में एक खराब कलाकार बनाता है, हालांकि, यह समय में बहुत अच्छी तरह से प्रदर्शन करता है डोमेन, इसलिए शोर को दूर करने के लिए डेटा को चिकना करने के लिए एकदम सही है, जबकि अभी भी तेज गति से प्रतिक्रिया रखते हुए चित्रा 1 चित्रा 1. फिक्चर 1 चलती औसत फिल्टर के साथ चौरसाई। ठेठ Additive व्हाइट गाऊसी शोर AWGN के लिए अक्सर माना जाता है, औसत एन नमूनों का उपयोग एसक्यूआर एनआरआर को एसक्यूआर से बढ़ाता है क्योंकि व्यक्तिगत नमूनों के लिए शोर असंबंधित है, इसलिए प्रत्येक नमूने को अलग ढंग से व्यवहार करने का कोई कारण नहीं है इसलिए, औसत, जो प्रत्येक नमूना एक ही वजन देता है, किसी दिए गए कदम प्रतिक्रिया तीक्ष्णता के लिए शोर की अधिकतम मात्रा से छुटकारा पायेगा.क्योंकि यह एक प्राथमिकी फ़िल्टर है, चलती औसत रूपांतरण के माध्यम से कार्यान्वित किया जा सकता है, तब उसके पास एक ही दक्षता या कमी होगी यह किसी भी अन्य एफआईआर फिल्टर के रूप में है, लेकिन यह भी एक बहुत ही कुशल तरीके से, फिर से लागू किया जा सकता है यह परिभाषा से सीधे होता है। यह सूत्र yn और yn 1 के लिए अभिव्यक्ति का परिणाम है, i ई। जहां हम नोटिस करते हैं yn 1 और yn के बीच का परिवर्तन यह है कि एक अतिरिक्त शब्द xn 1 N अंत में प्रकट होता है, जबकि शब्द एक्स एनएन 1 एन शुरू से ही हटा दिया जाता है व्यावहारिक अनुप्रयोगों में, यह प्रत्येक टर्म के लिए एन द्वारा विभाजन को बाहर करना अक्सर होता है दूसरे स्थान पर एन के परिणामी लाभ के लिए क्षतिपूर्ति करके यह पुनरावर्ती क्रियान्वयन रूपांतरण के मुकाबले बहुत तेज हो जाएगा Y के प्रत्येक नए मान को केवल दो जोड़ों के साथ गणना किया जा सकता है, इसके बजाय एन अतिरिक्त जो एक सीधा प्रभाव के लिए जरूरी होगा परिभाषा का अर्थ एक पुनरावर्ती कार्यान्वयन के साथ देखने के लिए एक चीज यह है कि गोल त्रुटियाँ जमा हो जाएंगी यह आपके आवेदन के लिए एक समस्या या हो सकती है, लेकिन इसका यह भी अर्थ है कि यह पुनरावर्ती कार्यान्वयन वास्तव में एक पूर्णांक कार्यान्वयन के साथ बेहतर होगा फ्लोटिंग-पॉइंट नंबर यह काफी असामान्य है क्योंकि एक अस्थायी बिंदु का कार्यान्वयन आमतौर पर सरल होता है। इस सब का निष्कर्ष होना चाहिए कि आपको सिग्नल प्रोसेसिंग एप्लिकेशन में सरल चलती औसत फिल्टर की उपयोगिता को कम करके न देना चाहिए। फ़िलटर डिज़ाइन टूल। यह आलेख है N के लिए अलग-अलग मानों के साथ फ़िल्टर डिजाइन टूल के साथ पूरक और परिणामस्वरूप फ़िल्टर की कल्पना करना अब इसे आज़माएं। मुझे पता है कि यह बढ़ावा देने के साथ प्राप्त करने योग्य है। लेकिन मैं वास्तव में बढ़ावा देने के उपयोग से बचने के लिए चाहूंगा, जिसे मैंने गोल किया है और कोई उचित या पठनीय नहीं पाया उदाहरण। मूल रूप से मैं हाल ही में 1 का उपयोग करते हुए फ़्लोटिंग बिंदु संख्याओं की धारा की चल रही औसत की चलती औसत को ट्रैक करना चाहता हूं आंकड़ों के नमूने के रूप में 000 संख्याएं। इसे हासिल करने का सबसे आसान तरीका क्या है। मैंने एक परिपत्र सरणी, घातीय चलती औसत और अधिक सरल चलती औसत का उपयोग करने के साथ प्रयोग किया और पाया कि परिपत्र सरणी के परिणाम मेरी आवश्यकताओं को सबसे अधिक उपयुक्त करते हैं। 12 जून 12 में 4 38. यदि आपकी ज़रूरतें सरल हैं, तो आप शायद एक घातीय चलती औसत का उपयोग करने की कोशिश कर सकते हैं। बस, आप एक संचायक चर बनाते हैं, और जैसा आपका कोड प्रत्येक नमूना पर दिखता है, कोड संचयकर्ता को आपके द्वारा चुने गए नए मान के साथ अद्यतन करता है एक निरंतर अल्फा जो कि 0 और 1 के बीच है, और इस की गणना करें। आपको अल्फा के मूल्य को खोजने की जरूरत है, जहां दिए गए नमूनों का प्रभाव केवल 1000 नमूनों तक रहता है। एचएम, मैं वास्तव में यह नहीं जानता कि यह आपके लिए उपयुक्त है, अब जब मैंने इसे रख दिया है समस्या यह है कि 1000 एक घातीय गति के औसत के लिए एक बहुत लंबी खिड़की है, मुझे नहीं पता कि एक अल्फा है जो पिछले 1000 अंकों के औसत पर फैलेगा, बिना अस्थायी बिंदु गणना में, लेकिन अगर आप एक छोटा सा एवरग चाहते थे ई, जैसे 30 नंबर या ऐसा करने के लिए, यह करने का एक बहुत आसान और तेज़ तरीका है। जून 12 12 4 4 44. अपनी पोस्ट पर 1 एक्सपेंनेलीली मूविंग एवरी अल्फा को वैरिएबल होने की अनुमति दे सकता है इसलिए इससे इसे इस्तेमाल किया जा सकता है गणना समय आधार की औसत जैसे बाइट्स प्रति सेकंड यदि अंतिम संचयक अद्यतन के समय 1 सेकंड से अधिक है, तो आप अल्फा 1 0 दे देते हैं, अन्यथा, आप अल्फ़ा को अंतिम अद्यतन 1000000 jxh 12 जून 12 से 6 21 के बाद से इस्तेमाल कर सकते हैं। मूल रूप से मैं डेटा नमूने के रूप में सबसे हाल के 1000 नंबरों का उपयोग करते हुए फ़्लोटिंग बिंदु संख्याओं की एक धारा की चल रही औसत को ट्रैक करना चाहते हैं। नोट करें कि नीचे कुल जोड़ के रूप में जोड़े गए तत्वों के रूप में कुल जोड़ता है, औसत के लिए आवश्यक - मांग पर टी को अलग-अलग पैरामीटर बना दिया जाता है जैसे कि समर्थन के लिए, जैसे कि लंबे समय तक 1000 लंबा, चारों में से चारों के लिए इंट्री, या कुल फ्लोट के लिए दोहरी। यह थोड़ा सा दोषपूर्ण है numsamples INTMAX पिछले जा सकते हैं - यदि आप ध्यान रखते हैं कि आप एक अहस्ताक्षरित लंबे का उपयोग कर सकते हैं लंबे समय तक या अतिरिक्त बूल डाटा सदस्य का उपयोग रिकॉर्ड करने के लिए जब कंटेनर को पहले भर दिया जाता है, तो सबसे अच्छा सरणी के आसपास साइक्लिंग साइम्लिंग के नाम से कुछ अयोग्यता का नाम बदलता है। जैसा कि उत्तर की तरह जून 12 12 5 पर होता है। 19. यह मानता है कि शून्य ऑपरेटर टी नमूना वास्तव में शून्य ऑपरेटर टी है नमूना ओपलेस 8 जून 14 11 पर 52. ओपलेस आह अच्छी तरह से अच्छी तरह से देखा के लिए वास्तव में मैं इसके लिए शून्य ऑपरेटर टी नमूना होने के लिए मतलब था लेकिन बेशक आप ठीक हो जाएगा जो भी नोटेशन का उपयोग कर सकते हैं, धन्यवाद टोनी डी 8 जून 14 14 14 27
Comments
Post a Comment