#ifndef _CHANNELIZER_RX_H_ #define _CHANNELIZER_RX_H_ #include "ChannelizerBase.h" class Channelizer : public ChannelizerBase { public: /** Constructor for channelizing filter bank @param m number of physical channels @param blockLen number of samples per output of each iteration @param hLen number of taps in each constituent filter path */ Channelizer(size_t m, size_t blockLen, size_t hLen = 16); ~Channelizer(); /* Return required input and output buffer lengths */ size_t inputLen() const; size_t outputLen() const; /** Rotate "input commutator" and drive samples through filterbank @param in complex input vector @param iLen number of samples in buffer (must match block length) @return false on error and true otherwise */ bool rotate(const float *in, size_t iLen); /** Get buffer for an output path @param chan channel number of filterbank @return NULL on error and pointer to buffer otherwise */ float *outputBuffer(size_t chan) const; }; #endif /* _CHANNELIZER_RX_H_ */