Version:

Performs the deinterleaving process using a fixed number of branches and fixed unit delay.

A convolutional deinterleaver is the inverse of a convolutional interleaver. In convolutional deinterleaving, data elements pass cyclically through a set of branches. That is, in an *N* branch convolutional deinterleaver, the element 0 goes through branch 0, element 1 goes through branch 1, element *N*-1 goes through branch *N*-1, element *N* goes through branch 0, and so on. Each branch has different delays associated with it. Hence the data sent to each deinterleaver branch is delayed by a specific amount (the amount of delay in that particular branch) before the deinterleaver returns the data. In a convolutional interleaver, if the delay in branch number *n* is *d*_{n}, maximum delay is *max_delay* and the minimum delay is *min_delay*, then for the corresponding convolutional deinterleaver, the delay in branch number *n* is: *D*_{n} = (*max_delay*+*min_delay*)-*d*_{n}.