IIR filtreleri doğrudan form 1 veya 2 olarak uygulanabilir . Ancak hangi formu kullanacağınıza nasıl karar veriyorsunuz? Her birinin artıları ve eksileri nelerdir?
IIR filtreleri doğrudan form 1 veya 2 olarak uygulanabilir . Ancak hangi formu kullanacağınıza nasıl karar veriyorsunuz? Her birinin artıları ve eksileri nelerdir?
Yanıtlar:
Her şeyden önce, Doğrudan Form I ve II uygulamasında wikipedia'dan biraz .
Doğrudan form I daha fazla bellek gerektirir, ancak biraz daha basit bir stratejidir ve yuvarlama ve rezonans sorunları yaşama olasılığı daha düşüktür.
Doğrudan form II daha az bellek gerektirir, ancak olağandışı etkileşimler, daha büyük sayılar ve daha fazla yuvarlama hatası potansiyeline sahiptir. Bunların çoğu, özellikle 2. dereceden filtreler olmak üzere daha küçük filtrelerle basamaklandırılabilir.
Biraz eskimiş ancak daha kapsamlı bir cevabı hak edebilir, özellikle Direct Form II sizi çok sıkıntıya sokabilir. Her şeyden önce, "tek beden herkese uyar" yoktur ve en iyi seçim sizin özel uygulamanıza ve kısıtlamalarınıza bağlıdır. Düşünebileceğiniz şey
Özetle Transposed Form II çoğu zaman en iyi seçenek değildir. Bazı sabit nokta senaryolarında, özellikle önemli gürültü problemleri varsa, Doğrudan Form I daha iyidir çünkü Hata Spektrum Şekillendirme, vb.
Çok az kaynak kullanan bir sistemle çalışmanız veya aşırı gereksinimleriniz olmadıkça, doğrudan form I veya II'yi seçmeniz gerçekten pratikte önemli değildir. Örneğin, bir PC veya akıllı telefonda bir şeyler yapıyorsanız bunun bir önemi yoktur. Şahsen ben Form I'i tercih ederim.
Asıl mesele normalde MIPS'dir ve sabit nokta uygulaması yapmayı planlıyorsanız işler daha karmaşık hale gelir. Örneğin, ARM'de, hem katsayılar hem de filtre durumları 32 bit ise, IIR filtreniz çok daha fazla MIPS tüketecektir. Durumlarda ve katsayılarda 32 bit, örneğin çok düşük kesme frekansına sahip düşük geçişli bir filtre uygulamanız gerekiyorsa bir gereksinimdir. Bu gibi durumlarda, durum değişkeni filtresi gibi farklı bir filtre türü kullanabilirsiniz.
Sayısal doğruluk gibi teknik farklılıkların yanı sıra, istikrar sorunu da vardır. Dijital filtrelerin birbirine yakın kutup / sıfır çiftleri olduğunda, frekans yanıtı çeşitli konumlarda kararsız hale gelebilir (genellikle Nyquist'e yaklaşır veya sıfıra yaklaşır).
Müzik uygulamaları için IIR filtreleri kullanıldığında, filtre parametreleri gerçek zamanlı olarak modüle edildiğinde (örneğin, düşük geçişli bir filtrede kesme frekansını değiştirmek), gerçekleştirme seçiminin filtre kararlılığı üzerinde derin bir etkisi olabilir.
Aşağıdaki gerçeklemelerin her birinin kesme frekansı veya tepe kazancı gibi zamanla değişen parametreler varken, farklılıkları dinlemenizi sağlayan açık kaynaklı bir uygulamam var:
Proje burada:
Bellek, MIPS, gürültü ve kararlılık hakkındaki yukarıdaki yorumlara ek olarak; yaygın bir şekilde gözden kaçan başka bir faktör daha vardır. Bu faktör sıfırlama yeteneğidir; ki bu benim durumumun çoğunda çok önemli.
Direct Form II uygulamasıyla, gecikmeli çıkışlar için durum yoktur; bu nedenle Direct Form II filtresini "5" olarak "sıfırlarsanız", ilk çıktı 5 olmaz. Bunu oldukça karşı buluyorum -Simulink kullanırken ciddi bir hayal kırıklığına neden olan sezgisel. Bu nedenle neredeyse her zaman Doğrudan Form I uygulamasını kullanıyorum. Ne yazık ki Simulink, DSP araç kutunuz varsa Doğrudan Form I'i destekler ve yine de başlangıç koşullarını bir giriş sinyalinden ayarlamanıza izin vermez.