Seberapa kritis pemilihan fungsi jendela dalam STFT?

8

Saya memiliki sejumlah sinyal periodik yang saya coba uraikan dengan menggunakan analisis frekuensi waktu. Saya mendapatkan hasil yang sangat berbeda tergantung pada panjang dan bentuk jendela. Ini adalah masalah karena saya ingin mengembangkan algoritma otomatis, dan semoga sekuensial untuk melakukan pekerjaan.

Emre
sumber
2
Terkait: dsp.stackexchange.com/q/208/77 (Saya bahkan akan mengatakan itu adalah penipuan)
Lorem Ipsum
Tidak melihat pertanyaan itu. Saya akan mengarahkan Anda ke jawaban yoda di sana untuk detail tambahan yang bagus yang melengkapi jawaban saya di bawah ini.
Jason R
1
Manakah dari hasil yang sangat berbeda menurut Anda yang benar dan mengapa?
hotpaw2

Jawaban:

4

Fungsi jendela memiliki tradeoff yang melekat antara dua properti frekuensi-domain mereka:

  • Lebar lobus utama: Fungsi jendela yang meruncing akan menyebabkan "corengan" di domain frekuensi. Ini divisualisasikan oleh lebar lobus tengah dalam respons frekuensi fungsi jendela. Semakin lebar lobus utama, semakin sulit untuk menyelesaikan dua nada yang frekuensinya dekat (jika mereka lebih dekat satu sama lain daripada lebar lobus utama, mereka akan cenderung tercoreng bersama). Jadi idealnya, Anda ingin memiliki fungsi jendela yang memiliki lobus utama yang sangat sempit.

  • Ketinggian sidelobe maksimum: Banyak fungsi jendela memiliki respons frekuensi yang terdiri dari satu lobus utama yang dikelilingi oleh sidelob berulang yang meluruh pada kecepatan spesifik jendela. Ketinggian sidelob ini dapat membuat sulit untuk menyelesaikan dua nada yang dipisahkan dalam frekuensi, tetapi sangat berbeda dalam amplitudo. Jadi idealnya, Anda ingin memiliki fungsi jendela yang memiliki sidelob yang sangat rendah.

Masalahnya: jika Anda mengurangi lebar lobus utama dari fungsi jendela, sidelob akan tumbuh, dan sebaliknya. Jadi, Anda perlu menemukan keseimbangan khusus aplikasi saat memilih jendela, berdasarkan jarak dalam frekuensi dan amplitudo yang Anda harapkan di antara sinyal yang Anda minati. Mengingat parameter spesifik sistem Anda, dimungkinkan untuk memilih jendela yang (semoga) memenuhi persyaratan Anda.

Sejauh memilih panjang jendela Anda (yang setara dengan memilih panjang DFT), sebaiknya Anda melakukan pengamatan selama mungkin dalam batasan yang mungkin diterapkan aplikasi Anda (mis. Persyaratan latensi, berapa lama sinyal yang menarik dapat dianggap stasioner, sumber daya komputasi, dll.). Kemampuan Anda untuk menyelesaikan dalam frekuensi berbanding lurus dengan panjang pengamatan (diukur dalam waktu, tidak harus berdasarkan pada panjang FFT, yang dapat menjadi nol-empuk tanpa peningkatan dalam resolusi frekuensi).

Jason R
sumber
1

Panjang jendela harus tergantung pada variasi frekuensi sinyal Anda. Anda harus menyesuaikan jendela yang cukup pendek untuk kira-kira menangkap spektrum konstan sinyal Anda di jendela itu.

Jika Anda ingin tahu sampai sejauh mana sinyal Anda mirip dengan bentuk, Anda harus menggunakan Wavelet Transform ( CWT ).

Luis Andrés García
sumber
1

Untuk apa nilainya, dari sudut pandang praktis, saya menemukan bahwa windows Kaiser cukup berguna. Ada satu parameter yang memungkinkan Anda untuk memanggil di lebar lobus utama vs atenuasi lobus samping dan dalam hal sebagian besar metrik, jendela Kaiser yang di-tweak dengan baik sama baiknya atau lebih baik daripada sepupunya.

Sebagai aturan praktis (sangat tidak ilmiah), Anda dapat menentukan parameter "beta" sebagai 0,133 kali pelemahan lobus samping yang diinginkan dalam dB. Ini dapat digunakan untuk mendapatkan titik awal yang cepat dan mengubah dari sana.

Hilmar
sumber