EKGlfilter Klassenreferenz

Diese Klasse implementiert einen Tiefpaßfilter. Mehr ...

#include <EKGlfilter.h>

Klassendiagramm für EKGlfilter:

EKGfilter EKGdevice

Aufstellung aller Elemente

Öffentliche Methoden

 EKGlfilter ()
 Konstruktor.
float setLFreq (float x)
 Grenzfrequenz des Tiefpaßfilters setzen.
float getLFreq ()
 Grenzfrequenz erfragen.
virtual void input (float *d)
 Überschreiben von EKGdevice::input().


Ausführliche Beschreibung

Diese Klasse implementiert einen Tiefpaßfilter.

Der Tiefpaßfilter 2. Ordnung dient der Rauschunterdrückung.

Tiefpaßfilter

Der Tiefpaßfilter ist einem aktiven Filter 2. Ordnung nachempfunden.

		   +------------------------+
		   |		---         |
		   |             |          |
		   |        C2 -----   C1 -----
                   |           -----      -----
         R1        |   R2        |   |\     |
 e o-----/\/\/\/---+---/\/\/\/---+---|+\    |
   o                                 |  >---+------o a
   |                             +---|-/    |      o
   |				 |   |/     |      |
  ---				 +----------+     ---
 
Der Filter genügt der DGL:
    a'' = - K a' + L ( e - a ) 
 
mit
    K = 1 / ( C1 ( R1 || R2 ) )
    L = 1 / ( R1 R2 C1 C2 )
 
Für eine sinvolle Filtercharakteristik werden die Bauteile wie folgt gewählt:
    R1 = R2 = R
    C1 = C * 2/d
    C2 = C * d/2
 
Daraus ergibt sich für die Parameter der DGL
    K = d / RC = d * omega
    L = 1 / (RC)^2 = omega^2
 
Die Grenzfrequenz des Filters ist
   f = omega / 2pi = 1 / ( 2pi * RC )
 
Die Dämpfung d bestimmt die Filtercharakteristik.
 d = 0          Hier setzt Oszillation ein!
 d = 1          Tschebyscheff:  steile Flanke, Welligkeit
 d = sqrt( 2 )  Butterworth:  flacher Amplitudenverlauf
 d = sqrt( 3 )  Bessel:  optimales Laufzeitverhalten, nicht so steile Falnke
 
Es wird ein Tschebyscheff-Filter implementiert. Die Frequenz kann mit setLFreq() gesetzt werden und ist auf 10 Hz voreingestellt.

Autor:
Lars Stollenwerk, Oktober 2002

Dokumentation der Elementfunktionen

float EKGlfilter::setLFreq ( float  x  ) 

Grenzfrequenz des Tiefpaßfilters setzen.

Parameter:
x neue Frequenz in Hz.
Rückgabe:
alter Wert

void EKGlfilter::input ( float *  d  )  [virtual]

Überschreiben von EKGdevice::input().

Hier werden die DGL für die Filter numerisch gelöst.

Tiefpaßfilter

Die DGL a'' = - K a' + L ( e - a ) wird in zwei Komponenten umgeschrieben:

     a' = A
     A' = - K A + L ( e - a )
     
und in Differenzengleichungen überführt. TS ist die Zeitschrittweite EKG_TimeStep.
     Delta a = TS * A
     Delta A = - TS K A + TS L ( e - a )
     

Erneute Implementation von EKGdevice.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:

Erzeugt am Mon Feb 8 23:06:55 2010 für EKG Projekt von  doxygen 1.5.6