1. Trang chủ
  2. » Giáo án - Bài giảng

tài liệu mã hóa kênh truyền

50 737 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 444,35 KB

Nội dung

• Bên thu: Nhận thông tin bổ sung ở phía phát, kiểm tra, phát hiện và sửa lỗi... ∗ Dạng sai lầm của mã hiệu được truyền tuỳ thuộc tính chất thống kê của kênh:∗ sai độc lập dẫn đến sai ng

Trang 1

CHƯƠNG 5

Mã hóa kênh truyền

1

Trang 2

∗ Khái niệm về mã phát hiện sai và sửa sai.

– Cơ chế phát hiện sai của mã hiệu.

– Khả năng phát hiện và sửa sai.

– Hệ số sai không phát hiện được.

Trang 3

Vấn đề

3

Lỗi khi truyền dữ liệu trên một hệ thống truyền tin:

• Lỗi khi truyền tin là một điều khó tránh

• Nguyên nhân: Do nhiễu bên ngoài xâm nhập, tác động lên kênh truyền, làm thông tin truyền

Trang 4

Nguyên lý mã hóa kiểm soát lỗi

4

• Nguyên lý chung là thêm vào tập mã cần truyền một tập bit kiểm tra nào đó để bên nhận có thể kiểm soát lỗi

• Bên phát: Bổ sung thêm thông tin (thêm bit) vào bit cần gửi

• Bên thu: Nhận thông tin bổ sung ở phía phát, kiểm tra, phát hiện và sửa lỗi

Với n-k: bit kiểm tra

Bộ mã KSL + (n-k) bit

k bit

Thông tin

k+n-k = n bit

Trang 5

∗ Dạng sai lầm của mã hiệu được truyền tuỳ thuộc tính chất thống kê của kênh:

∗ sai độc lập dẫn đến sai ngẫu nhiên: 1 hoặc 2 sai

∗ Sai tương quan dẫn đến sai chùm (sai cụm)

⇒ Người ta thống kê: sai ngẫu nhiên xẩy ra 80%, sai chùm xảy ra 20%

∗ Xác suất xuất hiện một từ mã n ký hiệu có t sai bất kỳ:

p(n,t) = Cntpst(1-ps)n-t

5

Khái niệm về mã phát hiện sai và sửa sai.

Trang 6

∗ Số từ mã có thể có: N0 = 2n

∗ Số từ mã mang tin: N = 2k.

∗ Số từ mã không dùng đến: 2n –2k (số tổ hợp cấm)

∗ Để mạch có thể phát hiện hết i lỗi thì phải thỏa mãn điều kiện:

∗ Trong đó EΣ = E1 + E2+ + Ei

∗ E1, E2, Ei là tập hợp các vector sai 1,2 i lỗi.

∗ Để phát hiện và sửa hết sai 1 lỗi ta có:

6

Cơ chế phát hiện sai của mã hiệu.

∑ +

E

n k

1

2 2

1

2 2

+

n

n k

Trang 7

Trọng số Hamming của vector t: ký hiệu: w(t) được xác định theo số các thành phần khác không của vector.

∗ Ví dụ: t1 = 1 0 0 1 0 1 1 ⇒ w(t1) = 4

∗ Khoảng cách giữa 2 vector t1, t2: ký hiệu, d(t1, t2) được định nghĩa là số các thành phần khác nhau giữa chúng.

∗ Ví dụ: t2 = 0 1 0 0 0 1 1 ⇒ d(t1, t2) = 3 chúng khác nhau ở vị trí 0, 1 và 3

Trang 8

∗ Điều kiện để một mã tuyến tính có thể phát hiện được t sai:

Trang 9

Ví dụ: đối với bộ mã (5,2) có trọng số Hamming w =2 ta xác định được hệ số sai không phát hiện

Trang 10

• Gọi từ mã phát đi là T.

• Gọi từ mã nhận được là R

• Gọi từ mã sai do đường truyền gây ra là E

⇒phương trình đường truyền:

Trang 11

Vector sai: E = (e0, e1, …, en)

Ví dụ: E = (1 0 0 1 0 1 0) → sai ở vị trí 0, 3, 5

Trong các hệ thống truyền số liệu có 2 cơ chế sửa lỗi:

Cơ chế ARQ(Automatic Repeat Request-cơ chế tự động phát lại): cơ chế yêu cầu phát lại số liệu một cách tự động (khi

phát hiện sai) cơ chế này có 3 dạng cơ bản:

Cơ chế ARQ dừng & chờ (stop and wait ARQ)

Cơ chế ARQ quay ngược N vector (N go back ARQ).

Cơ chế ARQ chọn lựa vi c lặp lại ệ

Cơ chế FEC (Forward Error Control): phát hiện và tự sửa sai sử dụng các loại mã sửa lỗi.

Khi có sai đơn (1 sai) người ta thường dùng các loại mã như: mã khối tuyến tính, mã Hamming, mã vòng…

Khi có sai chùm (> 2 sai) người ta thường dùng các loại mã như: mã BCH, mã tích chập, mã Trellis, mã Tubor, mã Tubor Block, mã tổng hợp GC…

11

Vector sai – cơ chế sửa lỗi

Trang 12

• Mã tuyến tính C(n,k) có mục đích mã hóa những khối tin (hay thông báo) k bit thành những từ

mã n bit Hay nói cách khác trong n bit của từ mã có chứa k bit thông tin

Ví dụ: C (7,4): Từ mã dài 7 bit Thông tin cần truyền: 4 bit.

Trang 13

Cách biểu diễn mã – Ma trận sinh

13

• Mã tuyến tính C(n,k) là một không gian k chiều của không gian vectơ n thành phần, cho nên tồn tại k từ mã độc lập tuyến tính (g0,g1,…,gk-1) sao cho mỗi từ mã trong C là một tổ hợp tuyến tính của k từ mã này :

• k từ mã này tạo thành một ma trận sinh cấp k x n như sau:

Với: gi = (gi0, gi1… gi(n-1)) với i = 0, 1, …, k-1

) 1 , ,

1 , 0 }

1 , 0 { (

1 1

1 1 0

+

k i

a

g a g

a g

a w

i

k k

1 ( 1

) 1 ( 0

) 1 (

) 1 ( 1 11

10

) 1 ( 0 01

00

1

1 0

k k

n n

k

n k

g g

g

g g

g

g g

Trang 14

Cách mã hĩa

14

• Nếu u = (a0,a1,…,ak-1) , với ai =0/1 và 0≤i ≤k-1, là thơng tin cần được mã hĩa

• Gọi t là từ mã phát đi: t = t0 t1 ….tn-1 , Với tj = 0 hoặc 1 và 0 ≤ j ≤ k-1 thì từ mã w tương ứng với t

được hình thành bằng cách lấy t x G

w = t x G = a0g0 + a1g1 +…+ ak-1gk-1

• Vì các từ mã tương ứng với các thơng báo được sinh ra bởi G theo cách trên nên G được gọi là ma trận sinh của bộ mã

• Mã khối tuyến tính hệ thống có cấu trúc:

n-k bits kiểm tra K bits mang tin

← Độ dài từ mã : n

Trang 15

Ví dụ

15

• Cho ma trận sinh của một mã tuyến tính C(7,4) sau:

• Nếu u = (u0 u1 u2 u3) = (1101) là thông tin cần mã hóa thì từ mã tương ứng là:

t0 = u0.1 + u1.0 + u2.1 + u3.1 = u0+ u2 + u3 = 1 + 0 +1 = 0

t1 = u0.1 + u1.1 + u2.1 + u3.0 = u0 + u1 + u2 = 1+ 1 +0 = 0

t2 = u0.0 + u1.1 + u2.1 + u3.1 = u1 + u2 + u3 = 1+0+ 1 = 0

t3 = u0.1 + u1.0 + u2.0 + u3.0 = u0 = 1

t4 = u0.0 + u1.1 + u2.0 + u3.0 = u1 = 1

t5 = u0.0 + u1.0 + u2.1 + u3.0 = u2= 0

t6 = u0.0 + u1.0 + u2.0 + u3.1 = u3= 1

0 1 0 0

0 0 1 0

0 0 1 1

1 0 1 0

0 1 0 1

1 0 1 1

g g g

g G

3 2 1

0 7

Trang 16

• Bất kỳ k từ mã độc lập tuyến tính nào cũng có thể được dùng để làm ma trận sinh cho bộ mã.

• Một bộ mã tuyến tính (không gian mã) có thể có nhiều ma trận sinh khác nhau cùng biểu diễn.

• Mỗi ma trận sinh tương ứng với một cách mã hóa khác nhau.

16

Ma trận sinh

Trang 17

b5 = a2 (6)b6 = a2 + a3 (7)

0 1 0 0

0 0 1 0

0 0 1 1

1 0 1 0

0 1 0 1

1 0 1 1

4 3 1 0

7

4

g g g g G

Trang 18

Cách giải mã (tt)

18

• Chọn bốn phương trình đơn giản nhất để giải các ai theo các b1

• Chọn các phương trình (4), (5), (6), (7) ta giải được:

a0 = b3 + b4 a1 = b4 a2 = b5a3 = b5 + b6

• Hệ phương trình trên gọi là hệ phương trình giải mã

• Có thể có nhiều hệ phương trình giải mã khác nhau, nhưng kết quả sẽ giống nhau

0 1 0 0

0 0 1 0

0 0 1 1

1 0 1 0

0 1 0 1

1 0 1 1

4 3 1 0

7

4

g g g g G

Trang 19

Mã tuyến tính hệ thống

19

• Một mã tuyến tính C(n,k) được gọi là mã tuyến tính hệ thống nếu mỗi từ mã có một trong hai dạng sau:

Dạng 1: Từ mã bao gồm phần thông tin k bit đi trước và phần còn lại (gồm n-k bit) đi sau

(phần này còn được gọi là phần dư thừa hay phần kiểm tra)

Dạng 2: Ngược lại của dạng 1, từ mã bao gồm phần kiểm tra đi trước và phần thông tin đi

sau

k bit thông tin n - k bit kiểm tra

n - k bit kiểm tra k bit thông tin

Trang 20

0 1 1 1

1 1 0 1

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0

1

) 7 4

) 1 )(

1 (

) 1 (

0

1 ) 1 (

11 01

0 ) 1 (

10 00

) (

) 1 ( 1

1

0 0

0

1 0

k n k

k n

k k

k k

k n k kk

n

k

P

P P

P

P P

P

P

P P

I

Trang 21

xét mã khối tuyến tính C(7,4)có thông báo cần mã hóa

u = (u0, u1, u2, u3) & từ mã phát đi tương ứng

) 7 , 4

(

~

G

21

Trang 22

Cho tin cần phát đi: u = (u0, u1, u2, u3) = (1 0 1 1) ta tìm từ mã phát đi theo 2 công thức 5 & 8 từ đó rút ra nhận xét

Ví dụ

 

  (u0, u1, u2, u3)

t0 = u0.1 + u1.0 + u2.0 + u3.0 = u0 = 1

t1 = u0.1 + u1.1 + u2.0 + u3.0 = u0 + u1= 1+0 = 1

t2 = u0.0 + u1.1 + u2.1 + u3.0 = u1 + u2= 0+1 = 1

t3 = u0.1 + u1.0 + u2.1 + u3.1 = u0 + u2 + u3= 1+1 + 1 = 1

t4 = u0.0 + u1.1 + u2.0 + u3.1 = u1 + u3= 0+1 = 1

t5 = u0.0 + u1.0 + u2.1 + u3.0 = u2= 1

t6 = u0.0 + u1.0 + u2.0 + u3.1 = u3= 1

Vậy ta có từ mã phát đi t = (1 1 1 1 1 1 1) không có dạng mã khối tuyến tính

22

Trang 23

(u0, u1, u2, u3)

t0 = u0.1 + u1.0 + u2.1 + u3.1 = u0+ u2 + u3 = 1 + 1 +1 = 1

t1 = u0.1 + u1.1 + u2.1 + u3.0 = u0 + u1 + u2 = 1+ 0 + 1 = 0

t2 = u0.0 + u1.1 + u2.1 + u3.1 = u1 + u2 + u3 = 0+1+ 1 = 0

t3 = u0.1 + u1.0 + u2.0 + u3.0 = u0 = 1

t4 = u0.0 + u1.1 + u2.0 + u3.0 = u1 = 0

t5 = u0.0 + u1.0 + u2.1 + u3.0 = u2= 1

t6 = u0.0 + u1.0 + u2.0 + u3.1 = u3= 1

Vậy ta có từ mã phát đi: ( 1 0 0 1 0 1 1) có dạng mã khối tuyến tính 23

Trang 24

Ví dụ

24

• Dùng các phép biến đổi sơ cấp biển đổi các ma trận sinh sau thành ma trận sinh hệ thống

• Không phải mọi ma trận sinh đều có thể biến đổi thành ma trận sinh hệ thống

1 0 0 0

0 1 1 0

1 1 0 1

0 0 1 0

0 0 0 1

1 1 1

1 0 0 0

0 0 1 0

1 1 0 1

0 1 1 0

0 0 1 1

1 0 0

1

7 4

G

Trang 25

Phát hiện sai và sửa sai

25

Nguyên lý phát hiện sai: Kiểm tra xem tổ hợp nhận có phải là từ mã hay không, nếu không thì tổ hợp nhận là sai.

Nguyên lý sửa sai: Kiểm tra xem tổ hợp nhận có khoảng cách Hamming gần với từ mã nào nhất, thì đó chính là từ mã đúng đã

phát đi.

→ Nguyên lý khoảng cách Hamming tối thiểu.

 Không gian bù trực giao:

• Cho S là một không gian k chiều của không gian V n chiều Gọi Sd là tập tất cả các vectơ v trong V sao cho:

• Sd được chứng minh là một không gian con của V và có số chiều là n-k.

• Sd được gọi là không gian bù trừ trực giao của S và ngược lại.∀ uS , u × v = 0

Trang 26

• Nếu v là một từ mã được sinh ra từ ma trận G có ma trận trực giao tương ứng là H thì: V x HT = 0

• Ngược lại nếu V x HT = 0 thì v là một từ mã.

Trang 28

Cho G không hệ thống, tính H?

• VD: trên Z3, cho ma trận sinh của một mã như sau

• Ta chuyển thành ma trận sinh của mã hệ thống tương đương

Trang 29

0 1 1 1

1 1 0 1

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0

1

) 7 4 (

0

0 1

0

0 0

1

1 0

1

1 1

1

1 1

0

0 1

1

) 7 3 (

ht

H

Trang 30

Cách sửa sai

30

Syndrome – vectơ sửa sai (corrector)

 S= v x HT được gọi là Syndrome hay vectơ sửa sai của v và được kí hiệu là s(v) v là từ mã khi

Trang 31

– Gọi từ mã phát đi : t = (t0 t1 tn-1) (1)

– Gọi từ mã thu được: r = (r0 r1 rn-1) (2)

– Vector sai : e = (e0 e1 en-1) (3)

– Trong đó ei = 1 nếu ti ≠ ri và ei = 0 nếu ti = ri

Để phát hiện sai ta dùng thuật toán thử Syndrome:

– S = r.HT = (s0 s1 sn-k-1) (4)

gồm n-k thành phần

– S=0 nếu và chỉ nếu r là từ mã phát (r ≡ t) hoặc là tổ hợp tuyến tính của các từ mã (gọi là vector sai không phát hiện được).

– S ≠ 0 thì r không phải là từ mã phát đi (r ≠ t) và do đó có sai (e ≠ 0)

Phương pháp giải mã mã khối tuyến tính:

31

Trang 32

Từ ma trận kiểm tra thành phần của Syndrome như sau:

∗ S0 = r0 + rn-kp00 + rn-k-1p10 + + rn-ipk-1,0

∗ S1 = r1 + rn-kp01 + rn-k-1p11 + + rn-ipk-1,1

∗ Sn-k-1 = rn-k-1 + rn-kp0,n-k-1 + rn-k+ip11 + + rn-ipk-1,n-k-1

Từ (5) tương tự như mạch mã hóa, ta có mạch tính Syndrome như sau:

Phương pháp giải mã mã khối tuyến tính

32

Trang 34

∗ Tính Syndrome của mã khối tuyến tính C(7,4) với ma trận H đã cho với vector thu: r = (r0 r1 r2 r3 r4 r5 r6)

Ví dụ:

34

Trang 36

∗Khi xác định được một giá trị Syndrome S = (S0, S1 Sn-k-1) ta có đến 2 k vector sai tương ứng, nhưng ta chỉ chọn các vector sai nào có trọng số nhỏ nhất là vector sai có nhiều khả năng nhất

∗Trong thực tế khi tìm được Syndrome ta thấy S trùng với cột nào của ma trận kiểm tra H thì có sai ở vị trí tương ứng

∗Ví dụ: “ 1 1 1” trùng với cột thứ sáu tính từ trái sang của ma trận H, ta kết luận vector nhận được r sai ở vị trí r5 Ta chỉ việc đổi trị số của r5 từ 0 sang 1 hoặc ngược lại là được vector nhận được đúng (r=t)

Trang 37

0 1 1 1

1 1 0 1

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0

1

) 7 4 (

ht

G

Trang 38

0 1 1 1

1 1 0 1

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0

1

) 7 4

0 0 1

0 0 0

1 1 0

1 1 1

1 1 1

0 0 1

1

) 7 3

0

0 1

0

0 0

1

1 0

1

1 1

1

1 1

0

0 1

1

) 7 3 (

T ht

H

Trang 39

Cách sửa sai

39

• Qua ví dụ trên, ta thấy:

• S(v) = (111) trùng với cột thứ 3 của H, nên ta sửa giá trị ở vị trí thứ 3.

v ⊕ r = t

1011011 ⊕ 0010000 = 1001011 Vậy tin gửi đi là: 1001

Trang 40

Mã Hamming

40

•Với mọi số nguyên dương m ≥ 3, tồn tại mã Hamming với các thông số sau:

Chiều dài từ mã: n = 2m – 1.

Chiều dài phần tin: k = 2m – m – 1.

Chiều dài phần kiểm tra: m = n –k

Khả năng sửa sai: t = 1

• Cấu trúc ma trận kiểm tra H với các cột là một vector m chiều khác không.

• H = [Imxm | P(n-k)k]

• Mỗi cột của ma trận P là vector m chiều, có trọng số là 2 hoặc lớn hơn.

Trang 41

Ví dụ: với m = 3, ma trận kiểm tra của mã (7,4) được viết dưới dạng

Trang 42

Để việc tạo mã đơn giản ta chọn các bit kiểm tra x, y, z ở các vị trí tương ứng 2i với i = 0, 1, 2, , nghĩa là các vị trí thứ nhất, thứ hai & thứ tư của các ký hiệu từ mã: t = (x, y, u0, z, u1, u2, u3) (3)Tạo mã:

t.HT= (x, y, u0, z, u1, u2, u3) x

Trang 43

t = (x, y, u0, z, u1, u2, u3)

(2)

x.0 +y.0 +u0.0 +z.1 + u1.1 + u2.1 + u3.1 =0 ⇒ z = u1 + u2 + u3 x.0 +y.1 +u0.1 +z.1 + u1.0 + u2.1 + u3.1 =0 ⇒ y = u0 + u2 + u3x.1 +y.0 +u0.1 +z.1 + u1.1 + u2.0 + u3.1 =0 ⇒ x = u0 + u1 + u3

43

Trang 44

⇒ Vậy từ mã phát đi sẽ là: t = ( 0 1 1 0 0 1 1) không có dạng mã khối.

Giải mã Haming cũng giống như giải mã khối tuyến tính nhưng đơn giản hơn nhờ sử dụng ma trận kiểm tra H có dạng 2 Khi đó việc xác định vị trí ký hiệu sai tương đối thuận tiện.

Ví dụ:

44

Trang 45

1 1 1

1 1 1

0 0 1

1 1 0

0 0 1

0 0 0

1

73

H

Trang 46

Mã Hamming (tt)

46

• Trong thực tế để việc tạo và giải mã Hamming một cách đơn giản người ta đổi vị trí các cột trong ma trận H Khi

đó các bit kiểm tra xen kẽ với các bit mang tin chứ không còn tính chất khối Và giá trị của cột hi khi này bằng i (i

1 0 1

1 1 0

1 0 0

1 1 1

0 0 1

0 1 0

0

7 3

H

Trang 47

0 1

1

1 0

1

0 0

1

1 1

0

0 1

0

1 0

0

Trang 49

Giải mã

49

• Cách giải mã giống với giải mã, phát hiện lỗi sai và sửa lỗi của mã khối tuyến tính

• Tính Syndrome – vectơ sửa sai

• S(v) = v.HT

• Nếu S(v) khác 0, ta xem giá trị s(v) trùng với cột thứ mấy của ma trận H, thì có sai ở vị trí

đó, và sửa lỗi

Trang 50

Giải mã

50

• Với từ mã thu được v = 0 0 1 1 0 1 1

• S(v) = v x HT = 110 Trùng với cột thứ 6 của ma trận H Có nghĩa ký hiệu sai là ký hiệu thứ 6

⇒ v = 0 0 1 1 0 0 1

⇒ u = 1001

Ngày đăng: 02/03/2015, 08:40

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w