diff options
author | Tom Tsou <tom.tsou@ettus.com> | 2016-06-22 16:16:30 -0700 |
---|---|---|
committer | Tom Tsou <tom.tsou@ettus.com> | 2016-07-01 03:07:27 -0700 |
commit | 35222296fef378977a83a4ee89d8c3ef9bc62a3f (patch) | |
tree | c5551e02f5e9f30e970de1fabdbefeb3bc4842aa /Transceiver52M/Channelizer.h | |
parent | 28670fb5dad8e48ff74051a5bbe0c8309b04c817 (diff) |
mcbts: Add multi-ARFCN channelizing filters
Introduce polyphase channelizer (Rx) and synthesis (Tx) filterbanks,
which serve as the signal processing backend for multi-carrier GSM.
Fast Fourier Transform (FFT) is used internally. FFTW is added as
a new build dependency.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
Diffstat (limited to 'Transceiver52M/Channelizer.h')
-rw-r--r-- | Transceiver52M/Channelizer.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Transceiver52M/Channelizer.h b/Transceiver52M/Channelizer.h new file mode 100644 index 0000000..fdd6779 --- /dev/null +++ b/Transceiver52M/Channelizer.h @@ -0,0 +1,34 @@ +#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_ */ |