Algorithmus (IIR-Filter)

IIR-Filter (Infinite Impulse Response) sind digitale Filter mit Feedback, wie im folgenden Bild gezeigt.

Image:IIR_Filter_1.png

Digitale Filter werden auch häufig in Form einer Differenzgleichung beschrieben, die das Verhältnis zwischen Ausgabe- und Eingabesignal definiert.

b_0*x(n)+b_1*x(n-1)+ \cdots +b_N*x(n-N)-a_0*y(n)-a_1*y(n-1)- \cdots -a_M*y(n-M) = 0

Dann:

y(n) = \frac{1}{a_0} \left ( b_0*x(n)+b_1*x(n-1)+ \cdots +b_N*x(n-N)-a_1*y(n-1)-a_2*y(n-2)- \cdots -a_M*y(n-M) \right ) = \frac{1}{a_0} \left ( \sum_{i=0}^N b_i*x(n-i) - \sum_{j=1}^M a_j*y(n-j) \right )

wobei a_0 \ne 0, N die vorgekoppelte Filterordnung, bi der vorgekoppelte Filterkoeffizient, M die rückgekoppelte Filterordnung, ai der rückgekoppelte Koeffizient, x(n) das Eingabesignal und y(n) das Ausgabesignal ist. Der Term \sum_{j=1}^M a_j*y(n-j) ist die Rückkopplung.

Darstellung von Digitalfiltern

In Origin gibt es vier Ausgaben für die Darstellung des IIR-Filters.

  • Übertragungsfunktion
  • Die Übertragungsfunktion des IIR-Filters wird in der Z-Domäne durch das Verhältnis von zwei Polynomialen des Komplex z - 1 dargestellt. Um die Übertragungsfunktion des IIR-Filters zu suchen, ordnen Sie die obenstehende Gleichung folgendermaßen neu an:

    \sum_{i=0}^N b_i*x(n-i) = \sum_{j=0}^M a_j*y(n-j)

    Die Z-Transformation wird dargestellt als:

    X(z) = \sum_{}^{} x(n)z^n

    Nehmen Sie die Z-Transformation von jeder Seite der Filtergleichung. Sie erhalten:

    \sum_{i=0}^N b_i*z^{-i}*X(z) = \sum_{j=0}^M a_j*z^{-j}*Y(z)

    Die Übertragungsfunktion des IIR-Filters in der Z-Domäne stellt Folgendes dar:

    H(z) = \frac{Y(z)}{X(z)} = \frac{\sum_{i=0}^N b_iz^{-i}}{\sum_{j=0}^M a_jz^{-j}}

  • Nullstellen-Pole-Verstärkung
  • Wie bei der obenstehenden Übertragungsfunktion gezeigt, ist der Zähler für die Position der Nullstellen und der Nenner für die Pole bestimmt. Die Übertragungsfunktion kann dann in Form Nullstellen-Pole-Verstärkung neu geschrieben werden.

    H(z) = \frac{q(z)}{p(z)} = k*\frac{(z-q_1)(z-q_2) \cdots (z-q_N)}{(z-p_1)(z-p_2) \cdots (z-p_M)} = k* \frac{\prod_{i=1}^N (z-q_i)}{\prod_{j=1}^M (z-p_j)}

    wobei k die Verstärkung ist, qi und pj die Nullstellen bzw. die Pole der Übertragungsfunktion sind.

  • Zustand
  • Die Darstellung von Zustand-Raum für das Filtersystem kann definiert werden als:

    x(n + 1) = Ax(n) + Bu(n)

    y(n) = Cx(n) + Du(n)

    wobei u(n) die Eingabe ist, x(n) der Zustandsvektor, y(n) die Ausgabe, A eine m x m-Matrix, m die Filterordnung, B ein Spaltenvektor, C der Zeilenvektor und D ein Skalar.

  • Kaskadierte IIR-Filter - Second Order Section (SOS)
  • Die äquivalente SOS-Darstellung der Übertragungsfunktion des Digitalfilters wird folgendermaßen geschrieben:

    H(z) = g \prod_{k=1}^L H_k(z) = g \prod_{k=1}^L \frac{b_{0k}+b_{1k}*z^{-1}+b_{2k}*z^{-2}}{a_{0k}+a_{1k}*z^{-1}+a_{2k}*z^{-2}}

    wobei g die Verstärkung ist und b0k,b1k,b2k die Zählerkoeffizienten sowie a0k,a1k,a2k die Nennerkoeffizienten sind. Wenn die Filterordnung m gerade ist, L = m / 2, wenn m ungerade ist, L = (L + 1) / 2. SOS kann als folgende L-mal-6-Matrix dargestellt werden.

    SOS = 
 \begin{bmatrix}
 b_{01} & b_{11} & b_{21} & a_{01} & a_{11} & a_{21} \\
 b_{02} & b_{12} & b_{22} & a_{02} & a_{12} & a_{22} \\
 b_{03} & b_{13} & b_{23} & a_{03} & a_{13} & a_{23} \\
 \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\
 b_{0L} & b_{1L} & b_{2L} & a_{0L} & a_{1L} & a_{2L} \\
 \end{bmatrix}

IIR-Filter entwerfen

Die gängige Vorgehensweise, um einen IIR-Filter zu entwerfen, ist:

  1. Filterspezifikation festlegen.
  2. Legen Sie den analogen Filterprototypen des Tiefpasses fest. Die verfügbaren Prototypen, die von Origin unterstützt werden, sind Butterworth, Tschebyscheff Typ I, Tschebyscheff Typ II und Elliptisch.
  3. Methode Quadrierte Betragsantwortfunktion Übertragungsfunktion von analogen Filtern
    Butterworth |H_a(j \Omega)|^2 = \frac{1}{1+ \Omega^{2N}} H_a(s) = \frac{q(s)}{p(s)} = \frac{g}{(s-p_1)(s-p_2)\cdots (s-p_N)} = \frac{g}{\prod_{k=1}^N (s-p_k)}
    Tschebyscheff Typ I |H_a(j \Omega)|^2 = \frac{1}{1+ \varepsilon^2 T_N^2(\Omega)} H_a(s) = \frac{q(s)}{p(s)} = \frac{g}{(s-p_1)(s-p_2)\cdots (s-p_N)} = \frac{g}{\prod_{k=1}^N (s-p_k)}
    Tschebyscheff Typ II |H_a(j \Omega)|^2 = \frac{1}{1+ (\varepsilon^2 T_N^2(\frac{1}{\Omega}))^{-1}} = \frac{\varepsilon^2 T_N^2(\frac{1}{\Omega})}{1+ \varepsilon^2 T_N^2(\frac{1}{\Omega})} H_a(s) = \frac{q(s)}{p(s)} = g \frac{(s-q_1)(s-q_2)\cdots (s-q_N)}{(s-p_1)(s-p_2)\cdots (s-p_N)} = g \prod_{k=1}^N \frac{(s-q_k)}{(s-p_k)}
    Elliptisch |H_a(j \Omega)|^2 = \frac{1}{1+ \varepsilon^2 U_N^2(\Omega)} H_a(s) = \frac{q(s)}{p(s)} = g \frac{(s-q_1)(s-q_2)\cdots (s-q_N)}{(s-p_1)(s-p_2)\cdots (s-p_N)} = g \frac{\prod_{i=1}^N (s-q_i)}{\prod_{j=1}^N (s-p_j)}

    In der obenstehenden Tabelle ist die Frequenz, N die Filterordnung, \varepsilon die maximale Oszillation in der Passbandfrequenzantwort, TN die Tschebyscheff-Polynomiale, UN die Jacobische elliptische Funktion, g die Skalar-Verstärkung, s die Ebene der Laplace-Transformation, qk oder qi die Nullstelle und pk oder pj die Pole.

  4. Frequenztransformation für Analogfilter
  5. Transformieren Sie den Tiefpassfilter in einen Hochpass-, Bandpass- oder Bandsperrfilter mit der gewünschten Abschneidefrequenz. In Origin wird die Form Zustand-Raum in der Berechnung der Frequenztransformation verwendet. Nehmen Sie an, dass die ursprüngliche Übertragungsfunktion des Tiefpassfilters H(s') ist und die Übertragungsfunktion nach der Transformation H(s).

    • Tiefpass in Tiefpass - Ein analoger Tiefpassfilter mit einer Abschneidefrequenz von 1 rad/s wird in einen Tiefpassfilter mit einer festgelegten Abschneidefrequenz transformiert.
      H(s)= H(s')|_{s'=s/\omega_0}
    • Tiefpass in Hochpass
      H(s) = H(s')|_{s'=\omega_0/s}
    • Tiefpass in Bandpass
      H(s) = H(s')|_{s'= \frac{\omega_0}{B_{\omega}} \frac{(s/\omega_0)^2+1}{s/\omega_0}}
    • Tiefpass in Bandsperre
      H(s) = H(s')|_{s'= \frac{B_{\omega}}{\omega_0} \frac{s/\omega_0}{(s/\omega_0)^2+1}}

    wobei 0 = sqrt(1 * 2) die Mittenfrequenz ist, B = 2 - 1 die Bandbreite sowie 1 und 2 die untere bzw. oberen Bandkante sind.

  6. Konvertieren Sie einen Analogfilter in einen Digitalfilter.
  7. Um einen Analogfilter in einen Digitalfilter zu konvertieren, verwendet Origin die bilineare Transformation, die durch folgenden Ausdruck definiert ist:

    s = \frac{1-z^{-1}}{1+z^{-1}}

Vorwärts- und Rückwärtsfilterung

Origin lässt die Durchführung von Vorwärts- und Rückwärtsfilterung zu, was zu einer Nullphasenverzerrung führt. Zuallererst wird die Filterung der Daten in Vorwärtsrichtung durchgeführt und dann die gefilterten Daten umgekehrt, um sie rückwärts durch den Filter laufen zu lassen.