-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathECGBaselineRemoval.h
26 lines (22 loc) · 984 Bytes
/
ECGBaselineRemoval.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#pragma once
#include "ModulesMethods.h"
#include "ModulesInterfaces.h"
class ECGBaselineRemoval : public ECGBaselineModule
{
public:
ECGBaselineRemoval();
~ECGBaselineRemoval();
void runModule (const ECGSignal &, const ECGInfo &, ECGSignalChannel &);
void setParams(ParametersTypes &);
private:
BASELINE_REMOVAL_METHOD baselineRemovalMethod;
int span;
int order;
double cutoff_frequency;
double attenuation;
double ripple;
void chebyshevBaselineRemoval(ECGSignalChannel &inputSignal, ECGSignalChannel &outputSignal, const ECGInfo &ecgInfo, int order, double cutoffFrequency, double attenuation);
void butterworthBaselineRemoval(ECGSignalChannel &inputSignal, ECGSignalChannel &outputSignal, const ECGInfo &ecgInfo, int order, double cutoffFrequency, double ripple);
void movingAverageBaselineRemoval(ECGSignalChannel &inputSignal, ECGSignalChannel &outputSignal, int span);
double calculateAvgValueOfNeighbours(gsl_vector *signal, int currentIndex, int span);
};