I managed to figure the connect mistakes that I made out. Now there’s
something different that’s not working. From what I understand about
the analysis_filterbank, it works as follows (in my case).
You send it a signal with a bandwidth of 4MHz.
You have a lowpass filter with fc = 70kHz and fs = 100kHz.
You tell it that you have 20 channels.
The result should be that you have 20 outputs corresponding to the
lowpass filtered signals at frequencies of
-2MHz,-1.8MHz,…,-200kHz,0,200kHz,…,1.8MHz (the order would just be
a bit mixed up because of the FFT).
The problem is that I tested this block by opening a file in Gnuradio
with a signal with a BW of 4MHz with carriers that are 200kHz apart.
Each carrier has a different bandwidth. When I look at different
analysis_filterbank output, I should see each carrier in turn.
I only get a sensible output at channel 20 (output 19 of the
filterbank). The rest don’t make sense.
I’m thinking about writing my own block for this. I already have
normal C++ and Matlab code that works. Can someone please point me to
some examples that might be helpful?
What I need is a big polyphase filter and an FFT. The input of the
block should be a single complex stream running at a high rate. The
output should then be up to M channels each running at f_input/M. I’m
struggling to find a nice example on how filter channel memory and the
variable number of outputs work.