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.
sumber
Jawaban:
Anda harus mulai dengan pembeda bandwidth (setara dengan pembeda diikuti oleh filter low-pass). Diferensialator akan menghapus tren frekuensi rendah dan akan merespons tajam ke puncak dan lereng Anda. Komponen low-pass akan menghilangkan noise di luar frekuensi cutoff.
Anda harus merancang frekuensi cutoff Anda sehingga Anda mendapatkan pulsa bersih untuk lereng Anda.
Lereng positif akan melambat saat pulsa positif; lereng negatif sebagai pulsa negatif, dan puncak akan sesuai dengan nol-persimpangan antara positif dan negatif.
Jenis filter ini biasanya diterapkan sebagai filter FIR. Jumlah sampel untuk filter Anda akan bergantung pada batasan waktu-nyata Anda, ketajaman pada frekuensi cutoff, dan frekuensi cutoff itu sendiri.
sumber