Apakah sudah biasa mengoreksi untuk mendapatkan jendela?

9

Pertimbangkan bagaimana jendela Hanning didefinisikan:

0.5 - 0.5 * cos(n*2*Pi/(N-1))

Dengan definisi ini, ia memiliki keuntungan 0,5, yang merupakan nilai rata-rata dari koefisien. Sebaliknya, jendela Flattop, sebagaimana didefinisikan, memiliki gain satu, mungkin karena desain.

Tampaknya tepat untuk skala jendela Hanning dengan faktor 2, tetapi saya belum pernah melihat ini dibahas di mana pun. Tampaknya semua jendela harus diskalakan untuk mendapatkan persatuan.

Dalam praktiknya, apakah windows biasanya dikoreksi untuk keuntungannya? Jika tidak, mengapa tidak?

EDIT:

Karena tidak ada yang memberikan jawaban, saya akan menguraikan sedikit.

Sangat mudah untuk menemukan makalah yang melaporkan perolehan jendela yang lebih umum. Tapi saya belum pernah melihat orang merujuk untuk mengoreksi gain sebelum menggunakannya untuk analisis spektral. Mungkin saya selalu melewatkan pernyataan itu, atau semua orang menganggap mendapatkan koreksi menjadi persyaratan yang jelas.

Sepertinya akal sehat untuk mengatur penguatan jendela menjadi satu sehingga tingkat energi sinyal dipertahankan. Lebih jauh lagi, bagaimana seseorang dapat membandingkan berbagai jendela untuk akurasi amplitudo jika satu memiliki gain 0 dB, seperti yang dilakukan flattop, dan yang lainnya memiliki kerugian hampir 10 dB, seperti yang dilakukan Gauss.

Windows juga banyak digunakan untuk desain filter FIR. Dalam aplikasi ini, harus jelas bahwa sinyal yang akan berjendela, sebuah pulsa tulus, memiliki sebagian besar energinya di tengah jendela. Akibatnya, jendela tidak banyak mengurangi energi total pulsa. Jadi, ketika digunakan untuk desain filter, kami tidak ingin gain unity, melainkan unity peak amplitudo, seperti kebanyakan jendela, kecuali flattop. Sesuatu selain dari amplitudo puncak kesatuan akan memengaruhi perolehan filter FIR yang dihasilkan.

user5108_Dan
sumber
1
Itu tergantung pada aplikasi dan bagaimana jendela diterapkan (misalnya melalui perkalian atau konvolusi). Beberapa tipe normalisasi yang umum adalah scaling ke gain DC kesatuan atau ke unit energi.
Jason R
Saya merujuk melamar melalui multiplikasi.
user5108_Dan
2
Karena scalloping, penguatan jendela tidak konstan pada semua frekuensi, tergantung pada jendela. Oleh karena itu penskalaan tergantung pada jenis analisis yang dilakukan.
hotpaw2
Apa yang Anda sebut gain dari jendela ??
Yves Daoust
2
Gain dari jendela, seperti yang saya mengerti, adalah nilai rata-rata dari koefisien (yaitu Jumlah / N). Berikut adalah dua makalah yang menggunakan definisi ini Fred Harris (lihat tabel 1 untuk perbandingan keuntungan jendela) dan Max Planck Inst (lihat definisi dan penggunaan S1). Definisi ini tampaknya cukup jelas jika Anda hanya melihat efek menerapkan jendela ke gelombang sinus murni.
user5108_Dan

Jawaban:

3

Ya, sudah biasa untuk mengoreksi perolehan jendela, kecuali untuk beberapa kasus yang saya rujuk nanti. (Jika Anda hanya tertarik pada amplitudo relatif, tentu saja Anda tidak perlu mengoreksi untuk mendapatkan.)

Karena jendela mengurangi penguatan sinyal asli (domain waktu), amplitudo yang diperoleh melalui FFT perlu diperbaiki. Misalnya, jika Anda menggunakan jendela Hanning, Anda perlu mengalikan semua amplitudo dengan 2 (kebalikan dari 0,5). Seperti yang saya pahami, sebagian besar paket perangkat lunak untuk FFT secara otomatis mengoreksi jendela yang digunakan.

Namun, koreksi semacam itu hanya baik bila semua frekuensi bunga didistribusikan sepanjang jendela domain waktu. Misalnya, Anda memiliki data 1024 dengan semua level sinyal nol kecuali untuk titik # 512 yang memiliki nilai 1 (sinyal impuls). Jelas, setiap jendela tidak melakukan apa pun terhadap data. Jadi, jika Anda memperbaiki amplitudo untuk penguatan jendela (kalikan dengan 2), maka Anda akan berakhir dengan perkiraan amplitudo yang berlebihan. Jika data 1024 Anda semuanya nol kecuali untuk poin pertama dengan nilai 1, maka setiap titik memiliki nilai nol setelah windowing, dan Anda kehilangan sinyal.

Jadi, jika Anda berurusan dengan sinyal acak, dengan semua komponen frekuensi yang diharapkan hampir merata di sepanjang sinyal, Anda perlu (atau harus) mengoreksi perolehan jendela yang Anda gunakan.

J-Matthew
sumber
Terima kasih. Inilah yang saya pikir seharusnya demikian, tetapi tidak pernah melihatnya dinyatakan di mana pun.
user5108_Dan
1

salah satu cara "mengoreksi perolehan jendela" adalah dengan melakukannya dalam definisi jendela. apa artinya ini mengoreksi keuntungan di mana ? di mana frekuensi? di DC? jika Anda mengoreksi penguatan, di DC, dari sebuah jendela, itu berarti bahwa semua koefisien menambah 1.

n=+w[n]=1

atau

+w(t) dt=1
robert bristow-johnson
sumber
Apakah Anda mengatakan bahwa keuntungan jendela adalah fungsi frekuensi? Saya menghitung gain window sebagai jumlah dari koefisien dibagi dengan N, rata-rata. Saya ingin ini menjadi 1, bukan jumlah, seperti yang telah Anda tunjukkan. Jadi faktor koreksi penguatan untuk Hanning adalah 2. Ketika saya menggunakan penguatan jendela dengan fft, saya mendapatkan nilai amplitudo yang benar. Artinya; semua jendela yang saya uji memberikan amplitudo yang sama untuk setiap komponen spektral, dan mereka semua setuju dengan fft yang tidak berjendela. Jika saya menggunakan windows dengan gain yang tidak dikoreksi, semuanya memberikan hasil yang berbeda dan hanya flattop yang memberikan nilai amplitudo yang benar.
user5108_Dan
W(f)=w(t)ej2πftdt
f
W(ejω)=n=w[n]ejωn
ω212
Cara saya melihatnya, gain dari jendela Hann adalah 1/2 di semua frekuensi, bukan hanya DC. Dengan kata lain, setiap komponen spektral dalam fft adalah 6 dB lebih rendah dari yang seharusnya. Ketika saya menggunakan jendela flattop yang memiliki gain satu, setiap komponen spektral berada pada level yang benar. Saya pasti melakukan sesuatu yang sepenuhnya salah.
user5108_Dan
Entah bagaimana Anda melihatnya seperti itu. bagaimana Anda menggunakan jendela Hann Anda? di tempat mana sinyal asli Anda menerapkan jendela dan kemudian apa yang Anda lakukan dengan data berjendela?
robert bristow-johnson
Saya membuat sinyal multi-nada, lalu window seperti ini, di mana N = 1024 sig (n) = 1 + sin (50 * n * 2 * Pi / N) + sin (75 * n * 2 * Pi / N) menang (n) = 0,5 - 0,5 * cos (n * 2 * Pi / (N-1)) windowed_sig (n) = sig (n) * win (n) Kemudian saya mengambil fft dari windowed_sig. Hasilnya terlihat benar. Hanya saja fft dari sinyal berjendela tampak salah. Kesalahannya adalah 6 dB untuk jendela Hann, sekitar 10 dB untuk Gauss, dan 0 dB untuk flattop.
user5108_Dan
0

Setengah faktor menormalkan satuan amplitudo.

Yves Daoust
sumber
Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka.
jojek
@ jojek: tidak perlu penjelasan lebih lama, ini pertanyaan mendasar.
Yves Daoust
Saya setuju dengan Yves di sini: pertanyaannya tampak sederhana. Dan jawaban ini tentu menunjukkan kekeliruan pernyataan si penanya By this definition, it has a gain of 0.5.
Peter K.
@ PeterK .: terima kasih atas dukungannya. Lagi pula, saya salah menjawab pertanyaan yang tidak berarti: "perolehan" jendela tidak ditentukan.
Yves Daoust
1
@ PeterK .: terima kasih, saya akan melakukannya sendiri, tergantung pada apa OP menjawab permintaan saya untuk klarifikasi.
Yves Daoust