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.
ليست هناك تعليقات:
إرسال تعليق