19 #ifndef SDRBASE_DSP_UPCHANNELIZER_H_ 20 #define SDRBASE_DSP_UPCHANNELIZER_H_ 33 #define UPCHANNELIZER_HB_FILTER_ORDER 96 46 m_basebandSampleRate(basebandSampleRate),
47 m_sampleRate(samplerate),
48 m_frequencyOffset(frequencyOffset)
72 m_log2interp(log2Interp),
73 m_filterChainHash(filterChainHash)
87 void configure(
MessageQueue* messageQueue,
int sampleRate,
int centerFrequency);
88 void set(
MessageQueue* messageQueue,
unsigned int log2Interp,
unsigned int filterChainHash);
93 virtual void pull(
Sample& sample);
94 virtual void pullAudio(
int nbSamples) {
if (m_sampleSource) m_sampleSource->pullAudio(nbSamples); }
96 virtual bool handleMessage(
const Message& cmd);
120 return (m_filter->*m_workFunction)(sampleIn, sampleOut);
137 void applyConfiguration();
138 void applySetting(
unsigned int log2Decim,
unsigned int filterChainHash);
139 bool signalContainsChannel(
Real sigStart,
Real sigEnd,
Real chanStart,
Real chanEnd)
const;
141 double setFilterChain(
const std::vector<unsigned int>& stageIndexes);
142 void freeFilterChain();
145 void outputSampleRateChanged();
virtual void pullAudio(int nbSamples)
FilterStages m_filterStages
std::vector< Sample > SampleVector
unsigned int getFilterChainHash() const
int m_requestedInputSampleRate
int m_currentCenterFrequency
bool work(Sample *sampleIn, Sample *sampleOut)
BasebandSampleSource * m_sampleSource
Modulator.
IntHalfbandFilterDB< qint32, UPCHANNELIZER_HB_FILTER_ORDER > * m_filter
unsigned int getLog2Interp() const
MsgChannelizerNotification(int basebandSampleRate, int samplerate, qint64 frequencyOffset)
int getOutputSampleRate() const
unsigned int m_filterChainHash
static MsgChannelizerNotification * create(int basebandSampleRate, int samplerate, qint64 frequencyOffset)
int getBasebandSampleRate() const
#define MESSAGE_CLASS_DECLARATION
SampleVector m_sampleBuffer
bool m_filterChainSetMode
WorkFunction m_workFunction
int m_requestedCenterFrequency
int m_currentInputSampleRate
qint64 getFrequencyOffset() const
std::vector< FilterStage * > FilterStages
MsgSetChannelizer(unsigned int log2Interp, unsigned int filterChainHash)
int getSampleRate() const
unsigned int m_log2interp
std::vector< Sample > m_stageSamples