1. Wstępne przetwarzanie sygnałów

1.3. Filtracja cyfrowa

Pod pojęciem filtru cyfrowego rozumie się pewien algorytm, który podobnie jak filtr analogowy zdolny jest zmienić charakterystykę widmową sygnału (dyskretnego). Projektowanie filtrów cyfrowych stanowi sztukę samą w sobie. Czytelnik zainteresowany projektowaniem filtrów cyfrowych zmuszony będzie sięgnąć do literatury, po szczegóły. W niniejszym punkcie podany będzie tylko zarys metod filtracji cyfrowej. Symbole użyte w opisie przedstawione są na rysunku 1.2.

 

Rys. 1.2. Filtracja cyfrowa: x(n) - ciąg wejściowy, y(n) - ciąg wyjściowy

Działanie filtru cyfrowego w dziedzinie czasu opisuje równanie liniowe różnicowe (1.7).

  y(n)+a_1y(n-1)+...+a_My(n-M)=b_0x(n)+b_1x(n-1)+...+b_{N-1}x(n-N+1)=0 (1.7)

Transmitancję filtru, przy założeniu zerowych warunków początkowych, opisuje się w dziedzinie zmiennej zespolonej (1.8):

 

  H(z)=\frac{Y(z)}{X(z)}   (1.8)

Po konfrontacji z równaniem różnicowym liniowym (1.7) przyjmuje ona postać:

 

  H(z)=\frac{b_0+b_1z^{-1}+b_2z^{-2}+...+b_{N-1}z^{-N+1}}{1+a_1z^{-1}+a_2z^{-2}+...+a_Mz^{-M}} (1.9)

W przypadku szczególnym, gdy ciąg wejściowy x(n) ma postać:

 

  x( n) =\delta ( n) =\begin{cases} 1, & dla\ n=0\\ 0, & dla\ n\neq 0 \end{cases} (1.10)


ciąg wyjściowy zwany jest odpowiedzią impulsową filtru i równoważny jest odwrotnej transformacie Z transmitancji filtru:

 

    y(n)=h(n)=Z^{-1}\left[H(z)\right] (1.11)

Dla liniowego układu przyczynowego, tzn. gdy h(n)=0, dla n<0:

  Y(z)=H(z)X(z)  (1.12)


Zatem:

  y(n)=x(n)\ast h(n)=\sum_{m=0}^{n}{x(n)h(n-m)} (1.13)


Warunkiem koniecznym i wystarczającym stabilności filtru jest, aby:

 

  \sum_{n=0}^{\infty}{\left|h(n)\right| (1.14)


co pociąga za sobą konieczność przynależności biegunów transmitancji H(z) do koła jednostkowego |z|<1.

Struktury filtrów cyfrowych można podzielić na dwie podstawowe grupy:

1. Filtry o skończonej odpowiedzi impulsowej: SOI (Finite Impulse Response: FIR),

dla których:

 

   a_1=a_2=...=a_M=0 (1.15)


a co za tym idzie:

 

  h( n) =\begin{cases} b_{n} , & n=0,1,2,...,N-1\\ 0, & dla\ pozostałych \end{cases} (1.16)


Na rys.1.3 przedstawiono przykładową strukturę filtru SOI o transmitancji:                    

 

   H(z)=b_0+b_1z^{-1}+b_2z^{-2}+b_3z^{-3}+b_4z^{-4} (1.17)

Rys. 1.3.  Przykładowa struktura filtru SOI

2. Filtry o nieskończonej odpowiedzi impulsowej: NOI (Infinite Impulse Response: IIR), dla których wielomian w mianowniku (1.9) jest różny od jedności. W formie przykładu, na rys.1.4 przedstawiona została struktura kanoniczna tzw. sekcji bikwadratowej NOI o transmitancji:

 

  H(z)=\frac{b_0+b_1z^{-1}+b_2z^{-2}}{1+a_1z^{-1}+a_2z^{-2}} (1.18)

Rys. 1.4.  Struktura kanoniczna sekcji bikwadratowej NOI

Charakterystyki częstotliwościowe filtru otrzymuje się zakładając poruszanie się po okręgu jednostkowym z=ejq:

 

  H(\theta)=\frac{Y(z)}{X(z)}\left|\begin{matrix}\\z=e^{j\theta}\\\end{matrix}\right. (1.19)

gdzie symbol q oznacza pulsację unormowaną.

Projektowanie filtru cyfrowego zasadniczo sprowadza się do dwu metod:

1. Przekształcenie transmitancji filtru analogowego G(s) do postaci dyskretnej

 

  H(z)=Z\left[H(s)\right] (1.20)

 

2. Bezpośrednie zaprojektowanie filtru cyfrowego G(z) z odpowiednią charakterystyką częstotliwościową.

Jako przykłady niech posłużą następujące filtry cyfrowe:

  • Filtr dolnopasmowy:            y_n=\frac{1}{2}(x_n+x_{n-1})\begin{matrix}&\\\end{matrix}\Rightarrow\begin{matrix}&\\\end{matrix}H(z)=\frac{1}{2}(1+z^{-1})
  • Filtr górnopasmowy:            y_n=(x_n-x_{n-1})\begin{matrix}&\begin{matrix}&\\\end{matrix}\\\end{matrix}\Rightarrow\begin{matrix}&\\\end{matrix}H(z)=(1-z^{-1})
  • Filtr środkowopasmowy:     y_n=\frac{1}{2}(x_n-x_{n-2})\begin{matrix}&\\\end{matrix}\Rightarrow\begin{matrix}&\\\end{matrix}H(z)=\frac{1}{2}(1-z^{-2})

Tak opisane filtry (niskiego rzędu) mają oczywiście nienajlepsze charakterystyki częstotliwościowe, szczególnie w sąsiedztwie częstotliwości odcięcia i mogą być traktowane wyłącznie w charakterze przykładów akademickich.

Projektowanie filtrów cyfrowych jest zadaniem bardzo ambitnym. Na szczęście dostępne są bardzo efektywne narzędzia do projektowania filtrów, o charakterze inżynierskim. Należy do nich przede wszystkim pakiet programowy MATLAB.

Projektowanie filtrów w tym środowisku polega na umiejscowieniu charakterystyki w unormowanym układzie współrzędnych (rys.1.5), a następnie, po wywołaniu stosownych funkcji, wyznaczenie najpierw rzędu filtru (parametry N i M), a następnie składowych wektorów współczynników a i b. Podobne narzędzia dostępne są w zintegrowanych pakietach oprogramowania narzędziowego do projektowania wirtualnych przyrządów pomiarowych.

 

Rys. 1.5. Charakterystyka amplitudowa filtru w unormowanym układzie współrzędnych