I took your advice, and I designed my convolutional interleaver using existing gnuradio blocks. It was pretty easy. I just need to add an "addtail" c++ block. It will do the exact opposite of gr.skiphead. Do you think I should post this work?
Thanks for your help. Axel On Wed, April 14, 2010 4:35 pm, Achilleas Anastasopoulos wrote: > Axel, > > > regarding your interleaver question: Block or convolutional, I suspect > that any practical application will use a convolutional interleaver in a > "block" fashion, ie > it will have M symbols in the input and produce M symbols at the output > where the positions are permuted. If you can describe this permutation, > and put it in a file then you can use the gr-trellis version of > interleaver. For instance a length 5 interleaver looks like that: > 3 1 5 4 2 > which means that the first symbol goes to position 3, the second to > position 1 the third to position 5, etc. I have included at least one > exampl in the examples directory og gr-trellis. > > If this is not the case and you still want a semi-infinite sequence as > the input you can easily write your own block for the convolutional > interleaver; it seems pretty straightforward as it consists of a > demultiplexer 1-to-N, multiple delay elements with different delays D(1), > D(2),...,D(N), and an N-to-1 multiplexer. Hey, this can even be > done as a hierarchical block using existing gnuradio blocks... > > Achilleas > > > Axel Belliard wrote: > >> Hi >> Thanks for answering my questions. >> >> >> I changed my code, it works now. >> I will try the random interleaver, to see how it works. But in the end I >> will need a super control over it. I need something that look like >> that : >> http://www.mathworks.com/access/helpdesk/help/toolbox/commblks/ug/fp605 >> 04.html >> (see convolutional interleaver section). >> >> >> Thanks again >> >> >> Axel >> >> >> On Tue, April 13, 2010 7:58 pm, Achilleas Anastasopoulos wrote: >> >>> Axel, >>> >>> >>> >>> >>> First, there is no such thing in gr-trellis as a "convolutional >>> interleaver". There is only a generic interleaver, ie a permutation >>> which is defined through the different constructors provided in >>> interleaver.h (through a file, random, etc). >>> If you do not want to have super control over it i suggest you start >>> with just a random interleaver and see how it works. >>> >>> Second, I see a minor problem in your code: >>> the viterbi block should specify the block size as its 2nd parameter >>> so instead of >>> >>> self.va = trellis.viterbi_s(f,2,0,-1) >>> >>> you should put something like >>> >>> self.va = trellis.viterbi_s(f,len(self.src_data),0,-1) >>> >>> I tried this modification and works fine with me. >>> Let me know if you have any problems, >>> Achilleas >>> >>> >>> >> > > -- > _______________________________________________________ > Achilleas Anastasopoulos > Associate Professor > EECS Department Voice : (734)615-4024 > UNIVERSITY OF MICHIGAN Fax : (734)763-8041 > Ann Arbor, MI 48109-2122 E-mail: [email protected] > URL: http://www.eecs.umich.edu/~anastas/ > _______________________________________________________ > > _______________________________________________ Discuss-gnuradio mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
