Apakah ukuran korelasi berbasis wavelet bernilai overhead komputasi tambahan?

9

Saya telah menggunakan korelasi dan koherensi sebagai ukuran korelasi antara sinyal. Saya berpikir bahwa pendekatan frekuensi waktu akan memberi saya yang terbaik dari dunia ini.

Pertanyaan saya adalah apakah data tambahan ini cukup menambah gambaran keseluruhan sinyal untuk membenarkan peningkatan biaya komputasi yang terkait dengan melakukan transformasi wavelet sebagai bagian dari perhitungan?

Referensi: makalah ArXiv : "Teknik korelasi silang dalam domain wavelet untuk mendeteksi gelombang gravitasi stokastik" oleh S.Klimenko, G.Mitselmakher, A.Sazonov

jonsca
sumber
Berapa banyak biaya komputasi tambahan? Bisakah Anda membuatnya lebih cepat dengan FFT atau FWT?
endolith
@ endolith Dengan asumsi saya sudah memasukkan algoritma tersebut, saya pikir.
jonsca
1
Nah, koherensi dan korelasi keduanya bisa menggunakan FFT, yaitu O (N log N), sedangkan FWT adalah O (N), jadi metode wavelet sebenarnya mungkin lebih cepat ? Saya tidak memiliki pemahaman yang jelas tentang ini, meskipun, meskipun bertanya dua kali: math.stackexchange.com/questions/28581/… stackoverflow.com/questions/1787536/…
endolith
1
Bagaimanapun, Anda harus menggunakan mana yang paling sesuai dengan apa yang Anda coba lakukan. Ini seperti bertanya, "Mana yang lebih baik? Obeng atau palu?"
endolith
1
@jonsca Intuisi Anda sebenarnya benar. Rupanya perubahan DWT adalah varian waktu, dan properti ini dapat menyebabkan beberapa eksploitasi. Saya sebenarnya melakukan hal yang sama persis untuk proyek yang sedang saya kerjakan. Tujuannya adalah untuk memperkirakan TDOA (Waktu Tunda Kedatangan) antara dua sinyal, jadi pertama-tama saya mengubahnya menggunakan DWT (tulisan tangan), dan kemudian saya berkorelasi silang. Ini adalah tautan ke sebuah makalah yang bisa Anda baca dari dropbox publik saya. ( dl.dropbox.com/u/4724281/waveletBasedTDOA.pdf )
Spacey

Jawaban:

5

Pertama, Anda harus menggunakan alat apa pun yang sesuai untuk pekerjaan itu. Korelasi vs koherensi vs korelasi berbasis wavelet adalah semua hal yang berbeda, jadi pertanyaan ini seperti bertanya "Mana yang lebih baik? Obeng atau palu?" Itu tergantung pada apa yang Anda coba lakukan, dan apakah Anda peduli tentang kesamaan dalam waktu, spektrum frekuensi, atau keduanya.

HAI(ncatatann) HAI(n)

Secara empiris , menghasilkan n output dari n input nyata, transformasi wavelet multi-level di PyWavelets menjadi lebih cepat daripada FFT NumPy ketika n lebih besar dari sekitar 4096.

masukkan deskripsi gambar di sini

Namun

  1. Ini Python, dan kedua implementasi bisa sangat berbeda efisien. Saya bahkan tidak tahu apakah wavedec()akan dianggap sebagai Fast Wavelet Transform. Mereka menggunakan DWT singkatan dalam dokumentasi mereka. Apakah Haar DWT dan FWT hal yang sama?
  2. Waktu bervariasi tergantung pada wavelet yang digunakan. Meyer wavelet membutuhkan waktu 6 kali selama Daubechies untuk menghasilkan jumlah data yang sama.
  3. Saya masih tidak mengerti bagaimana FWT memasang bidang frekuensi-waktu , atau jika menghasilkan n output cukup untuk mendapatkan jenis kesamaan pengukuran yang sama dengan korelasi silang n- titik melingkar menggunakan FFT. (Secara teknis ini adalah pesawat skala waktu, bukan frekuensi waktu, tapi saya pikir mereka sama untuk wavelet Morlet yang kompleks ?) FWT adalah "sampling kritis" dari pesawat, dan menghasilkan jumlah data yang sama dengan FFT, jadi sepertinya adil untuk membandingkannya.

Poin utama adalah bahwa waktu komputasi setidaknya secara kasar serupa untuk keduanya, jadi saya tidak berpikir Anda harus khawatir tentang hal itu ketika memutuskan mana yang akan digunakan.

endolit
sumber
3

Ini sangat terlambat, tapi mungkin itu layak dilakukan ...

x(t)x(Δs(t-Δt))ΔsΔtx(t)x(t-Δt)esayaΔωtΔωx(t)

HAI(N)

Jadi menggunakan DWT untuk memeriksa skala waktu pesawat tidak akan membuat Anda terlalu jauh. Ini terutama benar karena skala "dikunjungi" oleh DWT dipisahkan oleh faktor dua, dan jauh lebih padat daripada cakupan yang bisa Anda dapatkan di pesawat frekuensi-waktu dengan FFT. Anda perlu menggunakan transformasi wavelet yang terjemahan-invarian, kadang-kadang disebut transformasi wavelet undecimated , di antara banyak nama lain. Meski begitu, Anda masih memiliki sparsity dari sampel skala yang dihitung untuk bersaing.

Selain itu, sering diinginkan untuk memikirkan lokasi dalam bidang skala waktu sebagai memiliki kepadatan energi. Pendekatan ini difasilitasi dengan menggunakan wavelet analitik, seperti wavelet Morlet kompleks yang disebutkan sebelumnya. Salah satu metode yang menyeimbangkan terjemahan-invarian dan analitik dengan waktu komputasi adalah transformasi wavelet dual-tree yang kompleks . Melakukan hal yang sama di bidang frekuensi waktu mungkin lebih sederhana: lakukan perkiraan Hilbert transform pada sinyal Anda terlebih dahulu dengan melakukan FFT, menghilangkan semua frekuensi negatif, diikuti oleh IFFT.

Jika intuisi yang korelasi mencari kesamaan dalam waktu dan koherensi mencari kesamaan dalam frekuensi adalah benar, maka Anda mungkin lebih baik tetap berpegang pada bidang frekuensi-waktu. Ini tentu lebih mudah untuk dihitung, dan mudah untuk memperbaiki pengambilan sampel di sepanjang sumbu frekuensi. Tidak ada satu pun pendekatan yang disebutkan di atas yang mengambil sampel sumbu skala dengan lebih padat. Untuk melakukan itu, Anda cukup banyak harus pergi ke transformasi wavelet terus menerus , meskipun mungkin ada hal lain di luar sana yang saya tidak sadari. Jika Anda memiliki Matlab, ikuti tautan di atas dan miliki di sana.

Harga Rodney
sumber