मैं डीएसपी के लिए काफी नया हूं, और अजगर में एक्सेलेरोमीटर डेटा को चौरसाई करने के लिए संभावित फिल्टर पर कुछ शोध किया है। निम्न चित्र में देखे जा सकने वाले डेटा के प्रकार का एक उदाहरण देखा जा सकता है:
अनिवार्य रूप से, मैं इस डेटा को सुचारू रूप से सलाह देने के लिए देख रहा हूं कि आखिरकार इसे वेग और विस्थापन में बदल दिया जाए। मैं समझता हूं कि मोबाइल फोन से एक्सेलेरोमीटर बेहद शोर है।
मुझे नहीं लगता कि मैं इस समय एक कलमन फ़िल्टर का उपयोग कर सकता हूं क्योंकि मैं डेटा द्वारा उत्पादित शोर को संदर्भित करने के लिए डिवाइस को पकड़ सकता हूं (मैंने पढ़ा कि डिवाइस को फ्लैट में रखने और उन रीडिंग से शोर की मात्रा का पता लगाने के लिए आवश्यक है?)
एफएफटी ने कुछ दिलचस्प परिणाम उत्पन्न किए हैं। मेरे प्रयासों में से एक था एफएफटी त्वरण सिग्नल, फिर निम्न आवृत्तियों को 0. का पूर्ण एफएफटी मूल्य प्रदान करना। फिर मैंने ओमेगा अंकगणित और व्युत्क्रम एफएफटी का उपयोग वेग के लिए एक भूखंड प्राप्त करने के लिए किया। परिणाम निम्नवत थे:
क्या यह चीजों के बारे में जाने का एक अच्छा तरीका है? मैं संकेत की समग्र शोर प्रकृति को दूर करने की कोशिश कर रहा हूं, लेकिन स्पष्ट चोटियों जैसे कि लगभग 80 सेकंड की पहचान करने की आवश्यकता है।
मैं मूल एक्सेलेरोमीटर डेटा पर एक कम पास फिल्टर का उपयोग करके भी थक गया हूं, जिसने इसे चौरसाई करने का एक बड़ा काम किया है, लेकिन मुझे यकीन नहीं है कि यहां से कहां जाना है। यहाँ से जाने के लिए कोई मार्गदर्शन वास्तव में उपयोगी होगा!
संपादित करें: थोड़ा सा कोड:
for i in range(len(fz)):
testing = (abs(Sz[i]))/Nz
if fz[i] < 0.05:
Sz[i]=0
Velfreq = []
Velfreqa = array(Velfreq)
Velfreqa = Sz/(2*pi*fz*1j)
Veltimed = ifft(Velfreqa)
real = Veltimed.real
इसलिए अनिवार्य रूप से, ive ने मेरे एक्सेलेरोमीटर डेटा पर एक एफएफटी का प्रदर्शन किया, एसआई को देते हुए, एक साधारण ईंट की दीवार फिल्टर का उपयोग करके उच्च आवृत्तियों को फ़िल्टर किया (मुझे पता है कि यह आदर्श नहीं है)। फिर ive डेटा के FFT पर ओमेगा अंकगणित का उपयोग करें। इसके अलावा मेरी पोस्ट में मेरी छवियों को जोड़ने के लिए डेटाजिस्ट का बहुत बहुत धन्यवाद :)
fz
सरणी के आरंभीकरण को नहीं दिखाते हैं , यह प्रतीत होता है कि आप इसके बजाय एक हाईपास फ़िल्टर लागू कर रहे हैं।