बहुत बुनियादी शब्दों में क्या है


17

क्या चौरसाई है और मैं इसे कैसे कर सकता हूं?

मतलाब में मेरे पास एक सरणी है जो एक स्पीच सिग्नल (एफएफटी के 128 बिंदुओं का परिमाण) का परिमाण स्पेक्ट्रम है। मैं चलती औसत का उपयोग करके इसे कैसे चिकना करूं? जो मैं समझता हूं, मुझे एक निश्चित संख्या के तत्वों का विंडो आकार लेना चाहिए, औसत लेना चाहिए, और यह नया 1 तत्व बन जाता है। फिर खिड़की को एक तत्व द्वारा दाईं ओर स्थानांतरित करें, औसत लें जो 2 तत्व बन जाता है, और इसी तरह। क्या वास्तव में यह कैसे काम करता है? मुझे खुद पर यकीन नहीं है कि अगर मैं ऐसा करता हूं, तो मेरे अंतिम परिणाम में मेरे पास 128 से कम तत्व होंगे। तो यह कैसे काम करता है और यह डेटा बिंदुओं को सुचारू करने में कैसे मदद करता है? या क्या कोई अन्य तरीका है जिससे मैं डेटा को स्मूथ कर सकता हूं?

EDIT: फॉलोअप प्रश्न का लिंक


एक स्पेक्ट्रम के लिए आप संभवतः एक साथ (समय के आयाम में) कई स्पेक्ट्रा एक एकल स्पेक्ट्रम की आवृत्ति अक्ष के साथ चल रहे औसत के बजाय चाहते हैं
एंडोलिथ

@endolith दोनों वैध तकनीक हैं। फ़्रीक्वेंसी डोमेन (कभी-कभी डेनियल पीरियडोग्राम कहा जाता है) में एवरेजिंग टाइम डोमेन में विंडोिंग के समान है। मल्टीपल पीरियोडोग्राम ("स्पेक्ट्रा") का लाभ लेना सही पीरियडोग्राम (इसे वेल्च पीरियोडोग्राम कहा जाता है) के लिए आवश्यक पहनावा की नकल करने का प्रयास है। साथ ही, शब्दार्थ के विषय में, मैं तर्क दूंगा कि "स्मूथिंग" गैर-कारणात्मक कम-पास फ़िल्टरिंग है। देखें कलमैन को बनाम कलमन स्मूथिंग, वीनर फ़िल्टरिंग वी वीनर स्मूथिंग, आदि देखें। इसमें एक विशिष्ट अंतर है और यह कार्यान्वयन पर निर्भर है।
ब्रायन

जवाबों:


23

चौरसाई कई तरीकों से किया जा सकता है, लेकिन बहुत ही बुनियादी और सामान्य शब्दों में इसका मतलब है कि आप अपने पड़ोसियों के साथ इसके तत्वों को मिलाकर एक संकेत भी बाहर करते हैं। आप शोर से छुटकारा पाने के लिए संकेत को थोड़ा धब्बा / धुंधला कर देते हैं। उदाहरण के लिए, एक बहुत ही सरल चौरसाई तकनीक होगी, प्रत्येक सिग्नल तत्व f(t)को मूल मान के 0.8 के रूप में पुनर्गणना करने के लिए, और इसके प्रत्येक पड़ोसी के 0.1:

f'(t) = 0.1*f(t-1) + 0.8*f(t) + 0.1*f(t+1)

ध्यान दें कि गुणन कारक, या भार, एक को कैसे जोड़ते हैं। तो अगर सिग्नल काफी स्थिर है, तो चौरसाई करना इसे ज्यादा नहीं बदलता है। लेकिन अगर सिग्नल में अचानक झटकेदार बदलाव होते हैं, तो उसके पड़ोसियों के योगदान से उस शोर को थोड़ा दूर करने में मदद मिलेगी।

इस पुनर्गणना फ़ंक्शन में आपके द्वारा उपयोग किए जाने वाले वज़न को कर्नेल कहा जा सकता है । एक आयामी गॉसियन फ़ंक्शन या किसी अन्य बुनियादी कर्नेल को आपके मामले में करना चाहिए।

एक विशेष प्रकार के चौरसाई का अच्छा उदाहरण:

ऊपर: नीचे दिया गया बिना संकेत वाला
: चिकना संकेत

यहाँ छवि विवरण दर्ज करें

कुछ गुठली के उदाहरण:

यहाँ छवि विवरण दर्ज करें


तो यह एक भारित चलती औसत है? क्या इसे 3 का विंडो आकार कहा जाता है? 1 और अंतिम तत्व के बारे में क्या? और अगर मेरे पास 128 तत्वों की एक सरणी है और मैं 16 या 32 तत्वों की विंडो का उपयोग करना चाहता हूं, तो इसे कैसे संशोधित किया जाएगा?

@ user13267: हां, आप कह सकते हैं कि एक चौरसाई कर्नेल एक भारित चलती औसत है। यदि आप एक समान कर्नेल का उपयोग करते हैं (दूसरी छवि देखें), यह सिर्फ एक सादे चलती औसत है। आप खिड़की के आकार के बारे में सही हैं। किनारों से निपटने के लिए, तीन बुनियादी दृष्टिकोण हैं: 1) अपने डेटा को शून्य-पेड करना, 2) अंतिम मान को दोहराते हुए, 3) सिग्नल को मिरर करना। सभी मामलों में आप कुछ दिखावा डेटा बनाते हैं ताकि आपका कर्नेल शून्य में न गिरे।
Junuxx

शून्य गद्दी की गिनती शून्य में गिरने के रूप में नहीं होगी? चलती औसत प्रक्रिया के अंत में मेरे नए "औसत" डेटा सेट में उतना ही डेटा होना चाहिए जितना मूल नहीं होना चाहिए? फिर अगर मैं इसे शुरुआत या अंत में शून्य करता हूं, या अंतिम डेटा दोहराता हूं, तो क्या यह एरे के किनारों पर औसत मूल्य नहीं होगा? और डेटा की संख्या के संदर्भ में सिग्नल की मदद को कैसे प्रतिबिंबित किया जाएगा? क्या इसके लिए कोई सरल ट्यूटोरियल है जो दिखाता है कि प्रक्रिया कैसे होती है, कहते हैं, 32 डेटा पॉइंट और विंडो का आकार 4 या 5?

2
यदि आप चाहते हैं कि आपके स्मूथ किए गए डेटासेट में मूल डेटासेट की लंबाई समान हो, तो आपको एंडपॉइंट्स पर डेटा बनाना होगा। आप उस डेटा को कैसे बनाते हैं, इसके लिए कोई भी विकल्प किसी तरह से औसत है। वास्तविक डेटासेट के दर्पण के रूप में आउट-ऑफ-बाउंड डेटा का इलाज करना (अर्थात यह मान लेना कि N + 1 N-1, N + 2 = N-2, आदि के समान है) आवृत्ति स्पेक्ट्रम विशेषताओं को बनाए रखेगा। सिग्नल के अंत भागों, जबकि एक शून्य-या-गैर-शून्य दोहराने का अनुमान लगाने से यह प्रतीत होगा कि सभी आवृत्तियों को छोर पर बंद किया जा रहा है।
रसेल बोरोगोव

8

Junuxx के अच्छे उत्तर के अलावा मैं कुछ नोट्स छोड़ना चाहूंगा।

  • चौरसाई छानने से संबंधित है (दुर्भाग्य से काफी अस्पष्ट विकिपीडिया लेख ) - आपको गुणों के आधार पर चिकनी को चुनना चाहिए।

  • मेरे पसंदीदा में से एक मंझला फ़िल्टर है । यह एक गैर-रैखिक फ़िल्टर का एक उदाहरण है। इसमें कुछ दिलचस्प गुण हैं, यह "किनारों" को संरक्षित करता है और बड़े शोर के तहत काफी मजबूत है।

  • यदि आपके पास एक मॉडल है, तो आपका सिग्नल कलामान फ़िल्टर कैसे व्यवहार करता है, यह देखने लायक है। इसका चौरसाई वास्तव में अवलोकन के आधार पर संकेत की एक बायेसियन अधिकतम संभावना है।


4

पड़ोसी नमूनों के बीच संबंध को बदलने के लिए पड़ोसी नमूनों की जानकारी का उपयोग करके चौरसाई करना। परिमित वैक्टर के लिए, अंत में, एक तरफ कोई पड़ोसी जानकारी नहीं है। आपकी पसंद हैं: छोरों को सुचारू / फ़िल्टर न करें, एक छोटे परिणामी स्मूथ वेक्टर को स्वीकार करें, डेटा तैयार करें और उसी के साथ चिकना करें (सिरों पर किसी भी पूर्वानुमान की सटीकता / उपयोगिता पर निर्भर करता है), या शायद अलग-अलग असममित स्मूथिंग कर्नेल का उपयोग कर सिरों (जो सिग्नल में सूचना सामग्री को वैसे भी छोटा कर देता है)।


3

आप नल की लंबाई अलग करने के लिए चलती औसत फिल्टर को चौरसाई करने के लिए पूरा matlab कोड पा सकते हैं। www.gaussianwaves.com/2010/11/moving-average-filter-ma-filter-2/


1

दूसरों ने उल्लेख किया है कि आप किस तरह से स्मूथिंग करते हैं, मैं यह उल्लेख करना चाहता हूं कि स्मूथिंग क्यों काम करता है।

यदि आप अपने सिग्नल की ठीक से देखरेख करते हैं, तो यह एक सैंपल से अगले (सैंपल = टाइमपॉइंट्स, पिक्सल्स आदि) में अपेक्षाकृत कम भिन्न होगा, और इसमें समग्र रूप से चिकनी उपस्थिति की उम्मीद है। दूसरे शब्दों में, आपके सिग्नल में कुछ उच्च आवृत्तियाँ होती हैं, यानी सिग्नल घटक जो आपके नमूने दर के समान दर पर भिन्न होते हैं।

फिर भी, माप अक्सर शोर से दूषित होते हैं। पहले सन्निकटन में, हम आमतौर पर गॉसियन वितरण का मतलब शून्य के साथ पालन करने के लिए शोर पर विचार करते हैं और एक निश्चित मानक विचलन जो संकेत के शीर्ष पर बस जोड़ा जाता है।

हमारे सिग्नल में शोर को कम करने के लिए, हम आम तौर पर निम्नलिखित चार धारणाएँ बनाते हैं: शोर यादृच्छिक है, नमूनों के बीच सहसंबद्ध नहीं है, शून्य का मतलब है, और संकेत पर्याप्त रूप से ओवरसम्पल्ड है। इन मान्यताओं के साथ, हम एक स्लाइडिंग औसत फिल्टर का उपयोग कर सकते हैं।

उदाहरण के लिए, तीन लगातार नमूने पर विचार करें। चूंकि सिग्नल अत्यधिक ओवरसम्पल्ड है, इसलिए अंतर्निहित सिग्नल को रैखिक रूप से बदलने के लिए माना जा सकता है, जिसका अर्थ है कि तीन नमूनों में सिग्नल का औसत मध्य नमूना पर सच्चे सिग्नल के बराबर होगा। इसके विपरीत, शोर का मतलब शून्य है और असंबंधित है, जिसका अर्थ है कि इसका औसत शून्य होना चाहिए। इस प्रकार, हम तीन-नमूना स्लाइडिंग औसत फ़िल्टर लागू कर सकते हैं, जहां हम प्रत्येक नमूने को अपने और उसके आस-पास के पड़ोसियों के बीच के औसत से बदल देते हैं।

बेशक, जितना बड़ा हम खिड़की बनाते हैं, उतना ही शोर शून्य से बाहर हो जाएगा, लेकिन सच्चे सिग्नल की रैखिकता की हमारी धारणा कम है। इस प्रकार, हमें एक व्यापार बंद करना होगा। दोनों दुनिया में सबसे अच्छा पाने का प्रयास करने का एक तरीका है कि एक भारित औसत का उपयोग किया जाए, जहां हम दूर के नमूनों को छोटे वज़न देते हैं, ताकि हम बड़ी दूरी से शोर का औसत प्रभाव डालते हैं, जबकि सही संकेत को अधिक भारित नहीं करना जहां यह हमारे रैखिकता से विचलन करता है। कल्पना।

आपको किस प्रकार वज़न लगाना चाहिए यह शोर, सिग्नल और कम्प्यूटेशनल दक्षता पर निर्भर करता है, और निश्चित रूप से, शोर से छुटकारा पाने और सिग्नल में कटौती के बीच व्यापार बंद।

ध्यान दें कि पिछले कुछ वर्षों में बहुत सारे काम हुए हैं, जिससे हमें कुछ चार धारणाओं को शिथिल करने की अनुमति मिली है, उदाहरण के लिए, चर फ़िल्टर विंडो (अनिसोट्रोपिक डिफ्यूजन), या ऐसी योजनाएं जो वास्तव में विंडोज़ का उपयोग नहीं करती हैं सब पर (गैर-माध्यम साधन)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.