Dijital filtre tasarımı temel ilkeleri (IIR / FIR)


15

Ses motorları ve benzeri tasarımlarda sağlam bir deneyimim olmasına rağmen, Dijital Filtre Tasarımı, özellikle IIR ve FIR filtreleri alanında oldukça yeniyim. Başka bir deyişle, filtrelerin nasıl tasarlanacağı ve fark denklemlerinin nasıl elde edileceği konusunda mümkün olduğunca çok şey öğrenmeye çalışıyorum. Temel bilgilerden başlıyorum, bu yüzden lütfen dediğim gibi benimle kalmaya çalışın, öğrenmeye çalışıyorum.

İşte sorum:

Diyelim ki belirli bir kesime sahip düşük geçişli bir filtre tasarlamak istiyorum - diyelim ki 300 Hz. Transfer fonksiyonunu matematiksel olarak türetmenin ve ardından Filtreyi Doğrudan Form I ve Doğrudan Form II'de (veya şimdilik sadece DF-1 ...) uygulamak için belirli fark denklemini türetmenin en iyi yolu nedir?

Transfer fonksiyonları ve bunların web üzerindeki bazı mükemmel malzemelerden fark denklemleri ile nasıl bir ilişkisi olduğunu anlıyorum, maalesef bazıları iyi bir miktar önceden bilgi alıyor, bu yüzden arayışımda yardımcı olmaktan daha kafa karıştırıcı. Bu yüzden noktaları birleştirmeme yardımcı olacak daha adım adım bir örneğe ihtiyacım var.

Temelde kesme frekansını seçmekten fark denklemini elde etmeye kadar sürecin dökümü ile ilgili yardım arıyorum.

Herhangi bir yardım çok takdir edilecektir. Pek çok kavramı biliyorum - dürtü yanıtı, DFT'ler, arkasındaki matematik, sanırım daha fazla yardıma ihtiyacım var filtrenin transfer fonksiyonunu tasarlamak için z-dönüşümü ve kutup / sıfır kullanımı kesim frekansı nasıl. nihayetinde fark denklemini elde etmek için bütün bunları oynayın

Örneklerden en iyisini öğrenme eğiliminde olduğum için, burada soracağımı düşündüm. Bana yardım etmek için zaman bulan herkese çok teşekkürler.


2
Birçok filtre tasarım yöntemi vardır. Başlamanız için birkaç terim şunlardır: pencere tasarım yöntemi, en küçük kareler filtre tasarımı ve denge filtresi tasarımı (genellikle Parks-McClellan algoritmasını kullanarak). Bunlar çoğunlukla FIR filtre tasarımları ile sınırlıdır. IIR filtreleri tasarlamanın yaygın bir yolu, analog bir prototipi (bir Butterworth filtresi gibi) karşılık gelen bir dijital filtre yaklaşımıyla eşlemektir. Bu, örneğin çift doğrusal dönüşüm veya dürtü değişmezlik yöntemleri kullanılarak yapılabilir.
Jason R

Yanıtlar:


20

Dijital filtre tasarımı çok büyük ve olgun bir konudur ve - sorunuzda belirttiğiniz gibi - çok fazla malzeme mevcuttur. Burada denemek istediğim, başlamak ve mevcut materyali daha erişilebilir hale getirmek. Dijital filtreler yerine aslında ayrık zamanlı filtrelerden bahsetmeliyim çünkü burada katsayı ve sinyal nicemlemesini dikkate almayacağım. FIR ve IIR filtrelerini zaten biliyorsunuz ve DF I ve II gibi bazı filtre yapılarını da biliyorsunuz. Yine de, bazı temel bilgilerle başlayayım:

Yinelemesiz doğrusal zamanla değişmeyen (LTI) filtre, aşağıdaki fark denklemi ile tanımlanabilir

(1)y(n)=h0x(n)+h1x(n1)++hN1x(nN+1)=k=0N1hkx(nk)

y(n)x(n)nhkNhkx(n)=δ(n)y(n)=hnhk. FIR filtrelerinin önemli bir avantajı, her zaman kararlı olmalarıdır, yani sınırlı bir giriş dizisi için, çıkış dizisi her zaman sınırlıdır. Başka bir avantaj, FIR filtrelerinin her zaman tam olarak doğrusal bir faz ile gerçekleştirilebilmesidir, yani saf bir gecikmeden başka bir faz bozulması eklemeyeceklerdir. Ayrıca, daha sonra göreceğimiz gibi tasarım problemi genellikle daha kolaydır.

Yinelemeli bir LTI filtresi aşağıdaki fark denklemi ile tanımlanır:

(2)y(n)=b0x(n)+b1x(n1)++bMx(nM)a1y(n1)aNy(nN)

bkakak çünkü IIR filtresi kararsız olabilir, yani bunların çıkış dizileri sınırlı bir giriş dizisi ile bile sınırsız olabilir.

Filtreler, zaman (örnek) alanında veya frekans alanında veya her ikisinde belirtilen özelliklere göre tasarlanabilir. Sorunuzda bir kesme frekansından bahsettiğinizden, frekans alanındaki spesifikasyonlarla daha fazla ilgilendiğinizi varsayıyorum. Bu durumda, FIR ve IIR sistemlerinin frekans tepkilerine bir göz atmanız gerekir. Bir sistemin frekans yanıtı, varlığını varsayarak (kararlı sistemler için durumdur), dürtü yanıtının Fourier dönüşümüdür. FIR filtresinin frekans yanıtı

(3)H(ejθ)=k=0N1hkejkθ

θ

θ=2πffs

ffs

(4)H(ejθ)=k=0Mbkejθ1+k=1Nakejθ

ak=0k=1,,N

Şimdi filtre tasarım yöntemlerine hızlı bir göz atalım. FIR filtreleri için, doğrudan filtre katsayılarına karşılık gelen filtrenin impuls tepkisini elde etmek için istenen frekans cevabının ters Fourier dönüşümünü alabilirsiniz. İstenen yanıtı sonlu uzunluktaki dürtü yanıtıyla yaklaşık olarak tahmin ettiğiniz için, Gibbs fenomeni nedeniyle gerçek frekans yanıtındaki salınımları en aza indirmek için elde edilen dürtü yanıtına düzgün bir pencere uygulamanız gerekir. Bu yönteme frekans örnekleme yöntemi denir.

İdeal lowpass, highpass, bandpass veya bandstop filtreler (ve birkaç diğerleri) gibi basit standart filtreler için, istenen ideal yanıtın ters Fourier dönüşümünü alarak tam dürtü yanıtını analitik olarak hesaplayabilirsiniz:

hk=12πππH(ejθ)ejkθdθ

Bu integral, ideal frekans seçici filtrelerde olduğu gibi parçalı sabit olarak istenen yanıtları değerlendirmek kolaydır. Bu, sonlu ve nedensel hale getirmek için pencerelenmesi ve kaydırılması gereken sonsuz uzun, nedensel olmayan bir dürtü yanıtı verecektir. Bu yöntem pencere tasarımı olarak bilinir.

Elbette başka birçok FIR filtre tasarım yöntemi vardır. Önemli bir sayısal yöntem, sabit geçiş bandı ve durdurma bandı dalgalanmalarıyla en uygun filtreleri tasarlayan ünlü Parks-McClellan değişim algoritmasıdır. Bu sayısal bir yaklaşım yöntemidir ve örneğin Matlab ve Octave gibi birçok yazılım uygulaması vardır.

ssz

Elbette, sahip olduğunuz özellik türüne bağlı olarak çok daha ilginç ve kullanışlı yöntemler var, ancak umarım bu sizi başlatacak ve karşılaştığınız herhangi bir malzemeyi daha anlaşılır hale getirecektir. Bazı temel filtre tasarım yöntemlerini (ve çok daha fazlasını) kapsayan çok iyi (ve ücretsiz) bir kitap Orfanidis'in Sinyal İşlemeye Girişidir. Burada birkaç tasarım örneği bulabilirsiniz. Bir başka harika klasik kitap, Parks and Burrus tarafından Dijital Filtre Tasarımı .


Vay be, Matt, detaylı ve düşünceli cevap için çok teşekkürler. Kesinlikle içine gireceğim ve zamanınızı gerçekten takdir edeceğim. Teşekkürler!
bitsel

Dalgacık filtre tasarımı için iyi bir ders kitabı var mı? Böyle bir konuyu merak ediyorum: dsp.stackexchange.com/questions/29090/… . Teşekkürler!
LCFaktorizasyon

Çok iyi bir giriş ve Sinyal İşleme alanında bir şeyler yapmak için motive
jomegaA
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.