40 lines
844 B
C++
40 lines
844 B
C++
#ifndef _CHANNELIZER_BASE_H_
|
|
#define _CHANNELIZER_BASE_H_
|
|
|
|
class ChannelizerBase {
|
|
protected:
|
|
ChannelizerBase(size_t m, size_t blockLen, size_t hLen);
|
|
~ChannelizerBase();
|
|
|
|
/* Channelizer parameters */
|
|
size_t m;
|
|
size_t hLen;
|
|
size_t blockLen;
|
|
|
|
/* Channelizer filterbank sub-filters */
|
|
float **subFilters;
|
|
|
|
/* Input/Output buffers */
|
|
float **hInputs, **hOutputs, **hist;
|
|
float *fftInput, *fftOutput;
|
|
|
|
/* Pointer to opaque FFT instance */
|
|
struct fft_hdl *fftHandle;
|
|
|
|
/* Initializer internals */
|
|
bool initFilters();
|
|
bool initFFT();
|
|
void releaseFilters();
|
|
|
|
/* Map overlapped FFT and filter I/O buffers */
|
|
bool mapBuffers();
|
|
|
|
/* Buffer length validity checking */
|
|
bool checkLen(size_t innerLen, size_t outerLen);
|
|
public:
|
|
/* Initialize channelizer/synthesis filter internals */
|
|
bool init();
|
|
};
|
|
|
|
#endif /* _CHANNELIZER_BASE_H_ */
|