Dari Respons Ideal ke Filter Praktis
Hamming menyajikan metode desain empat langkah untuk filter FIR menggunakan deret Fourier.
Langkah 1: Tentukan Respons Ideal
Definisikan H_ideal(f): respons frekuensi eksak yang Anda inginkan. Untuk filter lolos-rendah: H = 1 untuk f < f_c, H = 0 untuk f > f_c. Ini adalah fungsi tangga dalam domain frekuensi.
Langkah 2: Hitung Koefisien Fourier
Perluas H_ideal(f) sebagai deret Fourier dalam variabel frekuensi. Koefisien c_k adalah nilai respons impuls ideal filter:
c_k = ∫₀¹ H_ideal(f) · e^{i2πfk} df
Untuk filter lolos-rendah dengan cutoff f_c: c_k = sin(2πf_c·k) / (πk) untuk k ≠ 0, c_0 = 2f_c.
Respons impuls ini tak hingga — fungsi sinc meluas selamanya dalam waktu. Filter praktis memerlukan jumlah koefisien yang terbatas.
Langkah 3: Potong ke 2N+1 Suku
Simpan hanya koefisien c_k untuk |k| ≤ N. Jendela persegi panjang dari 2N+1 suku adalah truncation paling sederhana. Ini menghasilkan fenomena Gibbs: ≈9% overshoot di dekat cutoff.
Langkah 4: Terapkan Jendela
Kalikan koefisien yang dipotong dengan fungsi jendela w_k untuk mengurangi overshoot Gibbs:
c̃_k = c_k · w_k
Koefisien yang dijendela c̃_k mendefinisikan filter praktis.
Menghitung Koefisien Fourier
Formula koefisien Fourier c_k = sin(2πf_c·k) / (πk) untuk filter lolos-rendah dengan cutoff f_c memberikan respons impuls.
Untuk filter lolos-pita dengan cutoff bawah f_l dan cutoff atas f_u, koefisien Fourier untuk respons ideal adalah: c_k = [sin(2πf_u·k) − sin(2πf_l·k)] / (πk).
Bagaimana Jendela Mengurangi Overshoot Gibbs
Fungsi jendela w_k meruncing urutan koefisien yang dipotong dari nilai pusatnya turun ke nol di tepi. Runyam menghilangkan tepi tajam yang diperkenalkan oleh truncation persegi panjang.
Mengapa Tapering Bekerja
Overshoot Gibbs timbul karena transformasi Fourier dari jendela persegi panjang (fungsi sinc) memiliki sidelobe besar. Sidelobe ini bertambah bersama di dekat diskontinuitas untuk menghasilkan overshoot ≈9%.
Jendela halus memiliki transformasi Fourier dengan sidelobe lebih kecil. Mengalikan koefisien dengan jendela melakukan konvolusi respons frekuensi ideal dengan transformasi Fourier jendela. Sidelobe lebih kecil → ripple lebih sedikit.
Jendela Umum
Persegi panjang (tanpa jendela): sidelobe ≈ −13 dB, Gibbs ≈ 9%.
Hann (von Hann): w_k = 0.5 + 0.5·cos(πk/N). Sidelobe ≈ −31 dB.
Hamming: w_k = 0.54 + 0.46·cos(πk/N). Sidelobe ≈ −41 dB, sidelobe pertama ≈ −43 dB. Gibbs < 0.2%.
Kaiser: w_k = I₀(α·√(1−(k/N)²)) / I₀(α). Dapat disesuaikan: α mengontrol level sidelobe, memungkinkan desain untuk trade-off tinggi sidelobe vs lebar pita transisi.
Trade-Off Jendela
Setiap jendela memaksakan trade-off: menekan sidelobe selalu memperlebar lobus utama.
Lobus utama yang lebih lebar berarti pita transisi yang lebih lebar — jangkauan frekuensi antara pita lolos & pita henti.
Hamming memformalkan ini dalam parameter desain Kaiser:
- δ: ripple yang diizinkan (toleransi vertikal dari ideal — seberapa banyak respons dapat menyimpang dari 0 atau 1)
- ΔF: lebar transisi (toleransi horizontal — seberapa sempit transisi dari lolos ke henti)
Metode Kaiser menemukan N (jumlah koefisien) dan α (parameter bentuk jendela) hanya dari δ dan ΔF. Tanpa menebak jenis jendela.
Dari Spesifikasi ke Koefisien
Metode Kaiser mengambil dua spesifikasi — δ (toleransi ripple) dan ΔF (lebar transisi) — dan menghasilkan N dan koefisien jendela tanpa coba-coba.
Urutan Desain
1. Hitung A = −20·log₁₀(δ) (pelemahan dalam dB)
2. Hitung parameter bentuk α:
- Jika A > 50: α = 0.1102·(A − 8.7)
- Jika 21 ≤ A ≤ 50: α = 0.5842·(A − 21)^{0.4} + 0.07886·(A − 21)
- Jika A < 21: α = 0 (jendela persegi panjang)
3. Hitung N = (A − 8) / (2.285 · 2πΔF)
4. Hitung bobot jendela Kaiser: w_k = I₀(α·√(1−(k/N)²)) / I₀(α)
5. Kalikan koefisien Fourier ideal dengan bobot jendela
6. Evaluasi fungsi transfer yang dihasilkan dan periksa ripple terhadap δ. Jika ripple melebihi δ (gangguan tepi), ulangi dengan toleransi lebih kecil.
Hamming mencatat: Kaiser sampai pada eksponen 0.4 dengan mencoba 0.5 (terlalu besar) dan menemukan 0.4 cocok dengan baik. Komputer berfungsi sebagai alat eksperimental untuk penelitian teoritis.
Menerapkan Metode Kaiser
Fungsi Bessel I₀(x) muncul dalam formula jendela Kaiser. Ini dihitung sebagai deret konvergen cepat:
I₀(x) = Σ_{m=0}^∞ [(x/2)^m / m!]²
Untuk x kecil deret konvergen dalam beberapa suku karena m!² dalam penyebut.