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
y( n ) = h0x ( n ) + h1x ( n - 1 ) + … + hN.- 1x ( n - N+ 1 ) = ∑k = 0N.- 1hkx ( n - k )(1)
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:
y( n ) = b0x ( n ) + b1x ( n - 1 ) + … + bM.x ( n - M) -- a1y( n - 1 ) - … - aN.y( n - N)(2)
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
H.( ej θ) = ∑k = 0N.- 1hkmi- j k θ(3)
θ
θ = 2 πfafas
fafas
H.( ej θ) = ∑M.k = 0bkmi- j θ1 + ∑N.k = 1zakmi- j θ(4)
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.( ej θ) ej k θ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.