I am in trouble with Viterbi decoder for a while. I have some questions.
I need to decode messages from a continuous stream which is encoded without resetting the state metrics. Each message starts with a preamble, but since these preambles are also encoded as part of the stream, there is actually no message concept before decoding.
Encoding without resetting the metrics means that the data is encoded as one big message, doesn't it?
The decoder I am using works frame by frame, without storing and re-using the state metrics. So, I am adding a prefix and a postfix from the previous and next messages.
(last $n$ bits of the previous encoded message + message to be decoded + first $m$ bits of the next encoded message)
I hopefully expect that the prefix works as a training data, and the state metrics after the prefix are ready to decode the actual message. In order to decode the last bits of the message correctly, the postfix is used. I suppose using the data from the next message as the postfix is better than adding zeros or random bits, because adding zeros or random numbers may cause a wrong path affecting not only the decoding of the postfix but also of the actual message.
- Is this procedure reasonable?
- Is it common and does it have a name such as sliding windows?
How many bits should I use as the prefix and postfix? (I cannot set the traceback length and see if it is pre-set somewhere. The code rate is $1/2$ and constraint length is $7$.)
Thanks in advance.