Mam trudności ze zrozumieniem, co w praktyce oznacza „nieskończoność” w IIR. Teoretycznie odpowiedź impulsowa jest wykorzystywana do sprzężenia zwrotnego. Jeśli to sprzężenie zwrotne nigdy nie kończy się w jaki sposób generowany jest wynik?
Mam trudności ze zrozumieniem, co w praktyce oznacza „nieskończoność” w IIR. Teoretycznie odpowiedź impulsowa jest wykorzystywana do sprzężenia zwrotnego. Jeśli to sprzężenie zwrotne nigdy nie kończy się w jaki sposób generowany jest wynik?
Odpowiedzi:
Aby odpowiedzieć na to pytanie, musisz wiedzieć, co oznaczają „Impuls” i „Odpowiedź” ...
„Impuls” to prosty puls. Cyfrowo byłaby to próbka o maksymalnej wartości, podczas gdy wszystkie inne próbki przed i po niej byłyby zerowe. Jeśli tego wysłuchasz, usłyszysz coś w rodzaju popu lub petardy.
„Odpowiedź” jest wyjściem filtra (lub czegoś innego) otrzymuje impuls.
Na przykład możesz posłuchać „odpowiedzi impulsowej pokoju”, wchodząc do pokoju, wykonując proste klaśnięcie ręką i słuchając echa. Zajęłoby trochę praktyki, aby klaśnięcie ręki było jak najbardziej „ostre”. Uzyskanie odpowiedzi impulsowej filtra jest takie samo, ale zamiast klaskać ręką używasz prostego impulsu, a zamiast pokoju masz filtr.
Jeśli spojrzysz na odpowiedź impulsową filtra lub pomieszczenia, zobaczysz, że wyjście impulsuje przez pewien czas po impulsie (a czasami również się wcześniej porusza). W pokoju słyszałeś to poruszenie jako echo. W filtrze poruszenie to jest bezpośrednio związane z częstotliwością i reakcją fazową filtra. W pomieszczeniu czas, w którym echo słyszysz, nazywa się „czasem pogłosu” - nie ma odpowiedniego terminu dla filtra, ale jest on częścią odpowiedzi impulsowej.
Teraz filtr FIR (Finite Impulse Response) jest skończony, ponieważ czas odpowiedzi impulsowej jest ograniczony przez matematykę. Matematycznie niemożliwe jest, aby czas odpowiedzi impulsu przekroczył liczbę uderzeń w filtrze - dlatego jest skończony .
Natomiast filtr IIR nie ma tego matematycznego ograniczenia w czasie odpowiedzi impulsowej. Jeśli otrzyma się nieskończoną matematyczną precyzję, filtr IIR może poruszać wyjściami na zawsze. Oczywiście, w sensie praktycznym, nigdy nie trwa to wiecznie, ponieważ w pewnym momencie drganie staje się mniejsze niż precyzja zastosowanej matematyki, a więc znika.
Odpowiedź impulsowa jest sygnaturą filtra. W przypadku filtra FIR odpowiedź impulsowa daje bezpośredni obraz współczynników filtra. Impuls jest pojedynczą próbką o maksymalnej amplitudzie, wszystkie próbki przed i po są zerowe. (Jest to cyfrowy odpowiednik impulsu Diraca.)
W momencie impulsu jego wartość jest mnożona przez (patrz dolny schemat). Pozostałe próbki mają zero, więc wyjście y jest równe b 0 (przypuszczam, że maksymalna wartość impulsu wynosi 1). Jedna próbka później impuls przesunął się o jeden blok z - 1 i jest mnożony przez b 1 . Ponownie wszystkie pozostałe wartości są równe zero, więc wynikiem jest b . I tak dalej. Podczas przesunięcia impulsów przez filtr masz kolejne wartości b I na wyjściu. Po N próbkach impuls jest usuwany z filtra, a sygnał wyjściowy ponownie staje się zerowy.
W przypadku filtra IIR nie jest tak oczywiste wyprowadzanie współczynników filtra z odpowiedzi impulsowej.
IIR
W filtrze IIR (część) przetworzony sygnał jest przesyłany z powrotem do wejścia. Oznacza to, że zawsze będą jakieś resztki pętli sygnału. Jednak przez większość czasu ta część sygnału będzie coraz mniejsza i ostatecznie wyniesie zero, ale teoretycznie nigdy nie znika całkowicie. Poniższy schemat blokowy pokazuje filtr biquad, często stosowaną implementację filtra IIR. Lewa gałąź przyjmuje (opóźnione) wartości wejściowe, prawa gałąź działa (opóźnione) wartości wyjściowe. ( Blok reprezentuje opóźnienie próbki 1. Biquady często są kaskadowane.
FIR
filtrów FIR z drugiej strony mają liniową drogę od wejścia do wyjścia. Po próbkowaniu N sygnał wejściowy (jak impuls Diraca) zostanie przesunięty i to już koniec.
Filtry FIR są z natury stabilne, podczas gdy filtry IIR niekoniecznie.
Istnieją dwie szerokie klasy filtrów cyfrowych, nieskończona odpowiedź implode (IIR) i skończona odpowiedź impulsowa (FIR). Ponownie, ogólnie, filtry IIR są oparte na równaniach, a filtry FIR - na tabelach.
Filtry IIR są bardziej podobne do filtrów analogowych w świecie rzeczywistym. Rozważmy na przykład prosty rozkład wykładniczy, taki jak w przypadku analogowego filtra dolnoprzepustowego RC. Reakcja wyjściowa na wejście krokowe jest wykładnicza, która jest coraz bliżej wejścia. Zauważ, że wykładniczy nigdy tak naprawdę nie dociera do wyjścia, tylko na tyle blisko, że nie przejmujemy się ani nie możemy zmierzyć błędu. W tym sensie taki filtr jest nieskończony. Filtr IIR ma te same cechy.
Bardzo powszechny jednobiegunowy filtr dolnoprzepustowy IIR można wyrazić jako:
FILT <- FILT + FF (NOWOŚĆ - FILT)
Oznacza to, że każda iteracja wyjścia jest przenoszona o ustalony ułamek (FF, „ułamek filtra”) na odległość do wejścia. Łatwo to sobie wyobrazić, gdy FF = 1/2. Jeśli wszystko ma wartość 0, a sygnał wejściowy nagle przechodzi do 1 i pozostaje tam (krok jednostkowy), wówczas wartość wyjściowa wyniesie 1/2, 3/4, 7/8, 15/16 itd. To jest nieskończona seria. Ostatecznie wartość będzie tak bliska 1, że zostanie wyrażona jako 1, ponieważ wartości cyfrowe w komputerze nie mają nieskończonej precyzji.
Filtry FIR działają na zupełnie innej zasadzie. Skończony ostatni fragment sygnału wejściowego jest zapisywany, a każda z zapisanych wartości jest mnożona przez inny współczynnik, a następnie wszystkie wyniki dodawane w celu uzyskania filtru wyjściowego dla tej iteracji. Następna iteracja najstarszej zapisanej wartości jest odrzucana, pozostałe są przesuwane o jedno miejsce starsze, a nowe dane wejściowe są umieszczane w zwolnionym miejscu. Nowy zapisany fragment kodu jest następnie mnożony przez współczynniki itp. Proces ten nazywany jest „splotem”, a tabela współczynników jest często nazywana jądrem filtra. Przy pomocy tego rodzaju filtrów można zrobić kilka wymyślnych i użytecznych rzeczy, tworząc kreatywność przy użyciu współczynników. To cały temat na swój temat, do którego nie będę teraz wchodził. Ponieważ jednak skończony fragment danych wejściowych jest przechowywany w pamięci, jakakolwiek część sygnału wejściowego może wpływać na sygnał wyjściowy tylko przez określony czas. Gdy próbka wejściowa zostanie przesunięta na koniec przechowywanego fragmentu kodu, zniknie i nie będzie już miała wpływu na wynik.
Na ten temat napisane są całe książki i możesz spędzić kilka semestrów kursów uniwersyteckich, zagłębiając się w to głębiej. Mam nadzieję, że mój 30-sekundowy przegląd wystarcza, by odpowiedzieć na twoje pytanie.
Jedną z kwestii, o których jeszcze nie wspomniano, jest to, że filtry IIR można dalej podzielić na dwa style: te, w których etapy można uszeregować w taki sposób, że każdy etap jest całkowicie zależny od jego własnych poprzednich wartości i tych z wcześniejszych etapów oraz te, w których etapy nie mogą być klasyfikowane (ponieważ dwa lub więcej etapów jest od siebie zależnych). Etapy w filtrze FIR mogą odwoływać się do poprzednich wyników innych etapów, pod warunkiem, że można je uszeregować jak w poprzednim stylu IIR, a żaden etap nie odnosi się do jego wcześniejszych wyników.
Jeśli stopnie w filtrze IIR można uszeregować i jeżeli całkowita wartość współczynników sprzężenia zwrotnego dla danego stopnia jest mniejsza niż jeden, gwarantuje się, że filtr IIR jest stabilny. Jeśli, na przykład, stopień zawiera pewną ilość sygnału z poprzednich stopni, plus połowę poprzedniej wartości tego stopnia i 1/4 poprzedniej wartości, minus 1/8 poprzedniej wartości, całkowita wielkość siebie sprzężenie zwrotne będzie wynosić 7/8, więc przy braku dalszych danych z niższych etapów wielkość wkładu z samo-sprzężenia zmniejszałaby się o 12,5% przy każdej iteracji.
FIR, wykonuje swoją matematykę na skończonej liczbie elementów, powiedzmy 32 lub 12 lub pewną liczbę, ale to właśnie robi matematyka, bierze skończoną liczbę elementów i wykonuje filtr tylko na tych.
IIR dokonuje obliczeń matematycznych na wszystkich próbkach, które podajesz. Jeśli nakarmisz go 10 próbkami i zatrzymasz, to zadziała na 10 próbkach, jeśli karmisz go 1 000 000 000 próbek, matematyka działała na 1 000 000 000 próbek. A jeśli pozostawisz rzecz działającą w nieskończoność, zbliżającą się do nieskończoności (pozwól jej działać wiecznie), wówczas liczba elementów jest nieskończona zbliżająca się do nieskończoności. Ponieważ słowo skończone wyraźnie odnosi się do drugiego modelu, a model IIR ma nie mieć skończonej liczby próbek, słowo nieskończone jako przeciwieństwo skończonego po prostu brzmi lepiej niż nieokreślone lub jakieś inne podobne słowo.