discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Gr-trellis ; convolutional code and, convolutionn


From: Achilleas Anastasopoulos
Subject: Re: [Discuss-gnuradio] Gr-trellis ; convolutional code and, convolutionnal interleaver.
Date: Wed, 14 Apr 2010 10:35:39 -0400
User-agent: Thunderbird 2.0.0.24 (Windows/20100228)

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/fp60504.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: address@hidden
URL: http://www.eecs.umich.edu/~anastas/        
_______________________________________________________




reply via email to

[Prev in Thread] Current Thread [Next in Thread]