I think there are two parts in your question:
- how to detect an incoming packet and do something with it.
- 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
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.