मेरे पास एक संकेत है कि मैं 500khz पर नमूना लेता हूं। मैं आने वाले आंकड़ों में वृद्धि, गिरावट और शिखर का पता लगाने की कोशिश कर रहा हूं। शिखर का आधार 250 usec या 2.5msec के लिए हो सकता है, आयाम 6db या 15db शोर तल से ऊपर हो सकता है। मैं दुर्भाग्य से अच्छा एसएनआर नहीं है। सिग्नल का डीसी स्तर स्थिर नहीं है, लेकिन एसी घटक की तुलना में बहुत अधिक धीमा है।
निर्णय बिंदु पर, मुझे उठने और गिरने की ढलान जानने की जरूरत है। यह एक कठिन रीयलटाइम प्रणाली है और मुझे वास्तव में डीसी स्तर तक नीचे की ओर ढलान के बाद 100usec में निर्णय लेने की आवश्यकता है।
मैं उन सुझावों की तलाश में हूं कि मैं एक एल्गोरिथ्म को कुशलता से कैसे लागू कर सकता हूं जो सभ्य है।
वर्तमान में मैं एक रनिंग एवरेज (पिछले 25 डेटा पॉइंट्स को एक साथ जोड़ा गया है) और ट्रेंड का पता लगाने की कोशिश करता हूं। एक बार जब मैं ट्रेंड का पता लगा लेता हूं तो मैं ट्रेंड को कम करना शुरू कर देता हूं और एक बार ऐसा करने के बाद मैं शायद 50 अन्य नमूने एकत्र करता हूं और गणना शुरू करता हूं।
शोर अब आसानी से इस एल्गोरिथ्म शिकंजा, इसलिए सवाल।
अपडेट करें
दूसरों के लाभ के लिए, मैंने एक मूविंग एवरेज लागू किया है, जिसके बाद इंटीग्रेटर है। पिछले 64 डेटा का औसत बढ़ना काफी हद तक सुचारू हो गया, लेकिन एक हद तक लुप्त हो गया, पिछले 8 मूल्यों को एकीकृत करने से वृद्धि हुई और मैं बस उठने और गिरने की तलाश में था, बाद में मैंने ढलान के लिए एक रैखिक प्रतिगमन किया। ठीक काम करता है, महान नहीं लेकिन ठीक है।