|
HARDT - The Ham Radio DSP Toolkit
|
1 #ifndef __HMOVINGAVERAGEFILTER_H
2 #define __HMOVINGAVERAGEFILTER_H
17 void Init(
size_t blocksize,
int m) {
18 if( _previous !=
nullptr ) {
21 _previous =
new double[m - 1];
22 memset((
void*) _previous, 0,
sizeof(T) * (m - 1));
29 HFilter<T>(writer, blocksize, probe),
38 HFilter<T>(consumer, blocksize, probe),
47 HFilter<T>(reader, blocksize, probe),
59 void Filter(T* src, T* dest,
size_t blocksize)
61 for(
int i = 0; i < blocksize; i++ ) {
64 for(
int j = 0; j < _m; j++ ) {
65 if( i - _m + j + 1 < 0 ) {
66 sum += (double) _previous[j];
68 sum += (double) src[i - _m + j + 1];
76 for(
int i = 0; i < _m - 1; i++ ) {
77 _previous[i] = (double) src[blocksize - _m + i + 1];
HMovingAverageFilter(HReader< T > *reader, int m, size_t blocksize, HProbe< T > *probe=NULL)
Definition: hmovingaveragefilter.h:46
Definition: hmovingaveragefilter.h:10
void Filter(T *src, T *dest, size_t blocksize)
Definition: hmovingaveragefilter.h:59
HMovingAverageFilter(HWriterConsumer< T > *consumer, int m, size_t blocksize, HProbe< T > *probe=NULL)
Definition: hmovingaveragefilter.h:37
HMovingAverageFilter(HWriter< T > *writer, int m, size_t blocksize, HProbe< T > *probe=NULL)
Definition: hmovingaveragefilter.h:28
void SetM(int m)
Definition: hmovingaveragefilter.h:82
Definition: hwriterconsumer.h:8
~HMovingAverageFilter()
Definition: hmovingaveragefilter.h:55