Difference between Block Interleaver and Convolutional Interleaver
This page compares Block Interleaver vs Convolutional Interleaver and mentions difference between Block Interleaver and Convolutional Interleaver used in digital communication.
Introduction: In wireless system, there are three parts viz. transmitter, receiver and channel. A communication channel that has memory is the one which exhibits mutually dependent signal transmission impairments. Example of channel with memory is channel which exhibit multipath fading.
Errors in bursts are results of channel distortion, channel fading, lightening, switching etc. In memory channel with burst errors, re-arranging symbols can cause bursts of channel errros to be spread in time. The idea behind use of interleaving techniques is to separate codeword symbols in time, such that interleaving times are filled with symbols of other codewords. This codeword symbol separation in time effectively transforms channel with memory into memoryless channel. Hence the system can combat random independent errors.
What is Interleaving ?
It separates the codeword symbols in time. It transforms channel with memory to memoryless channel. It enables random error correcting codes in a burst noise channel.
Interleaving is applied to coded message before transmission and deinterleaving after reception. The burst of errors is spread out in time and are handled by decoder.
Interleaver which shuffles code symbols over span of several block lengths is known as block interleaver and one which shuffles over several constraint lengths is known as convolutional interleaver. The span required in determined by burst duration. Figure depicts codewords without and with interleaving.
There are three types of interleavers used in communications viz. Block, Convolutional and Pseudorandom.
A block interleaver accepts coded symbols in blocks from encoder, shuffles the symbols and then feeds the rearranged symbols to the data modulator.
The shuffling of block is accomplished by filling the columns of an M- row by N - column ( M X N) array with encoded sequence.
After the array is filled, these symbols are fed to the modulator one row at a time and transmitted over the channel.
At the receiver, the deinterleaver performs inverse operation, the symbols are entered by rows and removed one column at a time.
Example : As shown, 24 code symbols are place into the interleaver input. The output sequence to the transmitter consists of code symbols removed from array by rows.
Block interleaver is further categorized into various subtypes such as Matrix Interleaver, Helical Interleaver, Random Interleaver and Odd-Even Interleaver.
• The code symbols are sequentially shifted into bank of "N" registers.
• Each successive register provides "J" symbols more storage than preceding one.
• The zeroth register provides no storage.
• The new code symbol is shifted in while the oldest symbol is shifted out to the modulator or transmitter.
The performance of convolutional interleaver is similar to block interleaver.
Following table mentions difference between block interleaver and convolutional interleaver in terms of delay and memory size. As per table, convolutional encoder offers reduction of one half in delay and memory.
|Parameters||Block Interleaver||Convolutional Interleaver|
|• Delay||2MxN-2M+2||M(N-1) /2|
|• Memory||M x N (In Theory), 2M x N (In Practice)||M (N-1) / 2 (In theory)|
Also refer benefits or advantages of interleaving in data communication.
MATLAB code of Interleaver and Deinterleaver
Following is the MATLAB code of interleaving equations mentioned above. This is as per IEEE 802.16 WiMAX OFDM physical layer specifications. For de-interleaver code, visit MATLAB Source code >>.
%First permutation of interleaver
%Second permutation of interleaver
interleaved_data_out(n+1)=interleaver_input(k+1) % OUTPUT of interleaver
Line coding techniques
Difference between Unipolar Polar and Bipolar coding RZ vs NRZ vs Manchester coding RZ vs NRZ pulse shapes Advantages and disadvantages of NRZ encoding RZ encoding 2B1Q coding 8B6T coding 4D PAM5 coding MLT-3 coding 4B/5B encoding 8B/10B encoding R8ZS scrambling HDB3 scrambling