Bir IIR filtresi gerçekleştirme seçerken hangi faktörleri göz önünde bulundurmalıyım?


Yanıtlar:


9

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.


2
Her iki durumda da, ikinci dereceden bölümlere basamaklı olmalısınız.
Oliver Charlesworth

1
Kısacası, bellek, yuvarlama hatası değiş tokuşuna karşı mı?
anasimtiaz

2
Süper zayıf cevap IMO. Teknik olarak soruyu cevaplar ... ama sadece "teknik olarak". Bir dilde bazı kaynak kodlarını görmek istiyorum. Kolay bir FIR filtresinin nasıl uygulanacağını biliyorum. IIR kaynak kodunu görelim.
Trevor Boyd Smith

2
Ayrıca, örnek başına gerçekleştirilen matematiksel işlemler açısından, daha iyi bir uygulama I veya II?
anasimtiaz

1
FIR filtrelemeyi nasıl yapacağımı biliyorum. Ayrıca doğrudan form I / II / III / IV'ün ne olduğunu da biliyorum. deneyimim yok IIR: tasarım veya uygulama. Orijinal yorumum çok yapıcı değildi. Şunu söylemeliydim: "I-IV doğrudan formunun ne olduğunu anlıyorum, lütfen bir IIR filtresini nasıl tasarladığınız / uyguladığınız hakkında daha fazla konuşur musunuz?"
Trevor Boyd Smith

9

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

  1. Bellek: Direct Form II ve Transposed Form II, Direct Form I ve Transposed Form I'den biraz daha az durum belleği alır, ancak basamaklı bir ikinci derece bölüm uygulamasında fark küçüktür
  2. MIPS: Çarpma ve ekleme sayısı bakımından, dört uygulamanın hepsi aynıdır. Bununla birlikte, özel işlemcinin talimat setine bağlı olarak, uygulama verimliliğinde önemli farklılıklar olabilir. Yani "değişir".
  3. Sabit Nokta özellikleri: Bu büyük bir fark yaratır. Öncelikle durum değişkenlerinizin taşmadığından emin olmalısınız, bu nedenle in / output ve durum değişkenleri arasındaki transfer fonksiyonunu analiz etmeniz gerekir. Burada Direct Form I ve Transposed Form II açık ara kazananlardır. Durum değişkenleri + 106dB'ye veya giriş ve çıkışa karşılık gelir. Örneğin doğrudan Form II'de, girişten duruma transfer fonksiyonu sadece kutuplar tarafından verilir. Bunun gerçekte 100 dB kazanımı aşabileceği gerçek dünya örnekleri gördüm. Bu, sabit nokta uygulaması için mutlak bir no.
  4. Gürültü: Kesme ve yuvarlama hatası açısından, tüm uygulamalar kabaca aynıdır. 3) 'de belirtilen durum değişkeni aktarım işlevi sorunu da bunu bir dereceye kadar etkilemektedir ve 32-bit kayan nokta kullanırken bile Direct Form II filtrelerinde sesli gürültü sorunları gördüm.

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


Bu çok daha kapsamlı ve daha iyi bir cevap!
Lorem Ipsum

2
Bugün - çok daha zor bir şekilde - Direct Form I'nin başvurum için neden daha iyi bir seçim olduğunu anladım. Gerçekten iyi bir cevap için teşekkürler!
anasimtiaz

1

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


1

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:

  • Doğrudan Form I
  • Doğrudan Form II
  • Aktarılmış Doğrudan Form I
  • Aktarılmış Doğrudan Form II
  • Kafes Form
  • Durum değişkeni

Proje burada:

https://github.com/vinniefalco/DSPFiltersDemo.git

https://github.com/vinniefalco/DSPFilters.git

Ekran görüntüsü


1
Bunu birkaç kez yayınladınız ve yanıtlarınız gerçekten sorulara uyarlanmadığı sürece spam politikasını uygulamaya eğilimliyim. Bu gönderilerin hiçbiri doğrudan soruları yanıtlamaz ve bir ürünü tanıtır. Soruları doğrudan cevaplamak için düzenleyin yoksa silinir.
Phonon

0

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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.