Saya menanyakan pertanyaan ini di StackOverflow, dan direkomendasikan untuk menanyakannya di sini.
Saya memiliki dua seri waktu data akselerometer 3D yang memiliki basis waktu yang berbeda (jam dimulai pada waktu yang berbeda, dengan beberapa creep yang sangat sedikit selama waktu pengambilan sampel), serta mengandung banyak celah dengan ukuran yang berbeda (karena penundaan terkait dengan penulisan untuk dipisahkan perangkat flash).
Accelerometer yang saya gunakan adalah GCDC X250-2 yang murah . Saya menjalankan accelerometer dengan gain tertinggi, sehingga data memiliki tingkat kebisingan yang signifikan.
Rangkaian waktu masing-masing memiliki sekitar 2 juta titik data (lebih dari satu jam pada 512 sampel / detik), dan berisi sekitar 500 peristiwa menarik, di mana peristiwa tipikal mencakup 100-150 sampel (masing-masing 200-300 ms). Banyak dari peristiwa ini dipengaruhi oleh pemadaman data selama penulisan flash.
Jadi, datanya tidak asli, dan bahkan tidak terlalu cantik. Tapi inspeksi bola mata saya menunjukkan dengan jelas berisi informasi yang saya minati. (Saya dapat memposting plot, jika perlu.)
Akselerometer berada dalam lingkungan yang serupa tetapi hanya tergabung secara moderat, artinya saya dapat mengetahui dengan jelas peristiwa mana yang cocok dari setiap akselerometer, tetapi sejauh ini saya tidak berhasil melakukannya dalam perangkat lunak. Karena keterbatasan fisik, perangkat juga dipasang dalam orientasi yang berbeda, di mana sumbu tidak cocok, tetapi mereka sedekat mungkin dengan ortogonal yang saya bisa buat. Jadi, misalnya, untuk akselerometer 3-sumbu A & B, + Axe memetakan ke -By (naik-turun), + Az memetakan ke -Bx (kiri-kanan), dan + Ay memetakan ke -Bz (depan-belakang) .
Tujuan awal saya adalah untuk mengkorelasikan peristiwa kejut pada sumbu vertikal, meskipun akhirnya saya ingin a) secara otomatis menemukan pemetaan sumbu, b) mengkorelasikan aktivitas pada ace yang dipetakan, dan c) mengekstrak perbedaan perilaku antara dua akselerometer (seperti memutar atau melenturkan).
Sifat data deret waktu membuat Python numpy.correlate () tidak dapat digunakan. Saya juga sudah melihat paket R's Zoo, tetapi belum membuat kemajuan. Saya telah mencari berbagai bidang analisis sinyal untuk bantuan, tetapi saya tidak membuat kemajuan.
Adakah yang punya petunjuk tentang apa yang bisa saya lakukan, atau pendekatan yang harus saya teliti?
Pembaruan 28 Feb 2011: Menambahkan beberapa plot di sini yang menunjukkan contoh data.
Jawaban:
Pertanyaannya menyangkut menghitung korelasi antara dua seri waktu sampel tidak teratur (proses stokastik satu dimensi) dan menggunakannya untuk menemukan offset waktu di mana mereka berkorelasi secara maksimal ("perbedaan fase").
Masalah ini biasanya tidak dibahas dalam analisis deret waktu, karena data deret waktu dianggap dikumpulkan secara sistematis (pada interval waktu yang teratur). Ini lebih merupakan provinsi geostatistik , yang menyangkut generalisasi multidimensi dari deret waktu. Dataset geostatistik pola dasar terdiri dari pengukuran sampel geologi di lokasi yang tidak beraturan.
Dengan dua juta poin Anda harus dapat mendeteksi penyimpangan kecil dari stasioneritas. Mungkin saja perbedaan fase antara kedua seri waktu dapat bervariasi dari waktu ke waktu juga. Atasi ini dengan menghitung cross-variogram secara terpisah untuk jendela yang berbeda yang ditempatkan sepanjang periode waktu.
sumber