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: anas...@umich.edu
URL: http://www.eecs.umich.edu/~anastas/
_______________________________________________________
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio