Salah satu cara standar untuk menerapkan filter Butterworth adalah dengan riam bagian orde dua, masing-masing sesuai dengan sepasang kutub konjugat kompleks. Untuk filter urutan keempat, misalnya, akan ada dua bagian urutan kedua. Jika kita mempertimbangkan bagaimana lokasi kutub untuk perubahan lowpass filter pada bidang-z saat cutoff dirancang untuk mendekati 0 hz ke dekat Nyquist, jalur "tersapu" oleh masing-masing pasangan kutub sesuai dengan sepasang busur di dalam lingkaran unit , seperti yang diilustrasikan oleh gambar berikut [untuk filter urutan keempat]:
Mengingat berapa lama filter ini telah ada, dan mengingat fakta bahwa "busur" ini sesuai dengan garis lurus di s-plane, masuk akal bahwa seseorang akan mengembangkan formulir implementasi dengan parameter tunggal yang dapat menyapu kutub sepanjang busur pada "run time" [sebagai lawan dari "waktu desain"]. Namun, saya belum menemukan hal seperti itu.
Ini relatif mudah untuk datang dengan berbagai cara untuk melakukan ini, terutama dalam segmen jangkauan, dan dengan kemauan untuk memberikan sedikit perhitungan ekstra padanya. Yang saya ingin tahu adalah sebagai berikut:
Apakah ada beberapa cara standar untuk menerapkan filter Butterworth [digital] dari urutan tertentu yang 1) memiliki sifat optimal (misalnya efisiensi, ketahanan), dan 2) mencakup seluruh rentang?
Atau apakah ini benar-benar masalah yang mudah sehingga tidak ada orang yang mau membicarakannya? Jika itu masalahnya, sepertinya itu akan muncul di program desain filter di sebelah opsi untuk desain "statis".
Saya memang menemukan ini: Filter multi-tujuan Butterworth dengan frekuensi cutoff variabel , tetapi pada awalnya Googling tampaknya tidak banyak informasi tentang apa yang ada di dalamnya.
Perbarui (ulang: jawaban)
Agar lebih jelas:
- Saya mencari "meta-desain" dengan parameter (katakanlah dari [0,1]) yang secara otomatis akan menyesuaikan cutoff dari DC ke Nyquist (sambil menjaga gain dinormalisasi) untuk digunakan dalam sistem yang bervariasi waktu. Sesuatu seperti resonator dua kutub ini , kecuali dengan batasan Butterworth. Idenya adalah bahwa menghitung parameter akan lebih efisien daripada melalui prosedur desain offline pada saat runtime.
- Saya bahkan tidak perlu mencari cara mendesain "meta-filter" (yaitu melakukan matematika dengan variabel alih-alih angka), saya bertanya-tanya apakah ada pilihan untuk bentuk implementasi standar [tidak jelas] - karena, katakanlah, pendekatan langsung yang sesuai dengan kasus statis akhirnya memiliki masalah numerik dalam kasus yang bervariasi waktu.
- Mungkin tidak ada masalah, dan pendekatan langsung adalah apa yang digunakan dalam praktik. Itu akan bagus. Kekhawatiran saya adalah bahwa saya belum pernah melihat topik ini disebutkan secara eksplisit di salah satu sumber yang saya konsultasikan, tapi mungkin saya hanya melewatkan sesuatu yang sangat jelas, jadi saya bertanya.
- Dalam proses menambahkan lebih detail di sini, saya menemukan perlakuan umum struktur biquad parametrik, yang hampir seperti yang saya cari (dan memiliki beberapa referensi yang bagus).
Perbarui 2
Saya mencari jawaban seperti yang saya berikan di komentar kedua saya kepada Jason R, sebagai berikut:
"Oh yeah, kamu ingin menggunakan parametrization III-2b dari tesis ini-dan-begitu, dalam bentuk kisi negara yang disadap karena menyelesaikan kasus tepi ini-dan-itu sambil menggunakan jumlah perkalian yang minimal."
Mungkin tidak ada yang seperti itu, tetapi pertanyaan saya adalah apakah itu benar, dan jika demikian, apa itu, atau di mana saya dapat menemukannya?
Jackpot
Berdasarkan referensi ke "bentuk pengamat kanonik" yang diberikan oleh Tim Wescott dalam utas comp.dsp dalam jawaban Jason R , saya memutuskan untuk berasumsi bahwa saya mungkin harus mulai menggali dalam literatur sistem kontrol, jadi saya mencoba melakukan pencarian untuk butterworth "state space" , dan muncul perlakuan desain / implementasi berikut yang sangat keren, tidak hanya parametrik Butterworth, tetapi juga filter Chebyshev dan Elliptic:
Sophocles J. Orfanidis, "Desain Equalizer Parametrik Digital Orde Tinggi," J. Audio Eng. Soc., Vol. 53, hlm. 1026-1046, November 2005.
- Paper: http://www.ece.rutgers.edu/~orfanidi/ece348/hpeq.pdf
- Matlab Toolbox: http://eceweb1.rutgers.edu/~orfanidi/hpeq/
Butuh sedikit waktu untuk menggali, tetapi berdasarkan apa yang telah saya baca sejauh ini, saya akan sangat terkejut jika bukan itu yang saya cari. Saya memberikan yang ini kepada Jason R untuk referensi comp.dsp yang membawa saya ke kertas Orfanidis. Jawabannya juga merupakan gambaran praktis yang bagus untuk mendesain filter Butterworth juga.
Ya ada formulir implementasi standar untuk Butterworth, dan hampir setiap respons filter lainnya. Mereka semua sepenuhnya diterapkan di perpustakaan filter IIR open source saya. Berikut cuplikan kode yang menghasilkan pasangan kutub / nol untuk filter Butterworth dengan derajat acak:
Seperti yang Anda lihat, posisi kutub dihitung dengan membagi kembali bidang s menjadi "pasangan" segmen yang sama.
Kode yang sesuai disediakan untuk semua jenis respons filter yang umum: Chebyshev, Elliptic, Legendre, termasuk masing-masing versi rak.
https://github.com/vinniefalco/DSPFiltersDemo.git
https://github.com/vinniefalco/DSPFilters.git
sumber