Bagaimana cara memilih resolusi frekuensi dan ukuran jendela di FFT?

9

Saya melakukan analisis spektrum dari sinyal yang bervariasi waktu dengan frekuensi berubah dari 200Hz ke 10kHz. Saya menggunakan FFT untuk menganalisis komponen frekuensi dalam sinyal. Pertanyaan saya adalah:

  1. Bagaimana cara menentukan resolusi frekuensi dan lebar jendela untuk sinyal?
  2. Jenis fungsi jendela mana yang cocok untuk sinyal yang bervariasi waktu?
  3. Berapa ukuran optimal untuk FFT?

Laju pengambilan sampel sinyal adalah 44,1 kHz.

nitin
sumber
2
Apa pola perubahan frekuensi? Apakah sinyal tiba-tiba melompat di antara frekuensi yang berbeda, atau perubahan frekuensi kontinu? Jika sinyal melonjak, untuk jangka waktu berapa Anda dapat menganggap sinyal akan tetap pada frekuensi yang sama? Jika perubahan frekuensi kontinu, pola apa yang dimiliki perubahan ini (linier, gaussian, lainnya)?
Vasiliy
Itu tidak melompat itu terus bervariasi sinyal mirip dengan sinyal Kicauan. amplitudo untuk setiap frekuensi dapat berubah secara acak.
nitin
4
Anda mengatakan Anda mengambil FFT untuk menganalisis komponen frekuensi. Ini adalah langkah perantara, dan untuk menjawab pertanyaan Anda secara akurat, kami perlu tahu apa yang ingin Anda capai. Apa yang ingin Anda lakukan dengan informasi itu? Mengapa Anda perlu tahu komponen frekuensinya? Seberapa sering Anda perlu memperbarui informasi ini? Tanpa memberi tahu kami tentang hal ini, Anda satu-satunya yang dapat mengetahui resolusi apa yang dibutuhkan. Bahkan, jika Anda hanya perlu mengetahui jawabannya pada satu atau dua frekuensi, FFT bahkan mungkin bukan cara terbaik untuk melakukannya.
Scott Seidman
@ScottSeidman, Anda membaca pikiranku.
Vasiliy
1
@ trav1s, kita semua mengajar secara berbeda. Jika seorang mahasiswa saya datang kepada saya dengan pertanyaan ini diajukan dengan cara ini, saya akan mencoba untuk memberinya pesan pulang yang sama dengan yang saya terima dengan komentar rinci saya di atas- "Seorang insinyur harus mengerti mengapa dia melakukan sesuatu sebelum memulai ". Ada ribuan sumber daya di mana orang dapat menemukan persamaan yang menggambarkan resolusi frekuensi sebagai fungsi N, dan rasanya seperti penanya memiliki mereka, tetapi pesan itu tidak melekat pada mereka! Semoga desakan itu membuat si penanya sadar bahwa dia sudah memegang jawabannya.
Scott Seidman

Jawaban:

4

Karena Anda bekerja dengan laju sampel tetap, panjang FFT Anda (yang akan membutuhkan jendela Anda pada lebar yang sama) akan meningkatkan resolusi frekuensi Anda. Manfaat memiliki resolusi frekuensi yang lebih baik ada dua: yang jelas adalah bahwa Anda mendapatkan resolusi freqeuecy yang lebih baik, sehingga Anda mungkin dapat membedakan dua sinyal yang frekuensinya sangat dekat. Yang kedua adalah bahwa, dengan resolusi frekuensi yang lebih tinggi, lantai kebisingan FFT Anda akan lebih rendah. Kebisingan dalam sistem Anda memiliki daya tetap, tidak terkait dengan jumlah titik FFT Anda, dan daya itu didistribusikan secara merata (jika kita berbicara white noise) ke semua komponen frekuensi Anda. Dengan demikian, memiliki lebih banyak komponen frekuensi berarti kontribusi kebisingan individual dari nampan frekuensi Anda akan diturunkan, sementara total kebisingan terintegrasi tetap sama, yang menghasilkan lantai kebisingan yang lebih rendah. Ini akan memungkinkan Anda untuk membedakan rentang dinamis yang lebih tinggi.

Namun, ada kelemahan menggunakan FFT yang lebih panjang. Yang pertama adalah Anda akan membutuhkan lebih banyak kekuatan pemrosesan. FFT adalah algoritma O (NlogN), di mana N adalah jumlah poin. Meskipun mungkin tidak sedramatis DFT naif, peningkatan N akan mulai membuat prosesor Anda berdarah, terutama jika Anda bekerja dalam batas-batas sistem tertanam. Kedua, ketika Anda meningkatkan N, Anda mendapatkan resolusi frekuensi saat Anda kehilangan resolusi waktu. Dengan N yang lebih besar, Anda perlu mengambil lebih banyak sampel untuk sampai pada hasil domain frekuensi Anda, yang berarti Anda perlu mengambil sampel untuk waktu yang lebih lama. Anda akan dapat mendeteksi rentang dinamis yang lebih tinggi dan resolusi frekuensi yang lebih baik, tetapi jika Anda mencari taji, Anda akan memiliki gagasan yang kurang jelas tentang KAPAN taji yang terjadi persis.

Jenis jendela yang harus Anda gunakan adalah subjek lain, yang saya tidak diberi informasi untuk memberi Anda jawaban yang lebih baik. Namun, windows yang berbeda memiliki karakteristik output yang berbeda, yang sebagian besar (jika tidak semua) adalah postingan reversibel yang memproses hasil FFT. Beberapa jendela mungkin membuat komponen frekuensi Anda berdarah ke bins samping (jika saya tidak salah, jendela Hanning membuat komponen Anda muncul di tiga bins.), Yang lain mungkin memberi Anda akurasi frekuensi yang lebih baik sambil memperkenalkan beberapa kesalahan gain pada komponen Anda. Ini sepenuhnya tergantung pada sifat hasil yang Anda coba capai, jadi saya akan melakukan riset (atau beberapa simulasi) untuk sampai pada yang mana yang terbaik untuk aplikasi spesifik Anda.

mematikan
sumber
Perhatikan bahwa meskipun intuitif untuk menjalankan evaluasi FFT pada blok sekuensial, juga dimungkinkan untuk menjalankannya pada blok data input yang tumpang tindih , yaitu, mulailah FFT 1024 poin setiap 256 sampel - memberikan resolusi waktu yang agak lebih baik, meskipun tentu saja pada biaya perhitungan lebih banyak lagi.
Chris Stratton
0

Jadi hal pertama yang pertama, frekuensi sampling harus setidaknya dua kali frekuensi maksimum dari sinyal yang ada (44.1kHz> 2x10kHz). Selanjutnya jika panjang jendela dalam domain waktu adalah T, resolusi frekuensi dengan FFT tepat 1 / T. Resolusi dalam domain frekuensi menggunakan FFT tidak ada hubungannya dengan frekuensi sampling dalam domain waktu. Tetapi seperti yang ditunjukkan dalam jawaban sebelumnya, jendela domain waktu tidak boleh terlalu besar karena Anda akan kehilangan informasi tentang sinyal palsu yang muncul hanya sesaat. Jadi harus ada kompromi antara resolusi frekuensi dan mendeteksi sinyal palsu. Terakhir FFT bukan satu-satunya algoritma untuk mengambil sinyal dari domain waktu ke domain frekuensi. Jika Anda mencari resolusi tinggi di domain frekuensi dengan jumlah sampel terbatas dalam domain waktu, Anda dapat menggunakan teknik estimasi spektral resolusi tinggi seperti MUSIC dan ESPIRIT. Ini juga digunakan untuk estimasi arah kedatangan (DOA) yang sangat mirip dengan masalah estimasi spektral.

Yasir Ahmed
sumber
um no ... baca kembali nyquist. Jika Anda ingin merekonstruksi frekuensi dengan andal, Anda perlu 5-10x. Demikian juga jendela yang lebih luas memungkinkan rekonstruksi frekuensi bunga terendah masuk ke sub harmonik. Sinyal palsu tidak akan andal terlihat dalam FFT karena pulsa dirac mungkin memiliki konten frekuensi tinggi. Tugasnya adalah "acak" hanya komponen yang dapat dipercaya / periodik yang akan ditampilkan dengan amplitudo signifikan
JonRB
rentang frekuensi dari sinyal yang menarik adalah dari 200Hz ke 10kHz ... sehingga frekuensi pengambilan sampel setidaknya 4,41 kali frekuensi sinyal ... jika kita melihat pada ujung bawah spektrum frekuensi sampling adalah 220,5 kali ... kita mungkin perlu tahu bagaimana frekuensi didistribusikan secara statistik ... toh saya pikir frekuensi sampling tidak menjadi masalah di sini!
Yasir Ahmed