Filtracja Cyfrowa: Definicja i Charakterystyka Filtrów SOI (FIR)
- Szczegóły
Dzięki technice cyfrowej mamy dostęp do technologii, które dawniej były dostępne tylko dla wąskiego grona specjalistów. Operacje te, same w sobie będąc niejednokrotnie bardzo skomplikowane, wykonywane są za pomocą bardzo skomplikowanych algorytmów, przez skomplikowany sprzęt. Często chcielibyśmy, choć w ogólnym zarysie, wiedzieć jak to działa i skąd się bierze.
Skoro znamy już jedną z nich (DFT, a w zasadzie FFT), to czas na drugą. A mowa o filtracji cyfrowej. Postaram się w możliwie najprzystępniejszy sposób opisać to zagadnienie.
Początki i Rozwój Filtracji Cyfrowej
Początki filtracji cyfrowej sięgają sześćdziesiąt lat wstecz. We wczesnych latach pięćdziesiątych ubiegłego wieku wzrastająca dostępność komputerów zaowocowała pracami nad wygładzaniem spróbkowanych sygnałów dyskretnych i analizą dyskretnych systemów sterowania. Poważny rozwój tej dziedziny nastąpił w połowie lat sześćdziesiątych, kiedy eksperci od przetwarzania danych cyfrowych zdali sobie sprawę, że właśnie komputery pozwalają na analizę sygnałów cyfrowych i ich przetwarzanie w czasie rzeczywistym.
Obecnie jest to norma, dostępna nawet dla zwykłego użytkownika komputera, dlatego jest to bardzo powszechnie stosowana forma obróbki audio.
Na Czym Polega Proces Filtracji?
Filtracja jest to proces przetwarzania dokonywany na sygnale w dziedzinie czasu, powodujący zmiany w widmie sygnału oryginalnego. Zmiana polega na redukcji, czyli, inaczej mówiąc, na odfiltrowaniu pewnych niepożądanych składowych sygnału wejściowego - zatem filtr przepuszcza pewne częstotliwości, tłumiąc inne.
Przeczytaj także: Definicja i pomiar filtracji kłębuszkowej
Podczas gdy filtr analogowy działa na sygnale ciągłym, filtr cyfrowy przetwarza ciąg wartości próbek dyskretnych. Filtr cyfrowy może być dedykowanym układem scalonym, programowalnym procesorem bądź programem komputerowym.
Tradycyjne liniowe filtry cyfrowe występują jako jeden z dwóch typów: filtry o skończonej odpowiedzi impulsowej SOI (ang. Finite Impulse Response - FIR) i filtry o nieskończonej odpowiedzi impulsowej NOI (ang. Infinite Impulse Response - IIR).
Filtry SOI są najprostszym typem filtrów cyfrowych, zajmiemy się więc teraz właśnie nimi.
Filtry o Skończonej Odpowiedzi Impulsowej (FIR)
Zasadniczą cechą charakteryzującą ten rodzaj filtrów jest to, że do uzyskania bieżącej próbki sygnału na wyjściu filtru wykorzystują one próbkę bieżącą i próbki przeszłe sygnału wejściowego, nie korzystając z żadnych przeszłych próbek sygnału wyjściowego. Z tego powodu nazywa się je czasem filtrami nierekursywnymi.
Nazwa ich wzięła się stąd, że filtry te, dysponując skończoną liczbą różnych od zera próbek sygnału wejściowego, na wyjściu zawsze mają skończoną liczbę próbek sygnału wyjściowego.
Przeczytaj także: Webber AP8400 - wymiana filtrów
Jeśli na wejściu filtru SOI pojawi się nagle ciąg próbek o zerowej wartości, na wyjściu również otrzymamy ciąg, którego wartości będą równe zero. Jednakże w przypadku KAŻDEGO filtru typu SOI powyższy warunek jest ZAWSZE spełniony.
Do obliczenia wartości próbek wyjściowych, czyli aby dokonać filtracji, filtr SOI korzysta z dodawania, w podobny sposób jak to się dzieje w procesie uśredniania. Zresztą sam proces uśredniania też jest filtrem, a dokładniej filtrem dolnoprzepustowym.
Przykład Uśredniania jako Filtr SOI
Mamy pewne wyniki obserwacji, przedstawiające się następująco:
- 10
- 22
- 24
- 42
- 37
- 77
- 89
- 22
- 63
- 9
- 51
- 32
- 49
- 53
- 29
- 14
- 48
- 35
- 70
- 0
- 0
- 0
Jeśli teraz będziemy chcieli dokonać uśrednienia tych wyników w przedziałach po 5, to pierwszy wynik pojawi nam się po odczytaniu pięciu pierwszych wyników (tyle jest nam potrzebne, aby obliczyć wartość średnią z pięciu wyników). Średnią liczymy według wzoru znanego nam (mam nadzieję) od podstawówki, czyli suma pięciu kolejnych składników podzielona przez 5. Aby policzyć kolejną średnią dodajemy pięć kolejnych składników i dzielimy je przez 5, itd.
Pierwsza rzecz, jak rzuca się nam w oczy, to fakt, iż wykres uśrednionych wyników jest "gładszy", niż ten, który odwzorowuje przebieg poszczególnych składników "wejściowych". Na tym wszak polega idea uśredniania i nie powinno nas to dziwić.
Przeczytaj także: Optymalne rozcieńczenie bimbru
Jeśli teraz potraktujemy oba wykresy jak przebiegi czasowe pewnych sygnałów akustycznych, to należy odczytać je i wysunąć następujące wnioski:
- sygnał wejściowy ("z kwadracikami") jest przebiegiem zawierającym składowe o dużych częstotliwościach (wynika to z gwałtownych zmian w ciągu czasowym sygnału)
- z sygnału uśrednionego wyeliminowano te gwałtowne zmiany (został wygładzony), a to oznacza, że część składowych o dużych częstotliwościach została odfiltrowana
- dodatkowo możemy zauważyć, że jeśli sygnał wejściowy (z kwadracikami) zmaleje do zera, to sygnał na wyjściu będzie dążył do zera i po 5 próbkach (tyle ile wynosi przedział uśredniania) również spadnie do zera.
Tak więc do obliczenia wartości wyjściowych pobraliśmy tylko wartości wejściowe, nie używaliśmy żadnej z przeszłych wartości wyjściowych układu uśredniającego, a poza tym wartość sygnału na wyjściu po tym, jak sygnał wejściowy będzie miał wartość zero, również osiągnie wartość zero. Można więc śmiało stwierdzić, że układ nasz jest filtrem SOI, który jest filtrem 5 rzędu i którego wagi (współczynniki) będą wszystkie takie same i wynosiły 1/5.
Struktura Filtru SOI
Przy uśrednianiu dodajemy pięć wartości i dzielimy sumę przez pięć, uzyskując wynik. Równie dobrze możemy pomnożyć każdą z wartości wejściowych przez 1/5 i następnie dokonać sumowania - obie metody są równoważne - wtedy wzór na obliczenie próbek na wyjściu układu będzie wyglądał:
x(k) to kolejne próbki wejściowe sygnału, natomiast nasz współczynnik ma stałą wartość dla wszystkich próbek i wynosi 1/5.
W ogólnym przypadku filtrów wcale nie musi być (i przeważnie nie jest) tak, że wszystkie współczynniki mają tę samą wartość. Kolejne próbki wejściowe oznaczono jako x, poczynając od próbki pierwszej oznaczonej x(0), następna x(1) i tak dalej do x(n). Zauważmy, że współczynnik pierwszy filtru (h(0)) mnożymy przez próbkę x(n) (jeśli n=4 to przez x(4)), następny współczynnik h(1) przez x(n-1), czyli x(3), aż w końcu ostatni współczynnik h(n), czyli w naszym przypadku h(4), mnożymy przez próbkę x(n-4), czyli x(0). Uporządkowanie próbek wejściowych względem czasu zostało odwrócone, co ma swoje odzwierciedlenie w ogólnym wzorze dla filtrów SOI, który wygląda następująco:
Równanie to jest równaniem splotu, które symbolicznie oznaczane jest gwiazdką między czynnikami, czyli y(n) = h(n) * x(n)
Odwracamy porządek czasowy ciągu próbek wejściowych i rozpoczynamy przemnażanie odwróconego ciągu przez współczynniki filtru.
Filtr jako taki może być dolno- lub górnoprzepustowy, bądź pasmowy, a poza tym może mieć różne częstotliwości graniczne. Jak możemy zbadać jaki filtr reprezentuje nasz układ uśredniający o pięciu jednakowych współczynnikach równych 1/5? Aby to określić musimy poznać odpowiedź impulsową układu.
Odpowiedź Impulsowa Filtru SOI
Odpowiedź impulsowa jest dokładnie tym, co wynika z jej nazwy - jest to wyjściowy ciąg czasowy filtru, gdy na wejście podana zostanie pojedyncza próbka o jednostkowej wartości, po której i przed którą następują próbki o wartości zerowej. Polega to po prostu na przemnożeniu kolejnych współczynników filtru przez jednostkową próbkę. Oznacza to, że odpowiedź impulsowa filtru SOI jest identyczna, jak wartość współczynników filtru (jeśli w naszym przypadku przemnożymy kolejne próbki przez współczynniki naszego filtru wynoszące 1/5, to otrzymamy pięć kolejno po sobie następujących próbek o amplitudzie 1/5). Dlatego pojęcia "współczynniki filtru SOI" i "odpowiedź impulsowa" są synonimami.
Potrzebna nam więc jest charakterystyka częstotliwościowa filtru SOI.
Charakterystyka Częstotliwościowa Filtru SOI
Aby otrzymać taką charakterystykę wystarczy wyznaczyć kształt odpowiedzi impulsowej w dziedzinie częstotliwości. A tego z kolei dokonamy, jeśli obliczymy DFT (a w zasadzie FFT) odpowiedzi impulsowej, czyli de facto DFT współczynników filtru.
Jak widać, nagła zmiana wartości współczynników z 0 do 0,2 powoduje powstawanie listków bocznych (te inne "krągłości" poza listkiem głównym). Zauważamy spadek zafalowań okupionych jednakże poszerzeniem listka głównego, co oznacza poszerzenie pasma przejściowego, a więc zmniejszenie nachylenia. W trzecim przypadku pozbyliśmy się prawie całkowicie zafalowań kosztem jeszcze większego poszerzenia listka głównego.
Co trzeba zrobić, aby otrzymać idealny filtr dolnoprzepustowy? Ideały mają to do siebie, że nie da się ich osiągnąć, dlatego są właśnie ideałami. Mając bowiem charakterystykę częstotliwościową filtru w prosty sposób możemy wyznaczyć jego odpowiedź impulsową, czyli współczynniki filtru.
A o to właśnie nam chodzi, bo przecież filtr cyfrowy SOI to nic innego, jak pewna ilość współczynników (ilość zależy od rzędu filtru), przez które będziemy przemnażać kolejne (pamiętamy, że w odwróconej kolejności) próbki, aby na wyjściu otrzymać cyfrowy sygnał odfiltrowany. Może to nie wydaje się na pierwszy rzut oka oczywiste, ale trzeba pamiętać, że mamy do czynienia z sygnałami cyfrowymi, czyli ciągami próbek, a więc ciągami liczb.
Dlatego w przeciwieństwie do filtrów analogowych, gdzie dokonują się przemiany przebiegów prądów i napięć, w filtrze cyfrowym mamy do czynienia TYLKO z matematycznymi przekształceniami (mnożenie, dodawanie), a sam filtr cyfrowy to też nic innego, jak liczby (właśnie współczynniki filtru) z zaimplementowanym algorytmem, jak te współczynniki przekształcać matematycznie, aby otrzymać na wyjściu sygnał odfiltrowany cyfrowo.
Jak może pamiętamy, charakterystyka częstotliwościowa filtru powstaje poprzez poddanie odpowiedzi impulsowej filtru (współczynników) DFT, aby więc z charakterystyki częstotliwościowej otrzymać odpowiedź impulsową, a więc i współczynniki, musimy obliczyć odwrotne dyskretne przekształcenie Fouriera (IDFT) z charakterystyki częstotliwościowej.
Problem w tym, że jest on nieprzyczynowy (ma wartości ujemne, a więc sygnał był na wyjściu zanim pojawiło się pobudzenie na wejściu - jest to praktycznie nie do zrealizowania), a poza tym jest nieskończony. Z nieprzyczynowością możemy sobie dość prosto poradzić, przesuwając przebieg w stronę dodatnich wartości; to jedna z własności DFT - nie zmienia to w żaden sposób amplitudowej charakterystyki częstotliwościowej naszego filtru SOI, a jedynie dokonuje liniowego przesunięcia fazy, ale to nie jest tak istotne. Gorzej z ilością współczynników - nie możemy wziąć ich nieskończonej liczby, z oczywistych względów.
Widzimy więc, że możemy wpływać na kształt filtru, a dokładnie na stromość jego charakterystyki przejściowej, zwiększając liczbę ogniw (współczynników filtru), co oczywiście znacząco spowolni nam prace takiego filtru. Niestety, nawet zwiększanie liczby ogniw nie uwolni nas od zafalowań. Jest jednak i na to pewna rada.
Zastosowanie Okien w Filtrach SOI
Co prawda nie pozbędziemy się zafalowań całkowicie, jak i nigdy nie osiągniemy filtrów o zboczach idealnie pionowych, ale możemy je minimalizować. Pamiętcie może, jak poradziliśmy sobie ze stratą zafalowań w DFT? Oczywiście, nieśmiertelne okna. W tym przypadku postępujemy dokładnie tak samo, choć może wykorzystujemy do tego nieco inne okna (np. okno Kaisera czy okno Czebyszewa).
Widzimy więc, że cyfrowe przetwarzanie sygnałów rządzi się pewnymi żelaznymi prawami, które obowiązują wszędzie: w DFT, w FFT i także w filtracji cyfrowej. Są to dwie generalne zasady:
- zwiększając ilość próbek (współczynników) polepszamy rozdzielczość (stromość zboczy)
- stosując okna zmniejszamy zafalowania charakterystyki kosztem rozdzielczości (zmniejszenie nachylenia)
Umiejętne korzystanie z tych dwóch praw pozwala na osiągniecie kompromisu pomiędzy rozdzielczością, czy też stromością zboczy, a zafalowaniami.
Faza Filtrów SOI
Na zakończenie tematu o filtrach SOI kilka zdań o fazie, gdyż, jak się okazuje, jest to bardzo ważna właściwość tych filtrów.
Rząd Filtrów w Zespołach Głośnikowych
Czy ma jakies znaczenie w zespole głosnikowym powiedzmy 2-droznym, jesli filtry nie są tego samego rzedu, np. dolnoprzepustowy (dp) jest 2-rzędu a górnoprzepustowy (gp) jest innego rzedu, np 3-go. Oczywiście, że ma. Najczęściej stosuje się jak ja to nazywam czysty podział 12/12 dB/okt (co nie koniecznie oznacza spójności fazowej), czasami III rzędu, a czasami podział z tłumieniami kombinowanymi. Zależy to od użytych głośników , konstrukcji obudowy, częstotliwosci podziału i założeń konstrukcyjnych.
Przesunięcia fazy są zależne od zastosowanego stopnia rzędu filtru. Każdy rzad filtru przesuwa fazę o 90 stopni, czyli końcowym wynikiem filtracji jest przesunięcie fazy o 90 st.
Dlatego zwykle kiedy mówimy o rzędzie zwrotnicy - mamy na myśli to jak zachowuje się wypadkowa faza akustyczna zespołu głośnikowego. Rzędy filtrów elektrycznych dobiera się zwykle na podstawie zmierzonych przebiegów amplitudy i fazy zastosowanych głośników w docelowej obudowie. Bardzo rzadko udaje się realizować zwrotkę w której rzędy filtrów elektrycznych i akustyczny rząd zwrotki są takie same.
Dobierając rzędy i topologie filtrów elektrycznych chodzi oczywiście o to żeby przesunięcie fazy akustycznej między wooferem a gwizdkiem (po filtracji, dla polaryzacji zgodnej) było mniej więcej stałe w jak najszerszym zakresie częstotliwości (i równe rzędowi zwrotki pomnożonemu przez 90 stopni) - co gwarantuje zgodną fazowo współpracę głośników w okolicach podziału (rzecz jasna dla woofera i gwizdka połączonych w polaryzacjach zgodnych dla 4th order i w przeciwnych dla 2nd i 6th order).
Praktyczne Aspekty Doboru Filtrów
Starajac sie zrobić w miare płaska charakterystyke przetwarzania zespołu głosnikowego dwudroznego, poczatkowo zastosowałem filtry 2 rzedu z ksiażki i mierzyłem przy pomocy SW charakterystykę wypadkowa głosników i zespołu. Okazało się, ze nie daje się zrobić płaskiej charakterystyki, wtedy do tweetera dodałem kondensator i dało sie (w miarę dobrze). Oczywiscie dodałem jakies kompensacje impedancji, odwróciłem polaryzację tweetera. Oczywiście na fazę nie patrzyłem wtedy.
Jeżeli chcesz się upewnić czy masz dobrą współpracę fazową głośników, to zmierz charakterystyki woofera i gwizdka oddzielnie (już z filtrami elektrycznymi), a następnie zobacz czy charakterystyka wypadkowa nie schodzi poniżej charakterystyk poszczególnych głośników. Jeżeli takie zjawisko zachodzi np. 2 oktawy powyżej podziału i wypadkowe SPL leży 0.5 - 1dB poniżej charakterystyki samego gwizdka to nie ma powodów do niepokoju. Jeżeli jednak zjawisko pracy w przeciwfazie zachodzi bliżej podziału i powoduje powstawanie większych dołków, to należy pomyśleć o zmianach w zwrotce.
Jeżeli chcesz sprawdzić charakterystykę fazową to zrób to sygnałem prostokątnym. Nie ma lepszego testu.
W dzisiejszych czasach filtry 6dB/okt to czysty anachronizm. Jeżeli już koniecznie chcemy osiągnąć koherentność czasową zespołu głośnikowego (do dziś nikt zresztą nie udowodnił że jest to konieczny warunek wysokiej wierności odtwarzania dźwięku), to najlepiej zrobić to przy użyciu filtrów cyfrowych i DSP.
tags: #filtracja #rzędu #definicja