Here is what needs to be done (simple).
N is the dimensionality of the signal space (found earlier in the code).
Now we need to set up a filter bank to project the incoming signal to all its dimensions. These filters are held on the MF[] array.
Now (due to laziness) i didn't write a for loop that instantiates N filter blocks, but I just instantiated them manually for the case of N=2 in
filter_fir_filter_xxx_0_0 = filter.fir_filter_ccc(Q, MF[0].conjugate())
filter_fir_filter_xxx_0_0_0 = filter.fir_filter_ccc(Q, MF[1].conjugate())
So what needs to be done is (through a for loop) instantiate these N filter blocks
and appropriately modify the code (in the "connections" part) to make the right
connections to and from these blocks.
best,
Achilleas