| #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: |
| /* Initilize channelizer/synthesis filter internals */ |
| bool init(); |
| }; |
| |
| #endif /* _CHANNELIZER_BASE_H_ */ |