vincenzo,
Regarding the inter/deinterleaver addition you have to:
instantiate an interleaver object of size K
where K is the length of the data you want to interleave.
There are different ways to do this. The simplest is a random
interleaver:
int_object=trellis.interleaver(K,666) # last parameter is a seed
then you have to instantiate the interleaver and deinterleaver
blocks and put them before and after the CC encoder, Viterbi decoder,
respectively, eg:
inter =
trellis.permutation(int_object.K(),int_object.INTER(),1,gr.sizeof_char)
deinter =
trellis.permutation(int_object.K(),int_object.DEINTER(),1,gr.sizeof_char)
the last argument is the input/output signature size.
the second to last argument says how many of these i/o items you want
to consider as a block that will be permuted according to the
permutation described in the inter_object.
Achilleas