Friday 2 February 2018

चलती - औसत - फिल्टर - कोड - matlab


बुधवार, 08 अक्टूबर 2008 20:04 को अंतिम अद्यतन गुरुवार, 14 मार्च 2013 01:29 द्वारा लिखित Batuhan Osmanoglu हिट: 41498 Matlab में चलती औसत अक्सर मुझे लगता है मैं डेटा को कम करने के लिए जरूरत है, बिट। मैंने वही काम करने के लिए कुछ कार्य किया जो मुझे चाहिए, लेकिन फ़िल्टर फ़ंक्शन में निर्मित matlabs बहुत अच्छी तरह से काम करता है। यहां बीमार डेटा के 1 डी और 2 डी औसत के बारे में लिखते हैं I फिल्टर फ़ंक्शन का उपयोग करके 1 डी फ़िल्टर को महसूस किया जा सकता है। फिल्टर फ़ंक्शन के लिए कम से कम तीन इनपुट पैरामीटर की आवश्यकता होती है: फिल्टर के लिए अंश गुणांक (बी), फिल्टर (ए) के लिए छेदक गुणांक, और डेटा (एक्स) पाठ्यक्रम का। चल रहे औसत फिल्टर को बस से परिभाषित किया जा सकता है: 2 डी डेटा के लिए हम मेटलैब फिल्टर 2 फ़ंक्शन का उपयोग कर सकते हैं। फ़िल्टर कैसे काम करता है, इसके बारे में अधिक जानकारी के लिए, आप टाइप कर सकते हैं: 16 16 औसत औसत फिल्टर के साथ एक त्वरित और गंदे कार्यान्वयन है। पहले हमें फ़िल्टर को परिभाषित करने की आवश्यकता है। चूंकि हम चाहते हैं कि सभी पड़ोसियों का समान योगदान है, हम केवल उन कार्यों का उपयोग कर सकते हैं। हम 256 (1616) के साथ सब कुछ विभाजित करते हैं क्योंकि हम सिग्नल के सामान्य स्तर (आयाम) को बदलना नहीं चाहते हैं। फ़िल्टर को लागू करने के लिए हम बस नीचे बता सकते हैं कि एसएआर इंटरफेरोग्राफ के चरण के परिणाम निम्न हैं इस मामले में रेंज वाई अक्ष में है और अज़ीमुथ को एक्स अक्ष पर मैप किया गया है। फ़िल्टर रेंज में 4 पिक्सल चौड़ा और अजीमुथ में 16 पिक्सल चौड़ा था। डाउनलोड करें movAv. m (movAv2 भी देखें - एक अपडेटेड संस्करण जो भारन की अनुमति देता है) विवरण मैटलैब में वित्तीय उपकरणबॉक्स में movavg और tsmovavg (टाइम-सीरीज़ मूविंग एवरेज) नामक फ़ंक्शन शामिल हैं, movAv इन की बुनियादी कार्यक्षमता को दोहराने के लिए डिज़ाइन किया गया है कोड यहाँ लूप के अंदर अनुक्रमित प्रबंधित करने का एक अच्छा उदाहरण प्रदान करता है, जो कि शुरू से भ्रामक हो सकता है। Ive जानबूझकर इस प्रक्रिया को स्पष्ट रखने के लिए कोड छोटा और सरल रखा। movAv एक सरल चलती औसत प्रदर्शन करता है जिसे कुछ स्थितियों में शोर डेटा प्राप्त करने के लिए उपयोग किया जा सकता है यह एक स्लाइडिंग समय खिड़की पर इनपुट (वाई) का मतलब उठाकर काम करता है, जिसका आकार n द्वारा निर्दिष्ट किया जाता है बड़ा एन यह है कि, एन के प्रभाव को चौरसाई करने के लिए अधिक मात्रा इनपुट वेक्टर y की लंबाई के बराबर होती है। और प्रभावी रूप से (अच्छी तरह से,) एक लोपास आवृत्ति फ़िल्टर बनाता है - उदाहरण और विचार अनुभाग देखें। चूंकि एन के प्रत्येक मान द्वारा प्रदान किए गए चौरसाई की मात्रा इनपुट वेक्टर की लंबाई के सापेक्ष है, क्योंकि यह उचित देखने के लिए हमेशा भिन्न मूल्यों का परीक्षण करता है। यह भी याद रखें कि एन अंक हर औसत पर खो जाते हैं यदि n 100 है, तो इनपुट वेक्टर के पहले 99 अंक में 100pt औसत के लिए पर्याप्त डेटा नहीं है। यह औसत स्टैकिंग द्वारा कुछ हद तक बचा जा सकता है, उदाहरण के लिए, नीचे दी गई कोड और ग्राफ़ कई अलग-अलग लंबाई विंडो औसत की तुलना करती है। नोटिस कैसे सहज 1010pt एक एकल 20pt औसत से तुलना की है। दोनों मामलों में कुल आंकड़ों के 20 अंक खो जाते हैं। Xaxis x1 बनाएँ: 0.01: 5 शोर शोर उत्पन्न करें रिप्ले 4 शोर repmat (randn (1, ceil (numel (x) शोर रेप्स), शोर रेप्स, 1) शोर रेसिप (शोर, 1, लम्बाई (शोर) शोर रेप्स) ydata शोर yexp उत्पन्न करें एक्स) 10 नोईस (1: लंबाई (एक्स)) औसत से अधिक: y2 movAv (y, 10) 10 पीटी y3 movAv (y2, 10) 1010 पीटी y4 movAv (y, 20) 20 pt y5 movAv (y, 40) 40 pt y6 movAv (y, 100) 100 pt प्लॉट आकृति प्लॉट (एक्स, वाई, y2, y3, y4, y5, y6) किंवदंती (कच्चा डेटा, 10pt चलती औसत, 1010pt, 20pt, 40pt, 100pt) xlabel (x) ylabel ( y) शीर्षक (मूविंग एवरेज की तुलना) movAv. m कोड रन-थ्रू फ़ंक्शन आउटपुट MOVAV (y, n) पहली पंक्ति कार्य नाम, इनपुट और आउटपुट को परिभाषित करती है इनपुट एक्स औसत पर प्रदर्शन करने के लिए डेटा का एक सदिश होना चाहिए, एन औसत पर आउटपुट में प्रदर्शन करने के लिए अंकों की संख्या होना चाहिए, फ़ंक्शन द्वारा लौटाए गए औसतन आंकड़े शामिल होंगे। आउटपुट आउटपुट को एनएएन (1, संख्या (वाई)) मध्यबिंदु के मध्य बिंदु खोजें (एन 2) फ़ंक्शन का मुख्य कार्य लूप के लिए किया जाता है, लेकिन दो चीजें शुरू करने से पहले तैयार हैं। सबसे पहले आउटपुट को एनएएन के रूप में पूर्व-आवंटित किया गया है, इसने दो उद्देश्यों को पूरा किया सबसे पहले, प्रीलावलेंस आमतौर पर अच्छा अभ्यास है क्योंकि मैटलिजिंग मेटलैब को कम करना पड़ता है, दूसरी बात यह है कि यह औपचारिक आंकड़ों को आउटपुट में इनपुट वेक्टर के समान आकार के स्थान पर रखना आसान बनाता है। इसका मतलब है कि एक ही xaxis दोनों के लिए बाद में इस्तेमाल किया जा सकता है, जो प्लॉटिंग के लिए सुविधाजनक है, वैकल्पिक रूप से NaN को बाद में कोड की एक पंक्ति में निकाल दिया जा सकता है (आउटपुट आउटपुट (वेरिएबल मिडपॉइंट का इस्तेमाल आउटपुट वेक्टर में डेटा को संरेखित करने के लिए किया जाएगा। एन 10, 10 अंक खो जाएंगे, क्योंकि इनपुट वेक्टर के पहले 9 अंक के लिए, 10 अंक औसत लेने के लिए पर्याप्त डेटा नहीं है। जैसा कि इनपुट इनपुट से कम होगा, इसे ठीक से गठबंधन करने की आवश्यकता होगी। उपयोग किया जाता है, इसलिए शुरूआती और अंत में एक बराबर मात्रा में डेटा खो जाता है, और इनपुट को 1: लंबाई (y) - n के लिए आउटलेट आउटलेट करते समय बनाए गए NaN बफ़र्स द्वारा आउटपुट के साथ गठबंधन रखा जाता है- एन इंडेक्स रेंज को औसत लेता है ओवर (ए: बी) प्रतिबंध मतलब उत्पादन (बीच में) का अर्थ है (y (a: b)) अंत में लूप के लिए, इनपुट के प्रत्येक लगातार खंड पर एक मतलब लिया जाता है। लूप ए के लिए चलाया जाएगा जो कि इनपुट (y) की लंबाई तक 1 के रूप में परिभाषित किया गया, डेटा खो जाने वाला डेटा (n)। यदि इनपुट 100 अंक है तो एनजी और एन 10 है, लूप 1 से 9 0 तक चलेगा। इसका मतलब है कि औसतन सेगमेंट के पहले इंडेक्स प्रदान करता है। दूसरा सूचकांक (बी) बस एक -1 है तो पहले पुनरावृत्ति पर, a1 n10 तो ख 11-1 10 पहला औसत वाई (ए: बी) पर लिया जाता है। या एक्स (1:10)। इस सेगमेंट का औसत, जो कि एक एकल मान है, सूचकांक के बीच उत्पादन में संग्रहीत है। या 156. दूसरे आवृत्ति पर, ए 2 बी 210-1 11 तो इसका अर्थ एक्स (2:11) पर लिया जाता है और आउटपुट (7) में संग्रहीत होता है। लंबाई 100, एक 9 1 के इनपुट के लिए लूप की अंतिम पुनरावृत्ति पर। बी 9010-1 100 तो मतलब एक्स (91: 100) के ऊपर लिया जाता है और आउटपुट में संग्रहित होता है (95)। यह सूचकांक (1: 5) और (96: 100) पर कुल (10) एनएएन मूल्यों के साथ उत्पादन छोड़ देता है। उदाहरण और विचार मूविंग एवरेज कुछ स्थितियों में उपयोगी होते हैं, लेकिन वे हमेशा सर्वश्रेष्ठ विकल्प नहीं देते हैं। ये दो उदाहरण हैं जहां वे जरूरी इष्टतम नहीं हैं माइक्रोफोन कैलिब्रेशन डेटा का यह सेट स्पीकर द्वारा उत्पादित प्रत्येक आवृत्ति के स्तर का प्रतिनिधित्व करता है और एक ज्ञात रेखीय प्रतिक्रिया के साथ माइक्रोफ़ोन द्वारा दर्ज किया गया है। स्पीकर का उत्पादन आवृत्ति के साथ बदलता रहता है, लेकिन हम अंशांकन डेटा के साथ इस बदलाव के लिए सही कर सकते हैं - अंशांकन में अंशांकन में उतार-चढ़ाव के लिए आउटपुट को समायोजित किया जा सकता है ध्यान दें कि कच्चे आंकड़ा शोर है - इसका मतलब है कि आवृत्ति में एक छोटा परिवर्तन के लिए एक बड़े, अनियमित, स्तर के लिए खाते में परिवर्तन की आवश्यकता होती है। क्या यह यथार्थवादी है या क्या यह रिकॉर्डिंग पर्यावरण का एक उत्पाद है इस मामले में उचित चलने वाले औसत को लागू करने के लिए जो स्तर की कमी को वक्रित करने के लिए एक अंशांकन वक्र प्रदान करता है जो थोड़ा कम अनियमित है लेकिन इस उदाहरण में यह इष्टतम क्यों नहीं है अधिक डेटा बेहतर होगा - कई कैलिब्रेशन एक साथ चलने वाले सिस्टम में शोर को नष्ट कर देगा (जब तक कि इसके यादृच्छिक रूप से) और कम सूक्ष्म विवरणों के साथ एक वक्र प्रदान करते हैं चलती औसत केवल यह अनुमान लगा सकते हैं, और वास्तव में मौजूद वक्र से कुछ उच्च आवृत्ति डुबकी और चोटियों को निकाल सकते हैं। साइन लहरें साइन लहरों पर चलती औसत का उपयोग करके दो बिंदुओं को दर्शाया गया है: सामान्य औसत अंक को चुनने के लिए उचित अंकों की संख्या चुनने का सामान्य मुद्दा। इसकी सरल है, लेकिन सिग्नल विश्लेषण के अधिक प्रभावी तरीके समय डोमेन में ओसीसिंग संकेतों की तुलना में हैं। इस आलेख में, मूल साइन लहर को नीले रंग में रखा गया है। शोर को नारंगी वक्र के रूप में जोड़ दिया गया है और प्लॉट किया गया है। यह देखने के लिए कि मूल लहर को पुनर्प्राप्त किया जा सकता है, तो एक चल औसत औसत अंकों के विभिन्न अंकों पर किया जाता है। 5 और 10 अंक उचित परिणाम प्रदान करते हैं, लेकिन शोर पूरी तरह से दूर नहीं करते हैं, जहां अधिक से अधिक अंकों के आयाम के विस्तार को खोना शुरू हो जाता है क्योंकि औसत चरणों में भिन्नता है (याद रखें कि लहर शून्य के आसपास, और मतलब (-1 -1) 0) । एक वैकल्पिक दृष्टिकोण, कम से कम फिल्टर बनाने के लिए होता है, जो आवृत्ति डोमेन में सिग्नल पर लागू किया जा सकता है। मैं विस्तार में नहीं जा रहा हूं क्योंकि यह इस लेख के दायरे से परे है, लेकिन जैसा कि शोर मौलिक आवृत्ति से काफी अधिक आवृत्ति है, इस मामले में उच्च आवृत्ति को दूर करने से कम से कम फिल्टर बनाने के लिए यह काफी आसान होगा शोर. मुझे लूप के भीतर एक डेटा सीरीज़ पर चलती औसत की गणना करने की आवश्यकता है I मुझे N9 दिनों से बढ़ते औसत प्राप्त करना होगा सरणी आईएम कंप्यूटिंग में 365 मान (एम) की 4 श्रृंखला होती है, जो स्वयं डेटा के दूसरे सेट का मतलब मान है। मैं एक साजिश में चलती औसत के साथ अपने डेटा के माध्य मूल्यों को साजिश करना चाहता हूं। मैं मूविंग एवरेज और कमान कमांड के बारे में थोड़ी गलती कर रहा था और मुझे कुछ ऐसा मिला जो मैंने अपने कोड में कार्यान्वित करने की कोशिश की थी .: तो बुनियादी तौर पर, मैं अपना मतलब गणना करता हूं और उसे (गलत) चलती औसत से साजिश करता हूं। मैंने मथवर्क साइट से ठीक वेट वैल्यू को चुना, इसलिए यह गलत है। (स्रोत: mathworks. nlhelpeconmoving-average-trend-estimation. html) मेरी समस्या हालांकि, यह है कि मुझे यह समझ में नहीं आता है कि यह वेट क्या है क्या किसी को समझाया जा सकता है यदि मूल्यों के वजन के साथ कुछ करना है: इस मामले में यह अमान्य है। सभी मूल्यों को वही भारित किया जाता है और अगर मैं यह पूरी तरह से गलत कर रहा हूं, तो क्या मैं इसके साथ कुछ मदद कर सकता हूं मेरा धन्यवाद धन्यवाद ने कहा कि 23 सितंबर को 1 9 .0 9 को प्रयोग चलने वाले औसत को लागू करने का एक शानदार तरीका है। जिस कोड में आप उपयोग कर रहे हैं, वेट यह है कि आप प्रत्येक मान को कितना वजन कर रहे हैं (जैसा आपने अनुमान लगाया है)। उस वेक्टर का योग हमेशा एक के बराबर होना चाहिए यदि आप प्रत्येक मूल्य को समान रूप से भारित करना चाहते हैं और एक आकार एन चलती फ़िल्टर करना चाहते हैं, तो आप मान्य तर्क में प्रयोग करना चाहते हैं, इसके परिणामस्वरूप आपको एम में एमएस की तुलना में कम मूल्य मिलेगा। यदि आप इसके प्रभाव को न सोचें शून्य पैडिंग यदि आपके पास सिग्नल प्रोसेसिंग टूलबॉक्स है तो आप cconv का उपयोग कर सकते हैं यदि आप एक परिपत्र चलती औसत की कोशिश करना चाहते हैं। यदि आप पहले से ही मौजूद हैं तो आपको अधिक जानकारी के लिए रूपांतरण और cconv दस्तावेज पढ़ना चाहिए। लूप का उपयोग किए बिना चल रहे औसत को खोजने के लिए आप फ़िल्टर का उपयोग कर सकते हैं। यह उदाहरण, 16-तत्व वेक्टर की चलती औसत पाता है, जो विंडो के 5 आकार का उपयोग करता है। 2) चिकनी फिटिंग टूलबॉक्स के हिस्से के रूप में चिकनी (जो कि ज्यादातर मामलों में उपलब्ध है) yy चिकनी (y) कॉलम वेक्टर में डेटा को चिकना बनाता है चलती औसत फिल्टर का उपयोग कर y परिणाम स्तंभ वेक्टर yy में वापस आ रहे हैं। चलती औसत के लिए डिफ़ॉल्ट अवधि 5.Moving औसत फ़िल्टर (एमए फ़िल्टर) लोड हो रहा है। चलती औसत फिल्टर सामान्यतया कम पास एफआईआर (परिमित इंपल्स रिस्पांस) फ़िल्टर है जिसे आमतौर पर नमूनाकृत डेटासिगल के सरणी को चौरसाई करने के लिए उपयोग किया जाता है। इसमें एक समय में इनपुट के एम नमूने लेते हैं और उन एम-नमूनों का औसत लेते हैं और एक आउटपुट पॉइंट का उत्पादन करते हैं। यह एक बहुत ही सरल एलपीएफ (निम्न पास फ़िल्टर) संरचना है जो वैज्ञानिकों और इंजीनियरों के लिए इच्छित डेटा से अवांछित शोर घटक फ़िल्टर करने के लिए आसान आता है। जैसा कि फिल्टर की लंबाई बढ़ जाती है (पैरामीटर एम) उत्पादन की चिकनाई बढ़ जाती है, जबकि डेटा में तेज़ परिवर्तन तेजी से कुंद होते हैं। इसका अर्थ है कि इस फिल्टर में उत्कृष्ट समय डोमेन की प्रतिक्रिया है लेकिन एक खराब आवृत्ति प्रतिक्रिया है। एमए फ़िल्टर तीन महत्वपूर्ण कार्य करता है: 1) यह एम इनपुट पॉइंट लेता है, उन एम-पॉइंट के औसत की गणना करता है और एक आउटपुट पॉइंट का उत्पादन करता है 2) इसमें गणना की गई गणनाएं शामिल हैं फ़िल्टर में देरी की एक निश्चित मात्रा का परिचय होता है 3) फ़िल्टर एक कम पास फ़िल्टर के रूप में कार्य करता है (खराब आवृत्ति डोमेन प्रतिक्रिया और एक अच्छा समय डोमेन प्रतिक्रिया के साथ) Matlab कोड: निम्नलिखित matlab कोड एम-पॉइंट मूविंग औसत फिल्टर के समय डोमेन प्रतिक्रिया को simulates और विभिन्न फिल्टर लंबाई के लिए आवृत्ति प्रतिक्रिया भी भूखंड। टाइम डोमेन रिस्पांस: पहली साजिश पर, हमारे पास इनपुट है जो चल औसत औसत फिल्टर में जा रहा है। इनपुट शोर है और हमारा उद्देश्य शोर को कम करना है। अगला आंकड़ा 3-बिंदु मूविंग औसत फिल्टर का आउटपुट प्रतिक्रिया है। यह आंकड़ा से अनुमान लगाया जा सकता है कि 3-पॉइंट मूविंग औसत फिल्टर ने शोर को फ़िल्टर करने में बहुत कुछ नहीं किया है। हम फिल्टर नल को 51-अंकों में बढ़ाते हैं और हम देख सकते हैं कि आउटपुट में शोर बहुत कम हो गया है, जिसे अगले आंकड़े में दर्शाया गया है। हम नल को आगे बढ़कर 101 और 501 तक बढ़ा सकते हैं और हम यह देख सकते हैं कि शोर लगभग शून्य है, फिर भी बदलाव बहुत ही कम हो गए हैं (संकेत के दोनों तरफ ढलान का निरीक्षण करें और उन्हें आदर्श ईंट दीवार संक्रमण के साथ तुलना करें हमारे इनपुट)। आवृत्ति प्रतिक्रिया: आवृत्ति प्रतिक्रिया से यह कहा जा सकता है कि रोल-ऑफ बहुत धीमा है और स्टॉप बैंड क्षीणन अच्छा नहीं है। इस रोक बैंड क्षीणन को देखते हुए, स्पष्ट रूप से, चलती औसत फिल्टर दूसरे से आवृत्तियों के एक बैंड को अलग नहीं कर सकता। जैसा कि हम जानते हैं कि समय डोमेन में एक अच्छा प्रदर्शन आवृत्ति डोमेन में खराब प्रदर्शन और इसके विपरीत। संक्षेप में, चलती औसत एक असाधारण अच्छा चौरसाई फ़िल्टर (समय डोमेन में क्रिया) है, लेकिन एक असाधारण खराब कम-पास फ़िल्टर (आवृत्ति डोमेन में क्रिया) बाहरी लिंक: अनुशंसित पुस्तकें: प्राथमिक साइडबार

No comments:

Post a Comment