الخميس، 14 مارس 2013

COVOLUTIONAL CODER

COVOLUTIONAL CODER
A convolutional code is generated by passing the information sequence to be transmitted through a linear finite-state shift register. For convolutional codes, k and n are usually small. Convolutional codes can be devised for correcting random errors, burst errors, or both. Encoding is easily implemented by shift registers. A convolutional coder with constraint length N consists of an N stage shift register and v modulo-2 adders. figure 4.1 shows such a coder for the case of N =3 and v =2.
   


The message digits are applied at the input of shift register. The coded digits stream is obtained at the commutator output. The commutator samples the v modulo-2 adders in sequence, once during each input–bit interval. We shall explain this operation with reference to the input digits 11010. Initially, all the stages of the register are cleared; that is, they are in a 0 state. When the first data digit 1 enters the register, the stage s1 shows 1 and all the other stages (s2 and s3) are unchanged; that is, they are in a 0 state. The two modulo-2 adders show v1=1 and v2=1. The commutator samples this output. Hence, the coder output is 11. when the second message bit 1 enters the register, it enters the stage s1, and the previous 1 in s1 is shifted to s2. Hence, s1 and s2 both show 1, and s3 is still unchanged; that is, it is in a 0 state. The modulo-2 adders now show v1 =0 and v2 =1. Hence, the decoder output is 01. In the same way, in the third message digit 0 enter the register, we have s1= 0, s2=1, and s3=1, and the decoder output is 01. Observe that each data digit influences N groups of v
 

digits in the output (in this case three groups of two digits). The process continues until the last data digit enters the stage s1. we can to stop here, however. We add N -1 number of 0's to the input stream (dummy augmented data) to make sure that the last data digit (0 in this case) proceeds all the way throw the shift register in order to influence the N groups of v digits. Hence, when the input digits are 11010, we actually apply 1101000 (the digits augmented by N-1 zeros) to the input of the shift register. It can be seen that when the last digit of the augmented message stream enters s1, the last digit of the message stream has passed through all the N stages of the register. The coder output is given by 11 01 01 00 10 11 00. Thus, there are in all n = (N + k - 1)v digits in the coded output for every k data digits. In practice, k >> N, and, hence, there are approximately kv coded output digits for every k data digits, giving an efficiency η ≈ 1 / v. It can be seen that unlike the block coder, the convolutional coder operates on a continuous basis, and each data digit influences N groups of v digits in the output. The code rate is defined as Rc = k/n, consistent with the definition of the code rate for a block code. The parameter N is called the constraint length of the convolution code.

 

ليست هناك تعليقات:

إرسال تعليق