Podstawowe zasady projektowania filtrów cyfrowych (IIR / FIR)

15

Chociaż mam solidne doświadczenie w projektowaniu silników audio i tym podobne, jestem całkiem nowy w dziedzinie Digital Filter Design, szczególnie filtrów IIR i FIR. Innymi słowy, staram się dowiedzieć jak najwięcej na temat projektowania filtrów i wyprowadzania ich równań różnicowych. Zaczynam od podstaw, więc proszę o wyrozumiałość, tak jak powiedziałem, próbuję się uczyć.

Oto moje pytanie:

Powiedzmy, że chcę zaprojektować filtr dolnoprzepustowy ze szczególnym odcięciem - powiedzmy 300 Hz. Jaki byłby najlepszy sposób matematycznego wyprowadzenia funkcji przenoszenia, a następnie wyprowadzenia szczególnego równania różniczkowego do implementacji filtra w Formie bezpośredniej I i Formie bezpośredniej II (lub na razie tylko DF-1 ...)?

Rozumiem trochę funkcje przenoszenia i ich związek z równaniami różnicowymi z doskonałego materiału w sieci, niestety niektóre z nich wymagają sporej wiedzy, więc jest to bardziej mylące niż pomocne w moich poszukiwaniach. Myślę, że potrzebuję bardziej szczegółowego przykładu, który pomoże mi połączyć kropki.

Zasadniczo szukam pomocy w podziale procesu, od wyboru częstotliwości granicznej do wyprowadzenia równania różnicy.

Każda pomoc będzie mile widziana. Znam wiele pojęć - odpowiedź impulsowa, DFT, matematyka za nią, chyba potrzebuję więcej pomocy w koncepcji transformacji Z i wykorzystania bieguna / zera do zaprojektowania funkcji przenoszenia filtra, a następnie jak działa częstotliwość graniczna. graj w to wszystko, aby w końcu wyprowadzić równanie różnicy.

Ponieważ zwykle uczę się na podstawie przykładów, pomyślałem, że zapytam tutaj. Bardzo dziękuję wszystkim, którzy znajdą czas, aby mi pomóc.

bitowe
źródło
2
Istnieje wiele metod projektowania filtrów. Oto kilka terminów na początek: metoda projektowania okien, konstrukcja filtra najmniejszych kwadratów i konstrukcja filtra ekwipunkowego (zwykle przy użyciu algorytmu Parks-McClellan). Są one głównie ograniczone do konstrukcji filtrów FIR. Jednym z powszechnych sposobów projektowania filtrów IIR jest mapowanie prototypu analogowego (takiego jak filtr Butterwortha) na odpowiednie przybliżenie filtra cyfrowego. Można tego dokonać na przykład za pomocą metod transformacji dwuliniowej lub niezmienniczości impulsowej.
Jason R

Odpowiedzi:

20

Projektowanie filtrów cyfrowych jest bardzo dużym i dojrzałym tematem i - jak wspomniałeś w swoim pytaniu - dostępnych jest wiele materiałów. To, co chcę tutaj wypróbować, to zacząć od Ciebie i uczynić dostępnym materiałem bardziej dostępnym. Zamiast filtrów cyfrowych powinienem mówić o filtrach z czasem dyskretnym, ponieważ nie będę tutaj rozważał kwantyzacji współczynników i sygnałów. Wiesz już o filtrach FIR i IIR, a także znasz niektóre struktury filtrów, takie jak DF I i II. Niemniej jednak zacznę od podstaw:

Nierekurencyjny filtr liniowego niezmiennika czasu (LTI) można opisać następującym równaniem różnicy

(1)y(n)=h0x(n)+h1x(n-1)++hN.-1x(n-N.+1)=k=0N.-1hkx(n-k)

gdzie jest sekwencja wyjściowe, x ( n ) jest sekwencją wejściowych, n jest indeksem czasu, H K stanowią współczynniki filtra, a N oznacza długość filtra (liczba dotknięć). Filtr zawory h K są również odpowiedzi impulsowej filtru, ponieważ, jeśli sygnał wejściowy jest impuls, tzn x ( n ) = δ ( n ) , wtedy y ( n ) = h ny(n)x(n)nhkN.hkx(n)=δ(n)y(n)=hn(jeśli pamięć filtra została zainicjowana zerami). Równanie (1) opisuje liniowy niezmienny w czasie skończony układ odpowiedzi impulsowej (FIR). Suma po prawej stronie (1) jest sumą splotu, tzn. Sygnał wyjściowy jest uzyskiwany przez splot sygnału wejściowego z odpowiedzią impulsową. Jest to zawsze prawda, ale w przypadku filtrów IIR nie możemy jawnie obliczyć sumy splotu, ponieważ odpowiedź impulsowa jest nieskończenie długa, tj. Istnieje nieskończenie wiele współczynników hk. Jedną ważną zaletą filtrów FIR jest to, że są one zawsze stabilne, tj. W przypadku ograniczonej sekwencji wejściowej sekwencja wyjściowa jest zawsze ograniczona. Kolejną zaletą jest to, że filtry FIR mogą być zawsze realizowane z fazą dokładnie liniową, tzn. Nie dodadzą żadnych zniekształceń fazy poza czystym opóźnieniem. Co więcej, problem projektowania jest zwykle łatwiejszy, co zobaczymy później.

Filtr rekurencyjny LTI jest opisany następującym równaniem różnicowym:

(2)y(n)=b0x(n)+b1x(n-1)++bM.x(n-M.)--za1y(n-1)--zaN.y(n-N.)

bkzakzak ponieważ filtr IIR może być niestabilny, tzn. ich sekwencja wyjściowa może być nieograniczona, nawet przy ograniczonej sekwencji wejściowej.

Filtry można projektować zgodnie ze specyfikacjami w dziedzinie czasu (próbka) lub w dziedzinie częstotliwości lub w obu. Ponieważ w swoim pytaniu wspomniałeś o częstotliwości granicznej, zakładam, że jesteś bardziej zainteresowany specyfikacjami w dziedzinie częstotliwości. W takim przypadku musisz spojrzeć na odpowiedzi częstotliwościowe systemów FIR i IIR. Odpowiedź częstotliwościowa układu jest transformatą Fouriera jego odpowiedzi impulsowej, przy założeniu, że istnieje (co ma miejsce w przypadku układów stabilnych). Pasmo przenoszenia filtra FIR wynosi

(3)H.(mijotθ)=k=0N.-1hkmi-jotkθ

θ

θ=2)πfafas

fafas

(4)H.(mijotθ)=k=0M.bkmi-jotθ1+k=1N.zakmi-jotθ

zak=0k=1,,N.

Rzućmy teraz okiem na metody projektowania filtrów. W przypadku filtrów FIR można zastosować odwrotną transformatę Fouriera pożądanej odpowiedzi częstotliwościowej, aby uzyskać odpowiedź impulsową filtra, która bezpośrednio odpowiada współczynnikom filtra. Ponieważ przybliżasz pożądaną odpowiedź za pomocą odpowiedzi impulsowej o skończonej długości, powinieneś zastosować gładkie okno do uzyskanej odpowiedzi impulsowej, aby zminimalizować oscylacje w rzeczywistej odpowiedzi częstotliwościowej z powodu zjawiska Gibbsa. Ta metoda nazywa się metodą próbkowania częstotliwości.

W przypadku prostych standardowych filtrów, takich jak idealne filtry dolnoprzepustowe, górnoprzepustowe, pasmowe lub pasmowe (i kilka innych), możesz nawet analitycznie obliczyć dokładną odpowiedź impulsową, przyjmując odwrotną transformatę Fouriera o idealnej pożądanej odpowiedzi:

hk=12)π-ππH.(mijotθ)mijotkθreθ

Ta całka jest łatwa do oszacowania dla cząstkowo stałych pożądanych odpowiedzi, tak jak w przypadku idealnych filtrów selektywnych częstotliwościowo. To da ci nieskończenie długą, nie przyczynową odpowiedź impulsową, którą należy przesłonić i przesunąć, aby była skończona i przyczynowa. Ta metoda jest znana jako projektowanie okien.

Istnieje oczywiście wiele innych metod projektowania filtrów FIR. Jedną ważną metodą numeryczną jest słynny algorytm wymiany Parksa-McClellana, który projektuje optymalne filtry ze stałymi pasmami pasma i pasm stopu. Jest to metoda aproksymacji numerycznej i dostępnych jest wiele implementacji oprogramowania, np. W Matlab i Octave.

ssz

Istnieje oczywiście wiele bardziej interesujących i przydatnych metod, w zależności od rodzaju posiadanych specyfikacji, ale mam nadzieję, że dzięki temu zaczniesz i uczyni każdy materiał, który napotkasz, bardziej zrozumiałym. Bardzo dobrą (i darmową) książką opisującą niektóre podstawowe metody projektowania filtrów (i wiele innych) jest Intodukcja przetwarzania sygnałów przez Orfanidis. Można tam znaleźć kilka przykładów projektu. Kolejną świetną klasyczną książką jest Digital Filter Design autorstwa Parks and Burrus.

Matt L.
źródło
Wow, Matt, wielkie dzięki za szczegółową i przemyślaną odpowiedź. Z pewnością zagłębię się w to i naprawdę docenię twój czas. Dzięki!
bitowe
Czy jest jakiś dobry podręcznik do projektowania filtrów falkowych? Ciekawi mnie taki temat: dsp.stackexchange.com/questions/29090/… . Dzięki!
LCFactorization
Bardzo dobre wprowadzenie i motywuje do zrobienia czegoś w dziedzinie przetwarzania sygnałów
jomegaA