Filtr o nieskończonej odpowiedzi impulsowej: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
PG (dyskusja | edycje)
drobne redakcyjne
m drobne techniczne, drobne redakcyjne
Linia 1: Linia 1:
'''Filtr o nieskończonej odpowiedzi impulsowej''' ({{ang.|infinite impulse response, IIR}}) – rodzaj [[filtr cyfrowy|filtru cyfrowego]], który w odróżnieniu od filtrów [[Filtr o skończonej odpowiedzi impulsowej|FIR]] jest układem rekursywnym. IIR oznacza nieskończoną odpowiedź impulsową (w polskiej literaturze stosowany jest również skrót NOI). Znaczy to tyle, że reakcja na pobudzenie o skończonym czasie trwania jest teoretycznie nieskończenie długa. Jest to efektem występowania pętli sprzężenia zwrotnego widocznej na schemacie blokowym (porównaj ze schematem filtru FIR).
'''Filtr o nieskończonej odpowiedzi impulsowej''' ('''IIR''' filter {{ang.|Infinite Impulse Response}}) – rodzaj [[filtr cyfrowy|filtru cyfrowego]], który w odróżnieniu od filtrów [[Filtr o skończonej odpowiedzi impulsowej|FIR]] jest układem rekursywnym. IIR oznacza nieskończoną odpowiedź impulsową (w polskiej literaturze stosowany jest również skrót NOI). Znaczy to tyle, że reakcja na pobudzenie o skończonym czasie trwania jest teoretycznie nieskończenie długa. Jest to efektem występowania pętli sprzężenia zwrotnego widocznej na schemacie blokowym (porównaj ze schematem filtru FIR).
: [[Plik:Schemat IIR 2.svg|Filtr IIR]]

[[Plik:Schemat IIR 2.svg|center|Filtr IIR]]


Na powyższym schemacie moduły <math>z^{-1}</math> oznaczają opóźnienie sygnału o jedną próbkę, natomiast <math>a_{i}</math> oraz <math>b_{i}</math> są współczynnikami filtru.
Na powyższym schemacie moduły <math>z^{-1}</math> oznaczają opóźnienie sygnału o jedną próbkę, natomiast <math>a_{i}</math> oraz <math>b_{i}</math> są współczynnikami filtru.
Linia 7: Linia 6:
[[transmitancja operatorowa|Transmitancję]] filtru IIR można opisać:
[[transmitancja operatorowa|Transmitancję]] filtru IIR można opisać:
: <math>H(z) = \frac{Y(z)} {X(z)}</math>
: <math>H(z) = \frac{Y(z)} {X(z)}</math>
gdzie:
gdzie: Y(z) – transformata Z wyjścia, X(z) – transformata Z wejścia
: <math>Y(z)</math> – transformata Z wyjścia,

: <math>X(z)</math> – transformata Z wejścia
lub po rozpisaniu wzorów na wielomiany opisujące bieguny i zera:
lub po rozpisaniu wzorów na wielomiany opisujące bieguny i zera:
: <math>H(z) = \frac{a_{0}+a_{1}z^{-1}+...+a_{p}z^{-p}} {1-(b_{0}z^{-1}+...+b_{q}z^{-q})}</math>
: <math>H(z) = \frac{a_{0}+a_{1}z^{-1}+...+a_{p}z^{-p}} {1-(b_{0}z^{-1}+...+b_{q}z^{-q})}</math>
Linia 30: Linia 30:
Rozważmy działanie filtru o nieskończonej odpowiedzi impulsowej na prostym przykładzie. Załóżmy, że chcemy estymować średni koszt użytkowania energii elektrycznej na podstawie rachunku za prąd z bieżącego miesiąca <math>x(n)</math> oraz oszacowanej wartości z poprzedniego miesiąca <math>y(n-1)</math>:
Rozważmy działanie filtru o nieskończonej odpowiedzi impulsowej na prostym przykładzie. Załóżmy, że chcemy estymować średni koszt użytkowania energii elektrycznej na podstawie rachunku za prąd z bieżącego miesiąca <math>x(n)</math> oraz oszacowanej wartości z poprzedniego miesiąca <math>y(n-1)</math>:


<math>y(n) = \frac{y(n-1) + x(n)}{2} = 0{,}5\cdot y(n-1) + 0{,}5 \cdot x(n) </math>
: <math>y(n) = \frac{y(n-1) + x(n)}{2} = 0{,}5\cdot y(n-1) + 0{,}5 \cdot x(n) </math>
gdzie:

gdzie: <math>n</math> jest numerem miesiąca, <math>x(n)</math> wartością rachunku za bieżący miesiąc, <math>y(n)</math> oszacowaną wartością w bieżącym miesiącu, a <math>y(n-1)</math> oszacowaniem wartości średniej w poprzednim miesiącu.
: <math>n</math> numer miesiąca,
: <math>x(n)</math> – wartość rachunku za bieżący miesiąc,
: <math>y(n)</math> oszacowana wartość w bieżącym miesiącu,
: <math>y(n-1)</math> – oszacowanie wartości średniej w poprzednim miesiącu.


Dla <math>n=1</math>, pojawia się problem brzegowy, ponieważ nie dysponujemy oszacowaniem <math>y(0)</math> - przyjmiemy, że <math>y(0)=0</math>. Przykładowo:
Dla <math>n=1</math>, pojawia się problem brzegowy, ponieważ nie dysponujemy oszacowaniem <math>y(0)</math> - przyjmiemy, że <math>y(0)=0</math>. Przykładowo:
: <math>y(1) = 0{,}5\cdot x(1) + 0{,}5 \cdot y(0) = 0{,}5 \cdot 24 + 0{,}5 \cdot 0 = 12</math>

<math>y(1) = 0{,}5\cdot x(1) + 0{,}5 \cdot y(0) = 0{,}5 \cdot 24 + 0{,}5 \cdot 0 = 12</math>
: <math>y(2) = 0{,}5\cdot x(2) + 0{,}5 \cdot y(1) = 0{,}5 \cdot 12 + 0{,}5 \cdot 27 = 19{,}5</math>

<math>y(2) = 0{,}5\cdot x(2) + 0{,}5 \cdot y(1) = 0{,}5 \cdot 12 + 0{,}5 \cdot 27 = 19{,}5</math>


Wartości kolejnych próbek wejściowych <math>x(n)</math> (rachunków) oraz szacowanych wartości średnich <math>y(n)</math> przedstawiono w tabeli:
Wartości kolejnych próbek wejściowych <math>x(n)</math> (rachunków) oraz szacowanych wartości średnich <math>y(n)</math> przedstawiono w tabeli:


{| class="wikitable"
:{| class="wikitable" style="text-align:center"
| width="80px" | <math>n</math>
! width="80px" | <math>n</math>
| width="30px" | 1
! width="30px" | 1
| width="30px" | 2
! width="30px" | 2
| width="30px" | 3
! width="30px" | 3
| width="30px" | 4
! width="30px" | 4
| width="30px" | 5
! width="30px" | 5
| width="30px" | 6
! width="30px" | 6
| width="30px" | 7
! width="30px" | 7
| width="30px" | 8
! width="30px" | 8
| width="30px" | 9
! width="30px" | 9
| width="30px" | 10
! width="30px" | 10
| width="30px" | 11
! width="30px" | 11
| width="30px" | 12
! width="30px" | 12
|-
|-
| <math>x(n)</math>
! <math>x(n)</math>
| 24
| 24
| 27
| 27
Linia 71: Linia 72:
| 0
| 0
|-
|-
| <math>y(n)</math>
! <math>y(n)</math>
| 12
| 12
| 19,5
| 19,5
Linia 87: Linia 88:


Wykres próbek wejściowych <math>x(n)</math> oraz wyjściowych <math>y(n)</math> przedstawiono na wykresie poniżej (sygnał określony jest tylko dla dyskretnych wartości <math>n</math>, natomiast linie pomagają zaobserwować trend sygnału):
Wykres próbek wejściowych <math>x(n)</math> oraz wyjściowych <math>y(n)</math> przedstawiono na wykresie poniżej (sygnał określony jest tylko dla dyskretnych wartości <math>n</math>, natomiast linie pomagają zaobserwować trend sygnału):
: [[Plik:Przykład filtru NOI.svg|600px|Przykładowy uśredniający filtr NOI]]

[[File:Przykład filtru NOI.svg|600px|Przykładowy uśredniający filtr NOI]]


Podobnie jak poprzednio, na podstawie przykładu można wysnuć następujące wnioski:
Podobnie jak poprzednio, na podstawie przykładu można wysnuć następujące wnioski:
Linia 95: Linia 95:


Realizację filtru przestawiono na rysunku poniżej:
Realizację filtru przestawiono na rysunku poniżej:
: [[Plik:Noi diag ex.svg|300px|Przykładowy uśredniający filtr NOI]]

[[File:Noi diag ex.svg|300px|Przykładowy uśredniający filtr NOI]]


== Zobacz też ==
== Zobacz też ==

Wersja z 08:24, 15 lip 2015

Filtr o nieskończonej odpowiedzi impulsowej (IIR filter ang. Infinite Impulse Response) – rodzaj filtru cyfrowego, który w odróżnieniu od filtrów FIR jest układem rekursywnym. IIR oznacza nieskończoną odpowiedź impulsową (w polskiej literaturze stosowany jest również skrót NOI). Znaczy to tyle, że reakcja na pobudzenie o skończonym czasie trwania jest teoretycznie nieskończenie długa. Jest to efektem występowania pętli sprzężenia zwrotnego widocznej na schemacie blokowym (porównaj ze schematem filtru FIR).

Filtr IIR

Na powyższym schemacie moduły oznaczają opóźnienie sygnału o jedną próbkę, natomiast oraz są współczynnikami filtru.

Transmitancję filtru IIR można opisać:

gdzie:

– transformata Z wyjścia,
– transformata Z wejścia

lub po rozpisaniu wzorów na wielomiany opisujące bieguny i zera:

Zera transmitancji determinowane są przez miejsca zerowe wielomianu licznika, zaś miejsca zerowe wielomianu mianownika określają bieguny transmitancji.

Zalety i wady

Ze względu na dużą elastyczność w kształtowaniu przebiegu funkcji za pomocą ilorazu wielomianów, znacznie łatwiej uzyskać pożądaną charakterystykę używając filtru IIR niskiego rzędu niż filtru FIR. Wynikają z tego dwie podstawowe zalety filtrów IIR w porównaniu do FIR:

  • Niska złożoność obliczeniowa
  • Niewielkie zapotrzebowanie na pamięć operacyjną.

Te zalety spowodowały duże zainteresowanie filtrami IIR i burzliwy rozwój teorii ich projektowania w latach 70. XX w., które przypadają na początki rozwoju technik CPS, gdy nie były dostępne procesory o odpowiedniej mocy.

Do wad filtrów IIR należy zaliczyć:

  • Rekursywność filtru wprowadza potencjalne zagrożenie utraty stabilności (odpowiedź filtru w sposób niekontrolowany narasta do nieskończoności); niestabilność może mieć miejsce wtedy, gdy bieguny transmitancji (miejsca zerowe wielomianu w mianowniku) znajdą się poza okręgiem jednostkowym na płaszczyźnie zespolonej
  • Projektowanie filtrów IIR jest znacznie trudniejsze niż w przypadku filtrów FIR (nie tylko ze względu na dodatkowy warunek zapewnienia stabilności)
  • Filtry IIR są znacznie bardziej wrażliwe na błędy zaokrągleń: zaokrąglenia wartości współczynników mogą znacząco zmienić charakterystykę, zaokrąglenia wartości sygnału i wyników pośrednich wprowadzają szum, który może się akumulować
  • Nie da się ich zaimplementować jako filtrów o liniowej fazie, czyli takich, które wprowadzają takie samo opóźnienie grupowe dla wszystkich składowych częstotliwościowych przepuszczanego sygnału.

Z uwagi na rosnącą wydajność układów cyfrowych i procesorów sygnałowych, filtry IIR nie są obecnie tak chętnie wykorzystywane jak dawniej, a największą popularność mają filtry FIR, które nie mają wyżej wymienionych wad.

Przykład

Rozważmy działanie filtru o nieskończonej odpowiedzi impulsowej na prostym przykładzie. Załóżmy, że chcemy estymować średni koszt użytkowania energii elektrycznej na podstawie rachunku za prąd z bieżącego miesiąca oraz oszacowanej wartości z poprzedniego miesiąca :

gdzie:

– numer miesiąca,
– wartość rachunku za bieżący miesiąc,
– oszacowana wartość w bieżącym miesiącu,
– oszacowanie wartości średniej w poprzednim miesiącu.

Dla , pojawia się problem brzegowy, ponieważ nie dysponujemy oszacowaniem - przyjmiemy, że . Przykładowo:

Wartości kolejnych próbek wejściowych (rachunków) oraz szacowanych wartości średnich przedstawiono w tabeli:

1 2 3 4 5 6 7 8 9 10 11 12
24 27 31 59 33 37 0 0 0 0 0 0
12 19,5 25,3 42,1 37,6 37,3 18,6 9,3 4,7 2,3 1,2 0,6

Wykres próbek wejściowych oraz wyjściowych przedstawiono na wykresie poniżej (sygnał określony jest tylko dla dyskretnych wartości , natomiast linie pomagają zaobserwować trend sygnału):

Przykładowy uśredniający filtr NOI

Podobnie jak poprzednio, na podstawie przykładu można wysnuć następujące wnioski:

  • zaprojektowany filtr wygładza sygnał wejściowy - nagła zmiana sygnału wejściowego dla została stłumiona,
  • od chwili sygnał wejściowy zanika. Sygnał wyjściowy dąży do zera, aczkolwiek tej wartości nigdy nie osiągnie. Jest to cecha charakterystyczna filtrów o nieskończonej odpowiedzi impulsowej (NOI).

Realizację filtru przestawiono na rysunku poniżej:

Przykładowy uśredniający filtr NOI

Zobacz też

Bibliografia

  • Bartosz Ziółko, M. Ziółko Przetwarzanie mowy, Wydawnictwa AGH, 2012.
  • Michał Tadeusiewicz, Signals and Systems, Wydawnictwo Politechniki Łódzkiej, 2004.
  • Przemysław Barański, Przekształcenie Z - zastosowania w filtracji cyfrowej sygnałów - zbiór zadań, Wydawnictwo Politechniki Łódzkiej, 2014.

Linki zewnętrzne