Saya punya banyak sinyal EEG dan saya ingin menganalisisnya menggunakan metode linear seperti STFT (Short Time Fourier Transform). Di STFT, Bagaimana saya bisa mengoptimalkan panjang jendela analisis, untuk mencerminkan spektrum frekuensi setiap jendela analisis dengan cara yang benar?
fourier-transform
stft
Maen
sumber
sumber
Jawaban:
Ini adalah "prinsip ketidakpastian" klasik dari Fourier Transform. Anda dapat memiliki resolusi tinggi dalam waktu atau frekuensi tinggi tetapi tidak keduanya sekaligus. Panjang jendela memungkinkan Anda untuk menukar keduanya.
Jika Anda ingin mendeteksi "peristiwa" dalam sinyal EEG Anda dengan resolusi katakanlah 10 ms, maka ini harus menjadi panjang jendela Anda. Ini akan memberi Anda resolusi frekuensi sekitar 100 Hz.
sumber
Panjang jendela optimal akan tergantung pada aplikasi Anda. Jika aplikasi Anda sedemikian rupa sehingga Anda memerlukan informasi domain waktu agar lebih akurat, kurangi ukuran jendela Anda. Jika aplikasi menuntut informasi domain frekuensi lebih spesifik, maka tambah ukuran windows. Seperti yang disebutkan Hilmar, yang
Uncertainty Principle
benar - benar membuat Anda tidak punya pilihan lain. Anda tidak bisa mendapatkan resolusi sempurna di kedua domain sekaligus. Anda bisa mendapatkan resolusi sempurna hanya dalam satu domain dengan biaya resolusi nol di domain lain (waktu dan frekuensi) atau di antara resolusi, tetapi di kedua domain.Saya tidak tahu apakah ini menjawab pertanyaan Anda karena Anda bertanya secara khusus tentang STFT. Anda dapat mencoba menggunakan
wavelet transforms
untuk mendapatkan informasi dalam sinyal.Wavelet transforms
akan memberi Anda resolusi pada rentang yang jauh lebih besar dengan menganalisis sinyal pada resolusi banyak jendela.sumber
Saya tidak tahu EEG tetapi masalah dasar (mungkin saya harus mengatakan mendasar) ketika menggunakan STFT adalah memilih panjang jendela yang tepat. Jika EEG Anda periodik dan Anda ingin menyelesaikan dasar dan harmonik Anda harus menggunakan jendela 'panjang'. Jika Anda ingin mendeteksi timbulnya atau adanya suatu peristiwa atau Anda lebih tertarik pada amplop spektrum Anda dapat menggunakan jendela 'pendek'.
sumber
Saya telah menghabiskan banyak waktu mengoptimalkan jendela dalam analisis frekuensi waktu atau bank filter . Orang dapat mengoptimalkannya untuk deteksi, denoising, pemisahan sinyal ... Sangat tergantung pada aplikasi. Karena analisis frekuensi waktu umumnya berlebihan, analisis optimal atau sintesis windows adalah tugas yang berbeda. Dan panjang hanya satu parameter dalam desain jendela.
Masalahnya bahkan lebih kompleks karena formulasi optimalitas yang didiskritisasi jauh lebih rumit daripada kasus domain waktu kontinu (lihat misalnya Transformasi Gabor terkonsentrasi secara optimal untuk komponen frekuensi waktu lokal ).
Jadi aturan praktis praktis saya saat ini adalah: mulai dengan bentuk dan panjang jendela yang tampaknya ok. Kemudian ulangi analisis dengan dua jendela dengan panjang dua kali setengah, dan gabungkan hasilnya.
sumber
Biasanya ukuran jendela yang lebar memberikan resolusi frekuensi yang lebih baik tetapi resolusi waktu yang buruk dan sebaliknya. Lihatlah contoh ini di mana saya menghasilkan spektrogram gelombang sinus dengan 5kHz dan laju sampel 22050Hz, dari kode C ++ saya.
Spektogram di atas memiliki ukuran jendela 2048 sampel dan tumpang tindih 1024 sampel.
Lihatlah spektogram ini:
Yang ini memiliki ukuran jendela 512 sampel dan tumpang tindih 256 sampel.
Bisakah Anda melihat perbedaannya? Yang pertama memiliki resolusi frekuensi yang lebih baik daripada yang kedua. Tetapi yang kedua memiliki resolusi waktu yang lebih baik bila dibandingkan dengan yang pertama. Jadi, memilih ukuran jendela tergantung pada aplikasi Anda. Jika Anda berurusan dengan sampel ucapan untuk melacak nada, memilih ukuran jendela yang lebih besar harus sesuai.
sumber