class EKGlfilter

Diese Klasse implementiert einen Tiefpaßfilter.

Inheritance:

EKGlfilter - EKGfilter - EKGdevice


Public Methods

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


Inherited from EKGfilter:

Public Methods

obool set_enable( const bool x )
obool get_enable()

Protected Fields

obool enable


Inherited from EKGdevice:

Public Methods

ovirtual void connectTo( EKGdevice* d )

Protected Fields

oEKGdevice* nextDevice


Documentation

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.

o EKGlfilter()
Konstruktor

ofloat setLFreq( float x )
Grenzfrequenz des Tiefpaßfilters setzen.
Parameters:
x - neue Frequenz in Hz.
Returns:
alter Wert

ofloat getLFreq()
Grenzfrequenz erfragen

ovirtual void input( float* d )
Ü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 )
     


This class has no child classes.
Author:
Lars Stollenwerk, Oktober 2002

Alphabetic index Hierarchy of classes



This page was generated with the help of DOC++.