Berkeley Nuclear Data Software
SignalProcessing.h
Go to the documentation of this file.
1 #ifndef _SIGNAL_PROCESSING_H_
2 #define _SIGNAL_PROCESSING_H_
3 #include <cmath>
4 
5 
6 
9 template <class T> class SignalProcessing
10 {
11 public:
17  static double* simpleMovingAverage(T* a_signal,
18  unsigned int a_length,
19  unsigned int a_windowSize
20  );
28  static double* iterativeMovingAverage(T* a_signal,
29  unsigned int a_length,
30  unsigned int a_windowSize,
31  unsigned int a_numIter
32  );
36  static double* singlePoleLowPassFilter(T* a_signal,
37  unsigned int a_length,
38  double a_xDecay
39  );
40 
44  static double* singlePoleHighPassFilter(T* a_signal,
45  unsigned int a_length,
46  double a_xDecay
47  );
48 
52  static double* fourStageLowPassFilter(T* a_signal,
53  unsigned int a_length,
54  double a_xDecay
55  );
56 
59  static double* trapezoidalFilter(T* a_signal,
60  unsigned int a_length,
61  int a_k,
62  int a_m
63  );
64 
68  double calculateTIPS(T* a_signal,
69  unsigned int a_length,
70  int a_kFast,
71  int a_mFast,
72  int a_kSlow,
73  int a_mSlow);
74 };
75 
76 #include "SignalProcessing.hpp"
77 
78 
79 //implementation included in the hpp file to allow for template inclusion
80 //using header only
81 
82 #endif
Definition: SignalProcessing.h:10
static double * singlePoleHighPassFilter(T *a_signal, unsigned int a_length, double a_xDecay)
Definition: SignalProcessing.hpp:91
static double * simpleMovingAverage(T *a_signal, unsigned int a_length, unsigned int a_windowSize)
Definition: SignalProcessing.hpp:4
static double * iterativeMovingAverage(T *a_signal, unsigned int a_length, unsigned int a_windowSize, unsigned int a_numIter)
Definition: SignalProcessing.hpp:48
double calculateTIPS(T *a_signal, unsigned int a_length, int a_kFast, int a_mFast, int a_kSlow, int a_mSlow)
Definition: SignalProcessing.hpp:174
static double * trapezoidalFilter(T *a_signal, unsigned int a_length, int a_k, int a_m)
Definition: SignalProcessing.hpp:145
static double * fourStageLowPassFilter(T *a_signal, unsigned int a_length, double a_xDecay)
Definition: SignalProcessing.hpp:112
static double * singlePoleLowPassFilter(T *a_signal, unsigned int a_length, double a_xDecay)
Definition: SignalProcessing.hpp:71