Saya memiliki sinyal yang saya sampel di 500khz. Saya mencoba mendeteksi naik, turun dan puncaknya data yang masuk. Basis puncak bisa untuk 250 usec atau 2.5msec, amplitudo bisa 6db atau 15db di atas lantai kebisingan. Sayangnya saya tidak memiliki snr yang baik. Level dc dari sinyal tidak konstan tetapi bergerak jauh lebih lambat dari komponen ac.
Pada titik keputusan, saya perlu tahu kemiringan naik turun. Ini adalah sistem realtime yang sulit dan saya benar-benar perlu membuat keputusan dalam 100usec setelah kemiringan ke bawah mencapai tingkat dc.
Saya mencari saran bagaimana saya bisa mengimplementasikan algoritma yang layak secara efisien.
Saat ini saya melakukan rata-rata berjalan (melewati 25 titik data yang ditambahkan bersama-sama) dan mencoba mendeteksi tren. Begitu saya mendeteksi tren naik, saya mulai mencari tren turun dan begitu saya melakukannya, saya mungkin mengumpulkan 50 sampel lagi dan mulai menghitung.
Noise sekarang dengan mudah mengacaukan algoritma ini, maka pertanyaannya.
Memperbarui
Untuk kepentingan orang lain, saya akhirnya menerapkan Moving Average diikuti oleh integrator. Rata-rata bergerak dari 64 data terakhir cukup lancar tetapi kehilangan kenaikan ke tingkat tertentu, mengintegrasikan 8 nilai terakhir memperoleh kembali kenaikan dan saya hanya mencari naik dan turun, kemudian saya melakukan regresi linier untuk lereng. Bekerja ok, tidak bagus tapi ok.