ईईजी धीमी गति से बदलाव के लिए 0.01 हर्ट्ज का उच्च पास फिल्टर


10

मैं इलेक्ट्रोएन्सेफलोग्राफिक (ईईजी) डेटासेट के लिए एक उच्च पास फिल्टर बनाने की कोशिश कर रहा हूं, ताकि बहुत धीमी गति से बहती बूंदों से छुटकारा मिल सके। हालांकि इन आंकड़ों की सेवा के अनुसंधान के लिए 0.3 हर्ट्ज के आसपास की आवृत्ति बहुत महत्वपूर्ण है।

मैं मतलाब का उपयोग करता हूं और मैंने विभिन्न चीजों की कोशिश की। ऐसा लगता है कि 3 डीबी का बहुत कम डीबी क्षीणन, एफआईआर फिल्टर के साथ ठीक है। उदाहरण के लिए मैंने इसका इस्तेमाल किया:

h=fdesign.highpass('Fst,Fp,Ast,Ap',0.005,0.01,3,1,250); % i needed to cut 
d=design(h,'butter');
fvtool(d)

हालाँकि यह फ़िल्टर डेटा की शुरुआत में एक dc बहाव करता है और मैं इन पहले डेटा पॉइंट्स को ढीला नहीं करना चाहूंगा।

मैंने आपके पृष्ठों के माध्यम से पढ़ा है कि एक चतुर विचार एक कम पास फिल्टर को डिजाइन करना है जिसे बाद में मैं वास्तविक डेटा से घटाऊंगा। मैंने इसे एक समान फ़िल्टर के साथ किया और इसने काम किया लेकिन एक बेसलाइन लिफ्ट को छोड़ दिया। मैं अब औसत निष्कासन नहीं चलाना चाहता क्योंकि यह विश्लेषण प्रोटोकॉल में अगले चरण में है।

कोई सुझाव?


1
तो समस्या सिर्फ फिल्टर की प्रारंभिक प्रतिक्रिया है? क्या यह पूर्व-निर्धारित डेटा है जिसे आप केवल शून्य से प्रीपेन्ड कर सकते हैं या यह रियलटाइम है?
एंडोलिथ

Lowpass और घटाव दृष्टिकोण भी आप देख रहे हैं समस्या से ग्रस्त होंगे। मुद्दा यह है कि हर फ़िल्टर में देरी है। तेज कटऑफ के साथ फिल्टर जैसा आप चाहते हैं, उसमें बहुत लंबा विलंब हो सकता है। मुझे यकीन नहीं है कि आप अगली बार औसत निष्कासन क्यों करेंगे; आपके द्वारा दिखाए गए फ़िल्टर का डीसी लाभ शून्य है, इसलिए हटाने के लिए कोई सराहनीय औसत नहीं होगा (फ़िल्टर की देरी के कारण आउटपुट की शुरुआत में क्षणिक अवधि को छोड़कर)।
जेसन आर

जवाबों:


6

आप टाइम मशीन के लिए पूछ रहे हैं: पर डीसी बम्प से बचने के लिए , आपको फ़िल्टर की स्थिति को जानना होगा जैसे कि यह रिकॉर्डिंग शुरू होने से पहले चल रहा था। इससे कोई फर्क नहीं पड़ता कि आप किस तरह के फिल्टर का इस्तेमाल करते हैं।t=0

यहां एक ट्रिक है जो आपके काम आ सकती है । मान लीजिए कि आपके पास एक टीएपी एफआईआर फ़िल्टर (या एक आईआईआर फिल्टर है, जिसका आवेग प्रतिक्रिया नमूनों के बाद पर्याप्त रूप से 0 हो जाता है )। अपने सिग्नल के पहले नमूने लें , उन्हें उल्टा करें, और अपने सिग्नल की शुरुआत के लिए उसे प्रीपेंड करें। वास्तव में, हम फ़िल्टरिंग के उद्देश्यों के लिए एक नया सिग्नल परिभाषित कर रहे हैं । जब आप फ़िल्टर करते हैं, तो फ़िल्टर राज्य पहले से ही प्रारंभिक संकेत के साथ "प्राइमेड" हो गया होगा: आउटपुट के पहले नमूनों को हटा दें , और डीसी बम्प को उम्मीद से दूर हो जाना चाहिए।NNNg(t)=g(t)=f(t)N

कहने की जरूरत नहीं है, उस योजना के साथ कई गोचर्स हैं - शुरुआत के लिए, रियलटाइम प्रोसेसिंग के लिए यह करना कठिन है, और यदि सिग्नल व्युत्पन्न , तो आप अभी भी पहले कुछ नमूनों के साथ विश्वास के मुद्दों पर जा सकते हैं। लेकिन यह टक्कर से छुटकारा चाहिए।t=0


6

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


0

मैंने जो चाल श्री rtollert को समझाया और सोचा कि यह सबसे अच्छा मैं कर सकता था।

यदि आप लगातार सैंपलिंग / हार्डवेयर मुआवजे के मार्ग पर जाते हैं, तो दक्षता आपको डीसी ब्लॉकर्स में दिलचस्पी दिखा सकती है, जैसा कि रैंपी येट्स और रिचर्ड लायन्स ने डीएसपी टिप्स एंड ट्रिक्स मार्च 2008 में बताया था।



-1

आप पूर्ण डीसी मूल्य के बारे में परवाह नहीं है, सही है?

केवल अपने डेटा में एक स्थिर ऑफसेट क्यों न जोड़ें ताकि पहला डेटा बिंदु शून्य पर हो?

निश्चित रूप से, आपको प्रत्येक डेटापॉइंट पर ऑफसेट को जोड़ना होगा, लेकिन यह फिल्टर के साथ होने वाले बड़े कदम-प्रतिक्रिया मुद्दों से पूरी तरह से बच जाएगा।

प्रभावी रूप से फ़िल्टर शून्य से शुरू होता है। इसलिए, जब आपका डेटा शुरू होता है, तो फ़िल्टर आपके पास जो भी डीसी स्तर है, शून्य से एक बड़ा सीढ़ी-चरण देखता है।

बस सीढ़ी-कदम को हटाने के लिए ऑफसेट जोड़ें।


-1

औसत निष्कासन क्यों नहीं? बाद का कदम जो इसे "फिर से" करता है, उसका प्रभाव नहीं होता है (यह शून्य को घटाना होगा)।


यह एक प्रश्न के अधिक है, और वास्तव में प्रश्न का उत्तर नहीं है। यह एक बिंदु पर एक टिप्पणी के रूप में उपयुक्त हो सकता है, हालांकि सवाल इतना पुराना है कि यह सिर्फ इस बिंदु पर व्यर्थ लगता है।
सैम मैलोनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.