HARDT - The Ham Radio DSP Toolkit
hbaseband.h
1 #ifndef __HBASEBAND_H
2 #define __HBASEBAND_H
3 
4 #include "hfilter.h"
5 #include "hreader.h"
6 #include "hwriter.h"
7 #include "hwriterconsumer.h"
8 #include "hprobe.h"
9 #include "hsoundcard.h"
10 #include "hfft.h"
11 
12 #include <complex>
13 
18 template <class T>
19 class HBaseband : public HFilter<T>
20 {
21  private:
22 
23  int _blocksize;
24 
25  int _center;
26  int _width;
27  int _rate;
28 
29  std::complex<T>* _translated;
30  std::complex<double>* _spectrum;
31  HFft<T>* _fft;
32 
33  double* _cos;
34  double* _sin;
35 
36  void Init();
37  void PreCalculate();
38 
39  public:
40 
42  HBaseband(HWriter<T>* writer, H_SAMPLE_RATE rate, int center, int width, size_t blocksize, HProbe<T>* probe = NULL);
43 
45  HBaseband(HWriterConsumer<T>* consumer, H_SAMPLE_RATE rate, int center, int width, size_t blocksize, HProbe<T>* probe = NULL);
46 
48  HBaseband(HReader<T>* reader, H_SAMPLE_RATE rate, int center, int width, size_t blocksize, HProbe<T>* probe = NULL);
49 
51  ~HBaseband();
52 
54  virtual void Filter(T* src, T* dest, size_t blocksize);
55 
57  void SetSegment(int center, int width);
58 };
59 
60 #endif
HBaseband::HBaseband
HBaseband(HWriter< T > *writer, H_SAMPLE_RATE rate, int center, int width, size_t blocksize, HProbe< T > *probe=NULL)
Definition: hbaseband.cpp:7
HBaseband::~HBaseband
~HBaseband()
Definition: hbaseband.cpp:47
HWriter
Definition: hwriter.h:10
HFilter
Definition: hfilter.h:14
HBaseband::Filter
virtual void Filter(T *src, T *dest, size_t blocksize)
Definition: hbaseband.cpp:60
HBaseband
Definition: hbaseband.h:19
HReader
Definition: hreader.h:24
HProbe
Definition: hprobe.h:10
HBaseband::SetSegment
void SetSegment(int center, int width)
Definition: hbaseband.cpp:112
HFft
Definition: hfft.h:12
HWriterConsumer
Definition: hwriterconsumer.h:8