Hi
I think I have found what might be my problem with the
analysis_filterbank. When using it as a polyphase channeliser, you
need to start feeding samples in from the bottom channel, upwards.
The gr.analysis_filterbank uses gr.stream_to_streams to split the
input into a number of streams starting at the top. For a polyphase
channeliser, this should be the other way round. I guess I need to
make a different version of stream_to_streams to do this. Can someone
please just help me with some c++ code? In particular the work()
function of gr_stream_to_streams:
const char *in = (const char *) input_items[0];
char **outv = (char **) &output_items[0];
int nstreams = output_items.size();
for (int i = 0; i < noutput_items; i++){
for (int j = 0; j < nstreams; j++){
memcpy(outv[j], in, item_size);
outv[j] += item_size;
in += item_size;
}
}
Firstly, why do we use a pointer to a pointer for the output data?
For what I intend to do, I need to do the following, right?
memcpy(outv[nstreams-j-1],in,item_size);
outv[nstreams-j-1] -= item_size; //or out[nstreams-j-1] +=
item_size?
in += item_size;
Thanks
Sebastiaan