Filter IIR apa artinya tak terbatas?

11

Saya mengalami kesulitan memahami apa artinya "tak terbatas" dalam IIR dalam praktiknya. Secara teori, respons impuls digunakan untuk umpan balik .. Jika umpan balik ini tidak pernah berakhir bagaimana output dihasilkan?

GorillaApe
sumber

Jawaban:

18

Untuk menjawab pertanyaan itu, Anda harus tahu apa yang dimaksud "Impuls" dan "Respons" ...

"Impuls" adalah denyut nadi sederhana. Secara digital itu akan menjadi sampel dengan nilai maksimum, sedangkan semua sampel lain sebelum dan sesudahnya akan menjadi nol. Jika Anda mendengarkan ini, Anda akan mendengar sesuatu seperti pop atau petasan.

"Respon" adalah output dari filter (atau sesuatu yang lain) diberi dorongan.

Misalnya, Anda dapat mendengarkan "respons impuls sebuah ruangan" dengan masuk ke dalam ruangan, melakukan tepukan tangan sederhana, dan mendengarkan gema. Butuh beberapa latihan untuk mendapatkan tepuk tangan setajam mungkin. Mendapatkan respons impuls dari filter adalah cara yang sama tetapi alih-alih bertepuk tangan Anda menggunakan pulsa sederhana dan bukannya ruangan Anda memiliki filter.

Jika Anda melihat respons impuls dari filter, atau ruangan, Anda akan melihat goyangan output untuk beberapa saat setelah impuls (dan kadang-kadang goyangan sebelumnya juga). Di kamar Anda mendengar goyangan ini sebagai gema. Dalam sebuah filter, goyangan ini berkaitan langsung dengan frekuensi dan respons fase dari filter. Di sebuah ruangan, jumlah waktu Anda mendengar gema disebut "waktu gema" - tidak ada istilah yang sesuai untuk filter, tetapi itu adalah bagian dari respons impuls.

Sekarang, filter FIR (Finite Impulse Response) terbatas karena waktu respons impuls dibatasi oleh matematika. Secara matematis tidak mungkin untuk waktu respons impuls untuk melampaui jumlah keran dalam filter - oleh karena itu terbatas .

Filter IIR, di sisi lain, tidak memiliki batasan matematika ini dalam waktu respon impuls. Jika diberi ketelitian matematis yang tak terbatas, filter IIR dapat menggoyangkan output selamanya. Tentu saja, dalam arti praktis itu tidak pernah berlangsung selamanya karena pada titik tertentu goyangan menjadi lebih kecil dari ketepatan matematika yang digunakan dan hilang begitu saja.


sumber
terima kasih atas penjelasannya! Di mana umpan balik terjadi di IIR?
GorillaApe
2
@ Parhs: umpan balik terjadi karena output saat ini berasal dari nilai input dan output sebelumnya , sedangkan untuk filter FIR output hanya berasal dari nilai input sebelumnya .
Paul R
1
Umpan Balik @Parha adalah efek samping dari topologi. Dan berdasarkan topologi, maksud saya seperti diagram alir atau tampilan "skematis" dari filter. Pada dasarnya, hasil operasi matematika dalam satu tahap memberi makan operasi lain di tahap sebelumnya. Itulah umpan baliknya. Kebanyakan orang merasa FIR lebih mudah digunakan karena mereka tidak memiliki umpan balik itu. Umpan balik itu sulit untuk membuat pekerjaan dengan benar, tetapi memiliki banyak efisiensi di dalamnya.
Sistem IIR memiliki status internal yang 'mengingat' input sebelumnya untuk semua waktu. Cara Anda memodelkan ini adalah dengan mengumpankan output sebelumnya kembali ke output saat ini, seperti biquad bentuk langsung ini , atau setara dengan loop umpan balik pada input, seperti bentuk langsung ini 2 biquad kanonik.
Eryk Sun
11


b0yb0z1b 1 b ib1b1. Dan seterusnya. Sementara pulsa bergeser melalui filter, Anda mendapatkan nilai berturut-turut untuk di output. Setelah N sampel, pulsa digeser keluar dari filter, dan output menjadi nol lagi. Untuk filter IIR, tidak terlalu jelas untuk mendapatkan koefisien filter dari respons impuls. bi

IIR
Dalam filter IIR (bagian dari) sinyal yang diproses diumpankan kembali ke input. Itu berarti bahwa akan selalu ada residu dari pengulangan sinyal di sekitar. Namun sebagian besar waktu bagian sinyal ini akan semakin kecil dan akhirnya menjadi nol, tetapi secara teori tidak pernah hilang sepenuhnya. Diagram blok di bawah ini menunjukkan filter biquad, implementasi filter IIR yang sering digunakan. Cabang kiri mengambil nilai input (tertunda), cabang kanan bekerja dengan nilai output (tertunda). ( Blok mewakili keterlambatan sampel 1. Biquad sering diturunkan. z1

masukkan deskripsi gambar di sini


Filter FIR FIR di sisi lain memiliki jalur linier dari input ke output. Setelah N sampel sinyal input (seperti pulsa Dirac) akan telah bergeser dan itulah akhirnya.
Filter FIR secara inheren stabil, sedangkan filter IIR belum tentu.

masukkan deskripsi gambar di sini

stevenvh
sumber
1
bahwa perulangan singal tidak dapat tidak aman memberikan hasil yang tidak diinginkan dalam beberapa kasus?
GorillaApe
2
Pasti bisa. Gunakan jalur umpan balik yang salah atau hasilkan dan Anda dapat membuat filter yang tidak stabil atau yang membuat goyah selamanya sesuatu. Itu umumnya bukan apa yang Anda ingin "filter" lakukan, jadi ada teknik untuk menganalisis stabilitas dan untuk menghindari ketidakstabilan.
Olin Lathrop
Apakah jumlah dari semua persyaratan umpan balik harus diumpankan kembali ke awal rantai umpan balik, atau dapatkah hasil dari persyaratan selanjutnya dijumlahkan ke dalam input ke persyaratan selanjutnya? Sementara saya berharap bahwa setiap filter yang dapat direalisasikan dengan cara yang terakhir dapat ditransformasikan ke dalam bentuk yang telah Anda ilustrasikan, saya akan berpendapat bahwa ada subkelas yang berguna dari filter IIR yang dapat dibentuk dari filter urutan pertama bertingkat (di mana masing-masing output dari masing-masing istilah sisi kanan dapat memberi makan dirinya sendiri tetapi tidak ada pendahulunya)
supercat
1
a1a2
@stevenvh: Seperti yang saya catat dalam jawaban saya, ada subset filter IIR yang berguna di mana sebuah stage dapat diumpankan kembali ke dirinya sendiri tetapi tidak ke tahap sebelumnya; Saya tidak tahu bahwa saya telah membaca istilah untuk menggambarkan filter seperti itu, tetapi mereka lebih mudah untuk dikarakterisasi daripada filter IIR umum. Meskipun mereka dapat dengan koefisien yang tepat diberikan dalam bentuk di atas, akan lebih sulit untuk mengenali filter seperti itu (apakah ada istilah untuk mereka?) Dalam bentuk itu.
supercat
4

Ada dua kelas luas dari filter digital, respon impuls tak terbatas (IIR) dan respon impuls terbatas (FIR). Sekali lagi secara luas, filter IIR adalah berbasis persamaan dan FIR filter berdasarkan tabel.

Filter IIR lebih seperti filter analog dunia nyata. Misalnya, pertimbangkan peluruhan eksponensial sederhana seperti yang akan Anda dapatkan dari filter analog low pass RC. Respons output ke input langkah adalah eksponensial yang semakin dekat ke input. Perhatikan bahwa eksponensial ini tidak pernah benar-benar mencapai keluaran, cukup dekat sehingga kami tidak peduli atau tidak dapat mengukur kesalahan. Dalam pengertian itu, filter semacam itu tidak terbatas. Filter IIR memiliki karakteristik yang sama.

Filter low pass IIR tiang tunggal yang sangat umum dapat dinyatakan sebagai:

FILT <- FILT + FF (BARU - FILT)

Ini berarti bahwa setiap iterasi output jika memindahkan fraksi tetap (FF, "fraksi filter") dari jarak ke input. Ini mudah divisualisasikan ketika FF = 1/2. Jika semuanya 0 dan input tiba-tiba pergi ke 1 dan tetap di sana (satu unit langkah), maka output akan menjadi 1/2, 3/4, 7/8, 15/16, dll. Ini adalah seri yang tak terbatas. Akhirnya nilai akan mendekati 1 sehingga dinyatakan sebagai 1 karena nilai digital di komputer tidak memiliki ketepatan tak terbatas.

Filter FIR bekerja pada prinsip yang sama sekali berbeda. Potongan sinyal input terkini yang terbatas disimpan, dan masing-masing nilai yang disimpan dikalikan dengan koefisien yang berbeda, kemudian semua hasil ditambahkan untuk membuat output filter untuk iterasi itu. Pengulangan berikutnya nilai yang disimpan paling lama dibuang, yang lain digeser satu slot lebih tua, dan input baru dimasukkan ke dalam slot yang kosong. Cuplikan yang baru disimpan kemudian dikalikan dengan koefisien, dll. Proses ini dikenal sebagai "konvolusi", dan tabel koefisien sering disebut sebagai kernel filter. Beberapa hal mewah dan berguna dapat dilakukan dengan filter semacam ini dengan menjadi kreatif dengan koefisien. Itu adalah keseluruhan topik yang tidak akan saya bahas sekarang. Namun, karena potongan input yang terbatas disimpan dalam memori, bagian manapun dari sinyal input hanya dapat mempengaruhi output untuk waktu yang terbatas. Setelah sampel input digeser keluar ujung potongan yang disimpan itu hilang dan tidak lagi memiliki efek pada output.

Ada banyak buku yang ditulis tentang hal ini dan Anda dapat menghabiskan beberapa semester kuliah untuk mempelajari lebih dalam. Semoga ikhtisar 30 detik saya mendemistifikasikan ini cukup untuk menjawab pertanyaan Anda.

Olin Lathrop
sumber
1

Satu hal yang belum disebutkan adalah bahwa filter IIR dapat dibagi lagi menjadi dua gaya: yang mana peringkatnya dapat diperingkat, sehingga setiap tahap sepenuhnya bergantung pada nilai sebelumnya dan yang ada pada tahap sebelumnya, dan yang mana tahap tidak dapat diperingkat (karena dua tahap atau lebih bergantung satu sama lain). Dimungkinkan untuk tahapan dalam filter FIR untuk membuat referensi ke output sebelumnya dari tahap lain, asalkan mereka dapat peringkat seperti pada gaya IIR sebelumnya, dan tidak ada tahap mengacu pada output sebelumnya sendiri.

Jika tahapan dalam filter IIR dapat diberi peringkat, dan jika besarnya total koefisien umpan balik diri untuk tahap tertentu kurang dari satu, filter IIR dijamin akan stabil. Jika, misalnya, suatu tahap menyertakan sejumlah sinyal dari tahap sebelumnya, ditambah setengah dari nilai sebelumnya tahap itu dan 1/4 dari nilai sebelumnya, minus 1/8 dari nilai sebelumnya, besarnya total self-level umpan balik akan menjadi 7/8, jadi tidak ada input lebih lanjut dari tahap yang lebih rendah besarnya kontribusi dari umpan balik diri akan berkurang sebesar 12,5% setiap iterasi.

supercat
sumber
0

Sebuah FIR, menghitung matematika pada sejumlah elemen hingga, katakanlah 32 atau 12 atau angka tertentu, tetapi itulah yang dilakukan matematika, ambil sejumlah elemen hingga dan lakukan filter hanya pada elemen tersebut.

IIR, menghitung di semua sampel yang Anda beri makan. Jika Anda memberi makan 10 sampel dan menghentikannya maka itu bekerja pada 10 sampel, jika Anda memberi makan 1.000.000.000 sampel maka matematika dioperasikan pada 1.000.000.000 sampel. Dan jika Anda membiarkan benda itu berjalan tanpa batas, mendekati tak terhingga (biarkan berjalan selamanya) maka jumlah elemen juga tak terbatas mendekati tak terhingga. Karena kata hingga jelas berlaku untuk model lain, dan model IIR dimaksudkan untuk tidak memiliki jumlah sampel hingga, kata tak terbatas sebagai lawan dari terbatas hanya terdengar lebih baik daripada tidak terbatas atau kata lain semacam itu.

old_timer
sumber
"Dioperasikan pada 1.000.000.000 sampel". Ya, tidak langsung. Karena bagian dari output digunakan dalam perhitungan untuk sampel berikutnya akan selalu ada jejak sampel sebelumnya. Filter akan selalu menampung jumlah sampel yang sangat terbatas. Dan itu bukan "tidak terbatas"; itu deterministik, bahkan jika itu mungkin tidak stabil.
stevenvh
itulah yang saya maksudkan bahwa setiap sampel memiliki beberapa efek kecil dari semua sampel yang mendahuluinya, untuk IIR.
old_timer
Jumlah elemen hingga tak hingga vs terbatas dalam perhitungan bukanlah perbedaan antara IIR dan FIR. IIR paling sederhana hanya bekerja pada 2 elemen data: 1 dari input, 1 dari output.
radagast
Infinite bukan dari jumlah input tetapi jumlah siklus terakumulasi, hingga hanya mengambil N jumlah sampel untuk input tunggal dalam matematika, infinite beroperasi secara efektif pada setiap siklus. Jumlah siklus hingga vs jumlah siklus tak terbatas untuk input tunggal.
old_timer