Saya setuju bahwa metode desain windowing filter bukan salah satu metode desain yang paling penting lagi, dan mungkin memang itu yang terwakili dalam buku teks tradisional, mungkin karena alasan historis.
Namun, saya pikir penggunaannya dapat dibenarkan dalam situasi tertentu. Saya tidak setuju bahwa kompleksitas komputasi tidak ada masalah lagi. Ini tergantung pada platform. Duduk di komputer desktop dan mendesain filter, kita memang tidak perlu khawatir tentang kerumitan. Namun, pada platform tertentu dan dalam situasi di mana desain perlu dilakukan secara quasi-realtime, kompleksitas komputasi adalah masalah, dan teknik desain suboptimal sederhana akan lebih disukai daripada teknik optimal yang jauh lebih kompleks. Sebagai contoh, saya pernah bekerja pada sistem untuk beamforming di mana filter (beamformer) perlu dirancang ulang dengan cepat, dan kompleksitas komputasi memang menjadi masalah.
Saya juga yakin bahwa dalam banyak situasi praktis kita tidak perlu khawatir tentang perbedaan antara desain optimal dan suboptimal. Ini menjadi lebih benar jika kita perlu menggunakan aritmatika titik tetap dengan koefisien terkuantisasi dan hasil operasi aritmatika terkuantisasi.
Masalah lainnya adalah stabilitas numerik dari metode desain filter yang optimal dan implementasinya. Saya telah menemukan beberapa kasus di mana algoritma Parks-McClellan (saya harus mengatakan, implementasi yang saya gunakan) tidak bertemu. Ini akan terjadi jika spesifikasi tidak masuk akal, tetapi juga bisa terjadi dengan spesifikasi yang sepenuhnya masuk akal. Hal yang sama berlaku untuk metode desain kuadrat terkecil di mana sistem persamaan linear perlu dipecahkan, yang dapat menjadi masalah yang tidak terkondisikan. Dalam keadaan ini, metode windowing tidak akan pernah mengecewakan Anda.
Sebuah komentar tentang perbandingan Anda antara metode jendela dan desain kuadrat terkecil: Saya tidak berpikir bahwa perbandingan ini menunjukkan keunggulan umum dari metode kuadrat terkecil dibandingkan metode windowing. Pertama, Anda tampaknya melihat atenuasi stop band, yang bukan merupakan tujuan desain untuk kedua metode ini. Metode windowing tidak optimal dalam arti apa pun, dan desain kuadrat terkecil meminimalkan energi stop band, dan sama sekali tidak peduli tentang ukuran riak stop band. Apa yang dapat dilihat adalah bahwa tepi pita pass dari desain jendela lebih besar dari pada salah satu dari desain kuadrat terkecil, sedangkan tepi stop band lebih kecil. Akibatnya, lebar pita transisi filter yang dirancang oleh windowing lebih kecil yang akan menghasilkan riak pita stop yang lebih tinggi. Perbedaan lebar pita transisi mungkin kecil, tetapi properti filter sangat sensitif terhadap parameter ini. Tidak ada keraguan bahwa filter kuadrat terkecil mengungguli filter lain ketika datang untuk menghentikan energi pita, tetapi itu tidak mudah dilihat sebagai ukuran riak. Dan pertanyaannya tetap jika perbedaan itu benar-benar akan membuat perbedaan dalam aplikasi praktis.
Izinkan saya menunjukkan kepada Anda bahwa perbandingan seperti itu sering kali dapat dibuat untuk terlihat seperti yang orang inginkan. Pada gambar di bawah ini saya membandingkan filter low pass optimal kuadrat terkecil yang dirancang dengan fungsi Matlab / Oktaf firls.m
(biru) dengan filter low pass yang dirancang dengan metode jendela menggunakan jendela Kaiser (merah).
Dari gambar tersebut, orang bahkan dapat menyimpulkan bahwa filter yang dirancang oleh windowing sedikit lebih baik daripada filter optimal kuadrat terkecil. Ini tentu saja tidak masuk akal karena kami bahkan tidak mendefinisikan "lebih baik", dan filter kuadrat terkecil harus memiliki kesalahan perkiraan kuadrat rata-rata yang lebih kecil. Namun, Anda tidak melihatnya secara langsung pada gambar. Bagaimanapun, ini hanya untuk mendukung klaim saya bahwa seseorang harus sangat berhati-hati dan jelas ketika melakukan perbandingan seperti itu.
Singkatnya, selain berguna untuk belajar bagi siswa DSP karena alasan didaktis semata, saya berpikir bahwa terlepas dari kemajuan teknologi sejak tahun 1970-an penggunaan metode windowing dapat dibenarkan dalam skenario praktis tertentu, dan saya tidak berpikir bahwa itu akan segera berubah.
firpm()
danfirls()
.