Bagaimana cara menormalkan data sensor accelerometer saya?

9

Saya bekerja dengan satu set besar data accelerometer yang dikumpulkan dengan beberapa sensor yang dikenakan oleh banyak subjek. Sayangnya, tidak ada orang di sini yang tahu spesifikasi teknis perangkat dan saya pikir mereka tidak pernah dikalibrasi ulang. Saya tidak punya banyak info tentang perangkat. Saya sedang mengerjakan tesis master saya, accelerometer itu dipinjam dari universitas lain dan secara keseluruhan situasinya agak tidak transparan. Jadi, preprocessing on-board perangkat? Tidak tahu.

Yang saya tahu adalah mereka adalah accelerometer triaksial dengan laju sampling 20Hz; digital dan mungkin MEMS. Saya tertarik pada perilaku dan gerak tubuh nonverbal, yang menurut sumber saya sebagian besar harus menghasilkan aktivitas dalam kisaran 0,3-3,5Hz.

Normalisasi data tampaknya sangat diperlukan, tetapi saya tidak yakin apa yang harus digunakan. Sebagian besar data dekat dengan nilai lainnya (nilai mentah ~ 1000, dari gravitasi), tetapi ada beberapa ekstrem seperti hingga 8000 dalam beberapa log, atau bahkan 29000 pada yang lain. Lihat gambar di bawah . Saya pikir ini membuatnya menjadi ide yang buruk untuk dibagi dengan max atau stdev untuk dinormalisasi.

Apa pendekatan yang biasa dalam kasus seperti ini? Dibagi dengan median? Nilai persentil? Sesuatu yang lain

Sebagai masalah sampingan, saya juga tidak yakin apakah saya harus memotong nilai-nilai ekstrem ..

Terima kasih atas sarannya!

Sunting : Berikut adalah sebidang data sekitar 16 menit (20.000 sampel), untuk memberi Anda gambaran tentang bagaimana data biasanya didistribusikan.

masukkan deskripsi gambar di sini

Junuxx
sumber
1
Bisakah Anda memberikan sedikit informasi lebih lanjut tentang pengaturan pengukuran Anda? Pertanyaan yang muncul di benak: ( 1 ) Apakah ini akselerometer sumbu tunggal atau multi-sumbu? ( 2 ) Apakah high-pass difilter atau tidak dan, jika ya, bagaimana? (Kedengarannya bukan, berdasarkan deskripsi Anda.) ( 3 ) Apa sebenarnya yang Anda ukur dan berapa rentang frekuensi sinyal yang diinginkan? ( 4 ) Apa mekanisme penginderaan (yaitu, MEMS, piezoelektrik, kapasitif, dll.) Atau, bahkan, nomor bagian (!) Dari accelerometer yang Anda gunakan? ...
kardinal
... (lanjutan) ( 5 ) Apakah ini sepenuhnya digital atau apakah Anda memiliki ADC Anda sendiri (16-bit, mungkin, dengan deskripsi yang Anda berikan)?
kardinal
@ cardinal: Saya mengedit jawaban untuk pertanyaan Anda, terima kasih telah bertanya. Tidak yakin apa itu ADC. Saya terlibat dalam percobaan, tetapi tidak dalam ekstraksi data dari memori perangkat, ada kesenjangan antara pengumpulan data dan di mana saya menerima banyak log biner.
Junuxx
Hai, Junuxx. Maaf untuk akronim yang tidak dijelaskan (ADC = "konverter analog-ke-digital"); Secara implisit saya berasumsi Anda akan mengenalinya berdasarkan pertanyaan Anda.
kardinal
1
Apa yang Anda coba cari tahu dari data ini? Apakah Anda mungkin mencoba mendeteksi jenis peristiwa tertentu, memperkirakan frekuensi peristiwa, memperkirakan percepatan rata-rata, menemukan korelasi di antara berbagai accelerometer, ...? Intinya adalah jika Anda ingin saran yang baik dan relevan, jangan bertanya tentang prosedur teknis dengan data (yang mungkin tidak relevan atau bahkan tidak berguna, tergantung pada aplikasi): pertama beri tahu kami masalah apa yang Anda coba selesaikan.
whuber

Jawaban:

14

Sinyal mentah yang Anda perlihatkan di atas tampak tanpa filter dan tidak dikalibrasi. Sesuai filtering dan kalibrasi , dengan beberapa artefak penolakan akan berlaku menormalkan data. Pendekatan standar dengan data accelerometer adalah sebagai berikut:

  1. Filter - misalnya urutan ke-4, lowpass IIR fase-nol atau filter bandpass
  2. Penolakan artefak - berbasis ambang batas
  3. Kalibrasi - Metode Ferraris dkk ( Prosedur untuk kalibrasi di lapangan yang mudah dari gyro dan akselerometer tiga sumbu laju, metode Ferraris, U Grimaldi, M Parvis - Sensor dan Aktuator, 1995 ) bekerja dengan baik untuk ini.

Dianjurkan untuk melakukan penolakan artefak pada data sensor inersia. Saya akan khawatir bahwa Anda tidak tahu asal-usul data, sehingga Anda tidak dapat menjamin bahwa sensor ditempelkan dengan benar dan konsisten (dalam hal orientasi dan penempatan fisik) untuk semua subjek. Jika sensor tidak ditempelkan dengan benar, Anda bisa mendapatkan banyak artefak dalam sinyal, karena sensor dapat bergerak relatif terhadap segmen tubuh. Demikian pula, jika sensor diorientasikan secara berbeda (dalam cara mereka ditempatkan) pada subjek yang berbeda, data akan sulit untuk dibandingkan antar subjek.

Mengingat ukuran outlier yang Anda laporkan, mereka sepertinya merupakan artefak. Artefak semacam itu hampir pasti akan memiringkan perhitungan kalibrasi apa pun (meskipun efeknya akan dikurangi dengan penyaringan yang sesuai) dan karenanya kalibrasi harus dilakukan setelah penolakan artefak.

Ambang batas sederhana dapat bekerja dengan baik untuk rutinitas penolakan artefak awal, yaitu menghapus (atau mengganti dengan NaN) semua sampel di atas ambang empiris tertentu. Teknik yang lebih canggih akan secara adaptif menghitung ambang ini menggunakan running mean atau moving window.

Tergantung pada lokasi sensor Anda juga mungkin ingin mengoreksi pengaruh gravitasi pada sinyal akselerasi, meskipun pemahaman rinci tentang sumbu sensor dan pemosisian sangat penting di sini. Metode Moe-Nillson ( R. Moe-Nilssen, Metode baru untuk mengevaluasi kontrol motor dalam gaya berjalan di bawah kondisi lingkungan kehidupan nyata. Bagian 1: Instrumen, Biomekanik Klinis, Volume 13, Masalah 4-5, Juni-Juli 1998, Halaman 320-327 ) adalah yang paling umum digunakan dan bekerja dengan baik untuk sensor inersia yang dipasang di punggung bawah.

Tempat yang baik untuk mulai memeriksa data untuk pengenalan gerakan adalah dengan memecah data yang disaring dan dikalibrasi menjadi zaman (misal 10-an) dan menghitung sejumlah fitur per zaman dan menghubungkannya dengan label yang Anda miliki untuk data, saya bisa ' t menawarkan saran yang lebih spesifik tanpa mengetahui lebih lanjut tentang kumpulan data dan label terkait.

Semoga ini membantu.

BGreene
sumber
Itu jawaban yang luar biasa @BGreene, terima kasih banyak! Referensi juga sangat berguna. Saya berharap saya telah mengajukan pertanyaan ini beberapa bulan yang lalu. Sensor-sensor itu dikenakan pada tali di leher (bukan ide saya), jadi pasti ada banyak gerakan relatif terhadap tubuh. Beberapa saran Anda mungkin lebih cocok untuk penelitian lebih lanjut, tetapi setidaknya itu akan membantu untuk bagian Future Work saya. Dan untungnya bagian pengakuan bukan masalah, saya memang memiliki latar belakang yang cukup solid dalam pembelajaran mesin, tapi terima kasih atas sarannya juga.
Junuxx
Tidak masalah. Dalam hal ini saya akan berpikir Anda akan terbatas pada memeriksa gerakan kasar sebagai tali yang berarti bahwa Anda tidak dapat dengan andal mengatakan bagaimana tubuh bergerak, hanya sensor. Anda mungkin dapat menyimpulkan bahwa nilai output sensor besar sama dengan gerakan bruto besar tetapi Anda kehilangan banyak kerenyahan dari sensor yang ditempelkan dengan benar.
BGreene
(+1 kemarin) Beberapa hal mungkin diperhitungkan dalam (1.) di atas. Karena batas bawah rentang frekuensi yang diinginkan cukup kecil, salah satu alternatif untuk dipertimbangkan adalah dengan menerapkan filter low-pass dan kurangi rerata. Kedua, alih-alih filter IIR, orang mungkin mempertimbangkan filter respon impuls-terbatas fase-fase dalam contoh ini. Saya mengatakan ini karena saya menduga bahwa untuk memprediksi gerakan dengan menggunakan sinyal akselerometer multi-sumbu, orang akan ingin menjaga gerakan disinkronkan secara independen dari frekuensi. (lanjutan)
kardinal
(...) Respons fase nonlinear dari filter IIR akan menggeser komponen yang berbeda dengan jumlah yang berbeda dan efek ini cenderung lebih buruk di dekat frekuensi cutoff. Karena semuanya digital, masuk akal untuk menggunakan filter FIR linier. Seringkali seseorang juga memiliki kontrol yang lebih baik terhadap respon transien juga. :-)
kardinal
@ cardinal itu semua benar - telah mengedit respons saya di atas. baru saja memeriksa kode saya - algoritma accelerometer terbaru saya menggunakan filter Butterworth IIR fase-nol. Meskipun saya lebih suka untuk menghindari pengurangan rata-rata untuk segmen data pendek
BGreene