HARDT - The Ham Radio DSP Toolkit
hhilbertfilter.h
1 #ifndef __HHILBERTFILTER_H
2 #define __HHILBERTFILTER_H
3 
8 template <class T>
9 class HHilbertFilter : public HFilter<T>
10 {
11  private:
12 
13  HHahnWindow<T> _window;
14  HFft<T>* _fft;
15  std::complex<double>* _fftOutput;
16  T* _ifftOutput;
17 
18  void Init(size_t blocksize) {
19  _fft = new HFft<T>(blocksize, &_window);
20  _fftOutput = new std::complex<double>[blocksize];
21  _ifftOutput = new T[blocksize];
22  }
23 
24  public:
25 
27  HHilbertFilter(HWriter<T>* writer, size_t blocksize, HProbe<T>* probe = NULL):
28  HFilter<T>(writer, blocksize, probe) {
29  Init(blocksize);
30  }
31 
33  HHilbertFilter(HWriterConsumer<T>* consumer, size_t blocksize, HProbe<T>* probe = NULL):
34  HFilter<T>(consumer, blocksize, probe){
35  Init(blocksize);
36  }
37 
39  HHilbertFilter(HReader<T>* reader, size_t blocksize, HProbe<T>* probe = NULL):
40  HFilter<T>(reader, blocksize, probe){
41  Init(blocksize);
42  }
43 
46  delete _fft;
47  delete _fftOutput;
48  delete _ifftOutput;
49  }
50 
52  void Filter(T* src, T* dest, size_t blocksize) {
53  _fft->HILBERT(src, dest);
54  }
55 };
56 
57 #endif
HHilbertFilter::HHilbertFilter
HHilbertFilter(HWriter< T > *writer, size_t blocksize, HProbe< T > *probe=NULL)
Definition: hhilbertfilter.h:27
HFft::HILBERT
void HILBERT(T *src, T *dest)
Definition: hfft.h:198
HWriter
Definition: hwriter.h:10
HFilter
Definition: hfilter.h:14
HReader
Definition: hreader.h:24
HHahnWindow
Definition: hhahnwindow.h:8
HProbe
Definition: hprobe.h:10
HHilbertFilter::~HHilbertFilter
~HHilbertFilter()
Definition: hhilbertfilter.h:45
HHilbertFilter::HHilbertFilter
HHilbertFilter(HWriterConsumer< T > *consumer, size_t blocksize, HProbe< T > *probe=NULL)
Definition: hhilbertfilter.h:33
HHilbertFilter::HHilbertFilter
HHilbertFilter(HReader< T > *reader, size_t blocksize, HProbe< T > *probe=NULL)
Definition: hhilbertfilter.h:39
HHilbertFilter::Filter
void Filter(T *src, T *dest, size_t blocksize)
Definition: hhilbertfilter.h:52
HFft
Definition: hfft.h:12
HHilbertFilter
Definition: hhilbertfilter.h:9
HWriterConsumer
Definition: hwriterconsumer.h:8