Hi Achilleas,
I was interested in various length packets. I am taking a fixed
length packet ( say 200 symbols ) and then bitstuffing it, resulting
in a packet >= 200 symbols. I then receive this with the viterbi
algorithm and then finally unbitstuff. So in this, case K = 200 +
number of stuffed bits. I guess I could run N viterbi algorithms in
parallel for the N possible different number of stuffed bits. I
guess I could also have the block that bitstuffs the data pad out to a
fixed block size.
Thanks again for you suggestions and help.
Tim
On 2/21/07, Achilleas Anastasopoulos <address@hidden> wrote:
Tim,
I think there are two parts in your question:
1) how to detect an incoming packet and do something with it.
2) how to operate the viterbi algorithm block in a packet to packet
basis without generating the flow graph again.
I only know how to answer the latter question:
The viterbi algorithm (see all examples in
gnuradio-examples/python/channel-coding/)
processes the incoming stream in PACKETS by design.
When you instantiate the block, ie using
va = trellis.viterbi_s(f,K,s0,sK)
then "K" is the block size to be processed (measured in trellis steps),
with initial state fixed at "s0" and final state fixed at "sK"
(or put -1 in the corresponding positions if you dont want to fix them).
Thus is we send a stream of n x K symbols then the va block will run the
algorithm n times with the set initial/final states.
If you send a continuous stream of data to the input of the VA it will
break it into blocks of K symbols and process each block separately.
Hope this helped clarify the use of the viterbi block.
Achilleas