3/22/2010

Nội dung trình bày:

CHƯƠNG 5: MÃ HÓA KÊNH

(cid:1) Mã hóa kênh ( Channel coding ) (cid:1) Mã hóa khối (Block codes) + Mã lập (Repetition Code) + Hamming codes + Cyclic codes

* Reed-Solomon codes

ðặng Lê Khoa Email: dlkhoa@fetel.hcmuns.edu.vn

(cid:1) Mã hóa chập (Convolutional codes)

+ Encode + Decode

(cid:1) ðiều chế mã lưới (Trellis Coded Modulation)

Facuty of Electronics & Telecommunications, HCMUS

2

1

Channel coding là gì?

Sơ ñồ khối DCS

• Tín hiệu truyền qua kênh truyền sẽ bị ảnh hưởng bởi nhiễu, can nhiễu, fading… là tín hiệu ñầu thu bị sai. • Mã hóa kênh: dùng ñể bảo vệ dữ liệu không bị sai bằng cách thêm vào các bit dư thừa (redundancy).

Format

Source encode

Channel encode

Pulse modulate

Bandpass modulate

• Ý tưởng mã hóa kênh là gởi một chuỗi bit có khả

năng sửa lỗi

Digital modulation

• Mã hóa kênh không làm giảm lỗi bit truyền mà chỉ làm

giảm lỗi bit dữ liệu (bảng tin)

C h a n n e

Digital demodulation

l

• Có hai loại mã hóa kênh cơ bản là: Block codes và

Convolutional codes

Format

Detect

Source decode

Demod. Sample

Channel decode

3

4

Các loại mã hóa sửa sai

Mã lập

(cid:1) Mã lập (Repetition Code) (cid:1) Mã khối tuyến tính (Linear Block Code), e.g.

Hamming

Recovered state

(cid:1) Mã vòng (Cyclic Code), e.g. CRC (cid:1) BCH và RS Code (cid:1) Mã chập (Convolutional Code) (cid:1) Truyền thống, giải mã Viterbi (cid:1) Mã Turbo (cid:1) Mã LDPC

(cid:1) Coded Modulation

(cid:1) TCM (cid:1) BICM

6

5

1

3/22/2010

Mã khối tuyến tính (Linear block codes)

Kiểm tra chẵn lẻ (Parity Check)

(cid:1) Chuỗi bit thông tin ñược chia thành từng khối k bit. (cid:1) Mỗi khối ñược encode thành từng khối lớn hơn có

(cid:1) Thêm 1 bit ñể xor các bit có kết quả là 0 (cid:1) Dữ liệu truyền, sửa lỗi, không thể sửa lỗi

n bit.

(cid:1) Các bit ñược mã hóa và gửi trên kênh truyền. (cid:1) Quá trình giải mã ñược thực hiện ở phía thu.

Data block

Codeword

Channel encoder

k bits

n bits

n-k

Redundant

bits

(cid:1) Kiểm tra hàng và cột

=

Code rate

(cid:1) Ứng dụng: ASCII, truyền dữ liệu qua cổng nối

R c

k n

tiếp

8

7

Linear block codes – cont’d

Linear block codes – cont’d

(cid:1) Khoảng cách Hamming giữa hai vector U và V, là

số các phần tử khác nhau.

(cid:1) Khả năng phát hiện lỗi ñược cho bởi: e

1

min

- ¯

VU

VU,

d

)

(

= w (

= d (cid:1) Khả năng sửa lỗi t của mã hóa ñược ñịnh

) (cid:1) Khoảng các tối thiểu của mã hóa khối là

=

w (

U

d

)

UU , i

min

j

i

nghĩa là số lỗi tối ña có thể sửa ñược trên 1 từ mã (codeword)

d (min i j

min i

= ) (cid:1) Ví dụ: Tính khoảng cách Hamming của C1: 101101

1

và C2 :001100

=

t

  

  

mind 2

=

101101

001100

Giải: Vì =>d12=W(1000001)=2 100001 (cid:1) => Ta có thể giải mã ñể sửa sai bằng cách chọn

codewords có dmin

9

10

- ¯

Linear block codes – cont’d

Linear block codes – cont’d

(cid:1) Example: Block code (6,3)

(cid:1) Encoding trong bộ mã hóa khối (n,k)

Message vector Codeword

U =

mG

V

1

1

0

1

0

0

1

=

=

G

=

2

,

,

u

)

(

,

,

m

)

0 0 0

0 0 1

0 1 0

0 0 1

0 1 1

0 0 0 1 0 0

0 0 1

0 1 0

n

k

( uu , 1

2

, mm 1 2

(cid:215)

V 1 V 2 ⋮

V V

0 1

1 0

1 1

0 0

1 0

0 1

    

    

    

    

3

0 1

1 0

1 0

0 1 1 1

0 0

1 1

1 0

1 0

      +

=

+

(cid:215) (cid:215) (cid:215)

     V  k + …

,

,

u

)

m

m

( uu , 1

2

n

m 1

V 1

2

V 2

2

V k

(cid:1) Các hàng của G thì ñộc lập tuyến tính.

1 0 1

0 1 1

1 0 1 1 1 0

1 1 0

1 0 0

1 0 1

0 1 1

1 1 1

11

12

2

3/22/2010

Linear block codes – cont’d

Linear block codes – cont’d

(cid:1) Mã hóa khối (n,k)

(cid:1) k phần tử ñầu tiên (hoặc cuối cùng) trong từ mã là các

n

)

bit thông tin.

· -

G

=

]

0

IPG [ ·=

kk

I

k identity

matrix

(cid:1) ðối với bất kỳ mã hóa khối tuyến tính, chúng (H ta có một ma trận . Các hàng của kn ma trận này trực giao với ma trận : GH =T (cid:1) H ñược gọi là ma trận kiểm tra parity và các

·= k

kn

(

)

matrix

-

k P k

hàng của chúng ñộc lập tuyến tính.

=

=U

,...,

u

)

(

,...,

,...,

p

)

uu , ( 1

2

n

mm , 1

kn

2

2

pp m , , (cid:3)(cid:3)(cid:4)(cid:3)(cid:3)(cid:5)(cid:6)(cid:3)(cid:3) (cid:4)(cid:3)(cid:3) (cid:5)(cid:6) k 1

(cid:1) ðối với mã hóa khối truyến tính: ]

- T

= IH [

P

parity

bits

message bits

13

14

- kn

Linear block codes – cont’d

Linear block codes – cont’d

m

U

Data source

Format

Modulation

kn

-

Channel encoding

(cid:1)

=

2

channel

(cid:1) Mảng tiêu chuẩn i Hàng ñược tạo thành bằng cách cộng U với pattern

,...,3,2 ie

Data sink

Format

Channel decoding

Demodulation Detection

r

zero codeword

k

U

U

U 1

=

= + eUr codeword received or vector

,....,

r

)

=

k

¯ ¯

e

2 U

e

2 U

pattern

or vector

(

e

error

)

2

2

2

rr ,( 2 1 ee , 2 1

r n e n

2

coset

e 2 ⋮

,...., (cid:1) Kiểm tra ñặc trưng:

kn

kn

kn

k

¯ ¯ - - -

e

e

U

e

U

2

2

2

2

2

T

T

coset leaders

(cid:1) S là ñặc trưng của r, tưng ứng với error pattern e. =

= rHS

eH

15

16

Linear block codes – cont’d

Linear block codes – cont’d

(cid:1) Ví dụ: Mảng chuẩn cho mã (6,3)

(cid:1) Mảng tiêu chuẩn và ñặc trưng bảng giải mã

codewords

TrHS =

ie

000000 110100 011010 101110 101001 011101 110011 000111

S

ˆ += rU =+=

mˆ ++

=++

011011 011000 011100 101111 101100 101010 101000 101011 101101 011100 011111 011010 110010 110001 110111 000110 000101 000110 000001 000010 000100 110101 110111 110011

1. Tính e =ˆ 2. Tìm coset chính , tưng ứng với . ˆ e 3. Tính và tưng ứng với . ˆ ˆ e)Ue ( (eUe

)ˆ e

⋮ ⋮ ⋮

ˆ rU (cid:1) Chú ý:

coset

• •

Nếu , error ñược sửa. Nếu , bộ giải mã không thể phát hiện lỗi.

⋮ 001000 010000 100000 111100 100100 010100

e =ˆ e „ˆ

e e

⋯ ⋯ 010001 100101 010110

Coset leaders

17

18

3

3/22/2010

Linear block codes – cont’d

Hamming codes

(cid:1) Hamming codes

Error pattern Syndrome

=

000000

000

U

(101110)

transmit

ted.

(cid:1) Là trường hợp riêng của linear block codes (cid:1) Diễn tả theo hàm của một số nguyên . 2‡m

=

is received. r is of

computed

:

m

=

T

T

Code length

:

n

1

=

(001110) syndrome =

-

H

r The = rHS

(001110)

(100)

m

2 =

Number

of

informatio

n

bits

: k

m

1

correspond

ing

to

this syndrome

is

2 =

000001 000010 000100 001000 010000 100000

101 011 110 001 010 100

Number

of

parity

bits

:

m

- -

Error = ˆ e

pattern (100000)

010001

111

n-k =

Error

correction

capability

: t

1

corrected

vector

=+=

is +

estimated =

The ˆ rU

ˆ e

(001110)

(100000)

(101110)

19

20

Mã hóa Hamming

Hamming codes

(cid:1) Example: Systematic Hamming code (7,4)

(cid:1) Mã hóa: H(7,4)

Message=[1 0 1 0]

=

=

H

[

I

TP

]

33

  1110001   1101010     1011100  

r=(1+0+0) mod 2 =1 s=(1+0+1) mod 2 =0 t=(0+1+0) mod 2 =1

Code=[ 1 0 1 1 0 1 0 ]

Nhiều phép kiểm tra tổng Message=[a b c d] r= (a+b+d) mod 2 s= (a+b+c) mod 2 t= (b+c+d) mod 2 Code=[r s a t b c d]

(cid:1) Tốc ñộ mã: 4/7

=

=

·

G

[

P

I

]

44·

(cid:1) Càng nhỏ, nhiều redundance bit, ñược bảo vệ tốt hơn. (cid:1) Khác biệt giữa phát hiện và sửa lỗi

 0001110  0010101   0100011  1000111 

     

21

22

Hamming codes

Ví dụ mã hóa Hamming

(cid:1) Example: Systematic Hamming code (7,4)

=

=

H

[

I

TP

]

33

H(7,4) (cid:1) Ma trận sinh G: ñầu tiên là ma trận ñơn vị 4x4 (cid:1) Dữ liệu truyền là vector p (cid:1) Vector truyền x (G=[I/P])

  1110001   1101010     1011100  

=

=

·

G

P

I

[

]

44·

(cid:1) Vector nhận r và vector lỗi e

 0001110  0010101   0100011  1000111 

     

23

24

4

3/22/2010

ðộ lợi mã hóa (Coding Gain)

Sửa lỗi (cid:1) Nếu không có lỗi, vector ñặc trưng (syndrome) z=zeros

(cid:1) Tốc ñộ mã R=k/n, k: số symbol dữ liệu, n tổng

symbol

(cid:1) SNR từ và SNR của bit

(cid:1) Nếu có 1 lỗi ở vị trí thứ 2

(cid:1) Vector ñặc trưng z là

(cid:1) Với một sơ ñồ mã hóa, ñộ lợi mã hóa tại một

sắc xuất lỗi bit ñược ñịnh nghĩa là sự khác biệt giữa năng lượng cần thiết cho 1 bit thông tin ñã mã hóa ñể ñạt ñược sắc xuất lỗi cho trước và truyền dẫn không mã hóa

tương với cột thứ 2 của H. Vậy, lỗi ñuợc phát hiện ở vị trí thứ 2 và có thể sửa lại cho ñúng.

25

26

Example of the block codes

Ví dụ ñộ lợi mã hóa

BP

8PSK

QPSK

[dB]

0NEb /

28

27

Cyclic block codes

Cyclic code

(cid:1) Cyclic codes ñược quan tâm và quan trọng vì

(cid:1) Một mã tuyến tính (n,k) ñược gọi là Cyclic

(cid:1) Dựa trên cấu trúc ñại số và có thể ứng dụng rộng

rãi.

code nếu khi dịch vòng 1codeword thì ñó cũng là codeword.

“i” cyclic shifts of U

=

U

,

,...,

u

)

(cid:1) Dễ dàng thực hiện bằng thanh ghi dịch (shift register) (cid:1) ðược ứng dụng rộng rãi trong thực nghiệm

i )(

uuu , ( 1 =

-

U

0 u (

2 u

,

1 n u ,...,

,

,

,...,

u

)

in

+- 1

in

uuu , 1

0

2

n

1

in

1

- - - -

(cid:1) Ví dụ: = U

(cid:1) Trong thực nghiệm, cyclic codes ñược sử dụng ñể phát hiện lỗi (Cyclic redundancy check, CRC) (cid:1) ðược sử dụng trong mạng chuyển mạch gói (cid:1) Khi có 1 lỗi ñược phát hiện ở bộ nhận, chúng sẽ

)1(

)2(

)3(

)4(

( 1101 ) =

=

=

=

=

ñược yêu cầu truyền lại.

( 1110

U

)

U

(

0111

)

U

( 1011

)

U

( 1101 )

U

(cid:1) ARQ (Automatic Repeat-reQuest)

30

29

5

3/22/2010

Cyclic block codes

Cyclic block codes

(cid:1) Cấu trúc ñại số của Cyclic codes, suy ra

(cid:1)

( Xm

)

2

n

1

+

=

(Xg

-

U

X

u

)

(

degree

n- )1(

Thuật toán mã hóa Cyclic code (n,k): knX - 1. Nhân thông tin với chuỗi bằng ) 2. Chia kết quả bước 1 với ña thức sinh .

codewords ñược sinh ra từ -++ ...

+ XuXu 1

2

0

Xu n 1

( Xp

(cid:1) Mối quan hệ giữa codeword và thanh ghi

( X

)

X kn m-

3. Thêm vào ñể tạo thành

n

n

2

1

+

=

+

dịch:

-

U XX (

)

...,

Lấy là phần dư ) ) ( Xp ( XU ) codeword

0

1

Xu n 1

n

=

+ XuXu +

+

u

n

0

Xu n 2

Xu n 1

u (cid:6) n

)1(

n

+

X

u

- - - - - - -

+ XuXu (cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3) 1 1 U

)1

(

n

1

n

)1(

=

+

Xu n 2 ++ + n 2 1 ... (cid:5) (cid:4) (cid:3)(cid:3)(cid:4)(cid:3)(cid:3)(cid:5)(cid:6)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3)(cid:3) 1 X ( ) +

-

U

(

X

)

u

(

X

)1

n

1

=

+

-

U

()1(

X

)

U XX (

)

modulo (

nX

)1

(cid:1) Vậy:

By extension

i

n

=

+

U

i ()(

X

)

X

U

(

X

)

modulo

(

X

)1

31

32

Cyclic block codes

Cyclic block codes

(cid:1)

Find the generator and parity check matrices, G and H, respectively.

3

+=

(cid:1) Example: For the systematic (7,4) Cyclic 1)

+ XX

2

3

2

0

3

= g ( X (cid:215)+= 11) X (cid:215)+ 0 X ⇒(cid:215)+ X 1 ( , , ) ( 1101 ) gggg , 1

g X ( 1011 )

(=m

code with generator polynomial Find the codeword for the message 1. =

2

3

Not in systematic form. We do the following:

3

3

2

3

3

5

6

kn

row(3)

+ +

+

row(1) row(1)

row(3) row(2)

row(4)

row(4)

kn

3

5

6

3

= = - n kn k ,7 = 3 += + = ,4 ⇒ m m ( 1011 ) ( X X X G - fi 1) = = + + = + + m m X X ) ( X ) X ( X 1( X X ) X X X fi 0101100 1011000  0001011  0010110           - m X : g by Divide + + + + X X X + XX 1() X X X) ( ( ) += + + 2 3 XX 1( ) (cid:3)(cid:3)(cid:3) (cid:5)(cid:6) (cid:3)(cid:4)(cid:3)(cid:5)(cid:6)(cid:3)(cid:3)(cid:3) (cid:4) quotient (X) q

generator g

(X)

)

1 (cid:3)(cid:4)(cid:3)(cid:5)(cid:6) ( remainder X

p

=

=

H

 1101001  0111010   1110100 

    

3

3

5

6

33·I

TP

G Form : the codeword polynomial = + += + +  0001011  0010110   0100111  1000101        ( X 1) X ( p X X X X ( = U U

P

44·I

message

bits

33

34

X m ) ) )1 1 0 1 0 0 1( (cid:4)(cid:5)(cid:6)(cid:4)(cid:5)(cid:6) parity bits

Ví dụ CRC

Cyclic block codes

(cid:1) Giải mã Cyclic code:

=

+

(cid:1) Từ mã ở bộ thu ñược cho bởi r e (

U

X

X

)

)

(

(

X

)

Error pattern

Received codewor d

(cid:1) ðặc trưng ở phần dư có ñược bằng cách chia chuỗi nhận

cho ña thức sinh: =

+

Syndrome

r (

X

)

q (

X

g ()

X

)

S (

X

)

(cid:1) Với ñặc trưng và mảng tiêu chuẩn, lỗi sẽ ñược ước

lượng.

35

36

6

3/22/2010

Checking for errors

Khả năng của CRC

(cid:1) Một lỗi E(X) không thể phát hiện khi chúng chia hết cho G(x). Ngược lại, thì có thể phát hiện lỗi.

(cid:1) Có khả năng mạnh mẽ trong phát hiện lỗi

37

38

BCH Code

BCH Performance

(cid:1) Bose, Ray-Chaudhuri, Hocquenghem

(cid:1) Có khả năng sửa ñược nhiều lỗi (cid:1) Dễ dàng thực hiện mã hóa và giải mã

(cid:1) Các chuẩn trong công nghiệp

- (511, 493) mã hóa BCH trong ITU-T. Chuẩn H.261- một chuẩn mã hóa video ñược sử dụng cho video conferencing và video phone. (cid:1) (40, 32) mã hóa BCH trong ATM (Asynchronous

Transfer Mode)

39

40

Reed-Solomon Codes

(cid:1) Một trường hợp riêng của non-binary BCH (cid:1) ðược ứng dụng rộng rãi

(cid:1) Storage devices (tape, CD, DVD…) (cid:1) Wireless or mobile communication (cid:1) Satellite communication (cid:1) Digital television/Digital Video Broadcast(DVB) (cid:1) High-speed modems (ADSL, xDSL…)

41

7