English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

tamu
1 / ?
kembali ke pelajaran

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.

Fenomena Gibbs & Fungsi Jendela

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).

Untuk filter lolos-rendah dengan cutoff f_c = 1/4, hitung koefisien Fourier c_k untuk k = 0, 1, 2, dan −1. Gunakan c_0 = 2f_c dan c_k = sin(2πf_c·k)/(πk) untuk k ≠ 0. Tunjukkan komputasi untuk masing-masing. Kemudian jelaskan mengapa urutan koefisien simetris: c_k = c_{−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.

Spesifikasi filter memerlukan: ripple pita lolos ≤ 0.01 (δ = 0.01) dan lebar pita transisi ΔF = 0.05 (ternormalisasi). Filter kedua memerlukan: ripple pita lolos ≤ 0.001 (δ = 0.001) dan ΔF = 0.05 yang sama. Filter mana yang memerlukan lebih banyak koefisien N? Jelaskan hubungan antara toleransi ripple δ dan orde filter N dalam desain deret Fourier.

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.

Filter lolos-rendah memerlukan δ = 0.01 (ripple 1%) dan ΔF = 0.1 (lebar transisi 10% dari laju sampling). Menggunakan formula Kaiser: A = −20·log₁₀(0.01) = 40 dB. Karena 21 ≤ 40 ≤ 50, gunakan α = 0.5842·(A−21)^{0.4} + 0.07886·(A−21). Hitung α. Kemudian gunakan N = (A−8)/(2.285·2πΔF) untuk menghitung jumlah koefisien filter yang diperlukan. Bulatkan N ke atas ke bilangan bulat terdekat.