@NickS
Karena jauh dari pasti bahwa sinyal kedua dalam plot sebenarnya adalah semata-mata versi tertunda dari yang pertama, metode lain selain klasik korelasi silang harus dicoba. Ini karena korelasi silang (CC) hanyalah penaksir kemungkinan maksimum jika sinyal Anda adalah versi yang tertunda satu sama lain. Dalam hal ini, mereka jelas tidak mengatakan apa-apa tentang ketidakstabilan mereka juga.
Dalam hal ini, saya percaya apa yang mungkin berhasil adalah estimasi waktu dari energi signifikan dari sinyal. Memang, 'signifikan' dapat atau tidak bisa agak subyektif, tetapi saya percaya bahwa dengan melihat sinyal Anda dari sudut pandang statistik, kami akan dapat mengukur 'signifikan' dan pergi dari sana.
Untuk tujuan ini, saya melakukan yang berikut:
LANGKAH 1: Hitung amplop sinyal:
Langkah ini sederhana, karena nilai absolut output Hilbert-Transform dari masing-masing sinyal Anda dihitung. Ada metode lain untuk menghitung amplop, tetapi ini cukup mudah. Metode ini pada dasarnya menghitung bentuk analitik sinyal Anda, dengan kata lain, representasi fasor. Ketika Anda mengambil nilai absolut, Anda menghancurkan fase dan hanya setelah energi.
Selain itu karena kami mengejar estimasi waktu tunda energi sinyal Anda, pendekatan ini diperlukan.
LANGKAH 2: De-noise dengan Filter Medial non-linear yang mempertahankan tepi:
Ini merupakan langkah penting. Tujuannya di sini adalah untuk menghaluskan amplop energi Anda, tetapi tanpa merusak atau menghaluskan tepi dan waktu kenaikan cepat Anda. Sebenarnya ada seluruh bidang yang dikhususkan untuk ini, tetapi untuk tujuan kita di sini, kita cukup menggunakan filter Medial non-linear yang mudah diterapkan . (Penyaringan Median). Ini adalah teknik yang ampuh karena tidak seperti pemfilteran rata-rata , pemfilteran medial tidak akan menghilangkan tepi Anda, tetapi pada saat yang sama 'menghaluskan' sinyal Anda tanpa degradasi signifikan pada tepi-tepi penting, karena pada waktu tidak ada aritmatika yang dilakukan pada sinyal Anda (asalkan panjang jendela aneh). Untuk kasus kami di sini, saya memilih filter medial ukuran jendela 25 sampel:
LANGKAH 3: Hapus Waktu: Bangun Fungsi Estimasi Kerapatan Kernel Gaussian:
Apa yang akan terjadi jika Anda melihat plot di atas daripada cara yang biasa? Secara matematis, itu berarti, apa yang akan Anda dapatkan jika Anda memproyeksikan setiap sampel sinyal denoised kami ke sumbu y-amplitudo? Dalam melakukan ini, kami akan mengatur untuk menghilangkan waktu untuk berbicara, dan dapat mempelajari statistik sinyal semata-mata.
Secara intuitif apa yang muncul dari gambar di atas? Walaupun energi kebisingan rendah, ia memiliki keuntungan karena lebih 'populer'. Sebaliknya, sementara amplop sinyal yang memiliki energi lebih energik daripada noise, itu terfragmentasi melintasi ambang batas. Bagaimana jika kita menganggap 'popularitas' sebagai ukuran energi? Inilah yang akan kita lakukan dengan implementasi (Kasar saya) dari Fungsi Kernel Density , (KDE), dengan Kernel Gaussian.
Untuk melakukan ini, setiap sampel diambil dan fungsi gaussian dibangun menggunakan nilainya sebagai rata-rata, dan bandwidth yang ditetapkan sebelumnya (varians) dipilih a-priori. Mengatur varian gaussian Anda adalah parameter penting, tetapi Anda dapat mengaturnya berdasarkan statistik kebisingan berdasarkan aplikasi Anda dan sinyal khas. (Saya hanya ingin mengaktifkan 2 file Anda). Jika kita membangun Estimasi KDE, kita mendapatkan plot berikut:
Anda dapat menganggap KDE sebagai bentuk histogram terus-menerus sehingga bisa dikatakan, dan varians sebagai lebar bin Anda. Namun memiliki keuntungan menjamin kelancaran PDF sehingga kita dapat melakukan kalkulus derivitave pertama dan kedua. Sekarang kita memiliki Gaussian KDE, kita dapat melihat di mana sampel suara memuncak dalam popularitas. Ingatlah bahwa sumbu x di sini mewakili proyeksi data kami ke ruang amplitudo. Dengan demikian, kita dapat melihat ambang mana kebisingan yang paling 'energik' dalam, dan mereka memberitahu kita ambang yang harus dihindari.
Dalam plot kedua, turunan pertama dari KDE Gaussian diambil, dan kami mengambil absis dari sampel pertama setelah turunan pertama setelah puncak campuran Gaussians untuk mencapai nilai tertentu mendekati nol. (Atau zero-crossing pertama). Kita dapat menggunakan metode ini dan menjadi 'aman' karena KDE kami dibuat dari Gaussians dengan bandwidth yang masuk akal, dan turunan pertama dari fungsi halus dan tanpa noise ini diambil. (Biasanya turunan pertama bisa bermasalah dalam apa pun kecuali sinyal SNR tinggi karena mereka memperbesar kebisingan).
Garis hitam menunjukkan kemudian pada ambang berapa kita akan bijaksana untuk 'segmen' gambar di, sehingga kita menghindari seluruh lantai kebisingan. Jika kemudian kita menerapkan sinyal asli kita, kita mendapatkan plot berikut, dengan garis hitam menunjukkan awal energi sinyal kita:
Ini dengan demikian menghasilkan sampel.δt=241
Saya harap ini membantu.