Channel Coding
Channel Coding
CHANNEL CODING
6.1 Waveform Coding
ò ( )s (t )dt = [
T 0 i¹ j
condition: si t j
0 E i= j
E is signal energy
correlation coefficiency
1 T
Z ij = ò si (t )s j (t )dt = {
0 i¹ j
E 0 1 i= j
C. M-ary signal
MPSK ; MFSK ; MPAM→M-Level
D. Correlation detection in digital sequence
NA - ND
Z ij =
NT
NA : number of digit agreements
N D : number of digit disagreements
N T : total number of digit in the sequence
1 i= j
if orthogonal Z ij = {
0 otherwise
E. Orthogonal code
a. Code word matrix of orthogonal code
Expansion
é H k -1 H k -1 ù
HK = ê
ë H k -1 H k -1 úû
EX: k=2 two bit
PB =
1
2
[
(M - 2) Q KEb N 0 + Q 2 KEb N 0 ]
1
better performance than orthogonal BW→ 2
G. Trans orthogonal code →Simplex code
detect first digit of orthogonal set, since it always
Binary 0
there are (M-1) bit codeword
1 i= j
Z ij = { -1
i¹ j
M -1
j =1 è 2 j ø n is odd→(n-1)/2
D. Rectangular code
Figure 6.8 Parity checks for serial and parallel code structures. (a) Serial
structure. (b) Parallel structure.
N-bit word length → N+1
M codeword → M+1
MN
code rate h =
(M + 1)(N + 1)
j =t +1 è j ø
in rectangular code t=1, ie j=2
error more than 2-bit → can’t correct
6.4 Linear Block Code
U = mG
= m1v1 Å m2 v2 Å Å mk vk
= [U1 U 2 U n ] : use in modulo 2 adder
C. Systematic linear block code
[m1 m2 mk ] ¾k¾
¾®[U1 U 2 U n ]
®n
= [C1 C2 Cn - k m1 m2 mk ]
then
G = [P | I k ]
é p11 p12 p1(n - k ) ù
êp p22 p2 ( n - k ) ú
P=ê ú
21
ê ú
ê ú
ë pk 1 pk 2 pk ( n - k ) û
ê | ú
ê ú
ë pk 1 pk 2 pk (n - k ) | 0 0 1û
U = [U1 U 2 U n ]
m = [m1 m2 mk ]
U = mG
= [C1 C2 Cn - k m1 m2 mk ]
C1 = m1 p11 + m2 p21 + + mk Pk 1
C2 = m1 p12 + m2 p22 + + mk pk 2
Cn - k = m1 p1(n - k ) + m2 p2 (n - k ) + + mk pk (n - k )
since orthogonal é1 0 0 ù
then UH T = 0 ê0 1 0 ú
ê ú
ê ú
ê ú
0 0 1 ú
where [
H = In -k | PT ] é I ù
H T = ê n -k ú = ê
ë P û ê p11 p12 p1(n - k ) ú
ê ú
ê p21 p22 p2 (n - k ) ú
ê ú
ê ú
êë pk 1 pk 2 pk (n - k ) úû
F. Syndrome testing
if R is received sequence
R=U+E E: is error pattern
S = RH T
= (U + E ) H T
= UH T + EH T
= EH T
the position of error bit can be determined by the error
pattern
G. Error pattern and error correction
for ( 6 , 3 ) block code with G and H above
1 n n j
® average bit error PB =
n
å
j =t +1
j (
j
) p (1 - p ) n- j
Figure 6.13
Error correction and
detection capability.
(a) Received Vector r1.
(b) Received vector r2.
(c) Received vector r3.
6.7 cyclic code
<A> definition
if U = (U 0 , U1 ,......U n -1 ) is a codeword (code vector)
then U (1) = (U n -1 , U 0 , U1 ,......U n - 2 ) is also a code vector ® cyclic code
The polynomial
U ( x) = U 0 + U1 x + U 2 x 2 + ......U n -1 x n -1
shift 1 bit U (1) ( x) = U n -1 + U 0 x + U1 x 2 + ......U n - 2 x n -1
and x iU ( x) = p ( x)( x n + 1) + U (i ) ( x)
or U (i ) ( x) = x iU ( x)modulo( x n + 1)
EX : U = (0,1,1) U ( x) = x + x 2
shift two positions
x 2U ( x) = x 3 + x 4 = ( x 3 + 1) + x( x 3 + 1) + 1 + x
U ( 2 ) ( x) = x 2U ( x)modulo( x 3 + 1) = 1 + x
or code ® (1,1,0)
<C> generator matrix of cyclic code
ê 0ú
ê ú
êëck -1, 0 ck -1,1 .... ck -1,n - k -1 0 0 1úû
EX : for (7,3) cyclic code , if g(x) = 1 + x + x 2 + x 4 systematic code
find G and code word for the systematic code
sol : n = 7, k = 3 r = 7 -3 = 4
x i m(x) = ? i = 0,1,2....k - 1 = 2
for 100 Þ i = 0 x n -k +i m0 = x 4 = p0 ( x) g ( x) + c0 ( x)
Þ p0 ( x ) = 1 c0 ( x) = 1 + x + x 2 ® c0 = (1110)
for 010 Þ i = 1 Þ x 5 = p1 ( x) g ( x) + c1 ( x)
= x(1 + x + x 2 + x 4 ) + x + x 2 + x 3
Þ p1 ( x) = x c1 ( x) = x + x 2 + x 3 ® c1 = (0111)
for 001 Þ i = 2 Þ x 6 = p 2 ( x ) g ( x ) + c2 ( x )
= x 2 (1 + x + x 2 + x 4 ) + (1 + x + x 2 + x 4 ) + 1 + x + x 3
Þ p2 ( x ) = 1 + x 2 c2 ( x) = 1 + x + x 3 ® c2 = (1101)
é1 1 1 0 1 0 0ù
G = êê0 1 1 1 0 1 0úú
êë1 1 0 1 0 0 1úû
m0 m1 m2
0 0 0 0 0 0 0 0 0 0
1 0 0 1 1 1 0 1 0 0
0 1 0 0 1 1 1 0 1 0
0 0 1 1 1 0 1 0 0 1
1 1 0 1 0 0 1 1 1 0
0 1 1 1 0 1 0 0 1 1
1 0 1 0 0 1 1 1 0 1
1 1 1 0 1 0 0 1 1 1
<F> error defector
U(x) = g(x)m(x) U(x)h(x) = m(x) Þ g(x)h(x) = x n + 1
xn +1
correct Û U(x)可整除by g(x)
Perfect code
à parity check bit
à t =3 (24,12)
Fig 6.22
PB versus Eb/No for coherently
demodulated BPSK over a
Gaussian channel for
several block codes.
<C> BCH code (Bose-Chadhuri-Hocquenghem)
BCH
Reed-solomon code 8.1
6.6 Usefulness of standard array
code capability/error capability
<A> error detection capability
Maximum detection error bits = (dmin – 1)