CHƯƠNG 4: MÃ HĨA KÊNH Mã vịng Mã chập Chương MÃ HÓA KÊNH Phân loại mã hóa kênh Chương Mã hố kênh Mã khối tuyến tính Trọng số Hamming: tổng số thành phần khác vector t = {0,1,1,0,0,0,1} w(t) = Khoảng cách Hamming: trọng số vector t1 t2 t1 = {0,1,1,0,1} t2 = {0,1,0,1,1} t1 t2 = {0,0,1,1,0} d(t1,t2) = Số bit sai tối đa mã tuyến tính phát hiện: t = dmin – 1; dmin: khoảng cách Hamming nhỏ mã Số bit sai tối đa mã tuyến tính sửa: t = (dmin – 1)/2 1:11 PM Chương 3 Mã hoá kênh Mã khối tuyến tính Là tập hợp vector có chiều dài cố định gọi từ mã (codeword) Số phần tử vector gọi kích thước từ mã , ký hiệu n Mã thường sử dụng mã nhị phân có tất 2n từ mã khác Mã hình thành cách chọn M = 2k từ mã tạo thành mã (n,k) 1:11 PM Chương Mã hố kênh Mã khối tuyến tính Các phép toán thực trường GF(2) Phép cộng: tương tự EX-OR Phép nhân: tương tự AND + X 0 0 1 1 1:11 PM Chương Mã vòng Đa thức mã t = a0a1…an–2an–1 từ mã: t(x) = a0 + a1x + … + an–2xn-2 + an–1xn-1 đa thức mã Đa thức sinh - Đa thức sinh g(x) mã vòng C(n, k) có bậc n – k - Đa thức sinh mã vòng C(n,k) ước số xn + Đa thức mã biểu diễn theo dạng: t(x) = u(x)g(x) Chương Mã vòng Đa thức sinh Mã vòng C(7,4) g(x) = x3+x+1 x7+1=(x+1)(x3+x+1)(x3+x2+1) g(x) = x3+x2+1 Đa thức sinh có bậc n – k = – = Mã hoá B1: Nhân đa thức thông báo u(x) với xn-k B2: Chia cho g(x) để tìm đa thức dư q(x): q(x) = xn-ku(x) mod g(x) B3: t(x) = u(x) + xkq(x) Chương Mã vịng Mã hố Mã vịng C(7,4) có đa thức sinh g(x) = x3+x+1 Thông báo u = 1010 u(x) = + x2 B1: x3u(x) = x5 + x3 B2: x5 + x3 = x2(x3+x+1) + x2 q(x) = x2 B3: t(x) = u(x) + x4q(x) = + x2 + x6 t = [1 0 1] Chương Mã vịng Giải mã Tính đa thức sửa sai (syndrome): Đa thức thu r(x) S(x) = r(x) mod g(x) S(x) = Khơng sai thu xác S(x) Có sai kiểm tra bảng coset leader Mã vịng C(7,4) có đa thức sinh g(x) = x3+x+1 r = [0 1 0] r(x) = x2 + x3 + x5 = x2(x3+x+1) S(x) = không sai r = [0 1 0] r(x) = x2 + x4 + x5 S(x) = + x2 có sai Chương Mã vòng Giải mã r = [0 1 0] r(x) = x2 + x4 + x5 S(x) = + x2 S = 101 Bảng coset leader: Coset leader 0000000 0000001 0000010 0000100 0001000 0010000 0100000 1000000 Syndrome 000 101 111 011 110 001 010 100 e = [0 0 0 1] r = [0 1 1] Chương 10 Mã vòng Giải mã Dùng phương pháp bẫy lỗi: - Dịch r(x) sang phải bit, chia cho g(x) số dư q(x) - Nếu w(q(x)) > 1: tiếp tục thực - Cộng r(x) với q(x), sau dịch trái số bit số lần dịch phải r = [0 1 0] S(x) = + x2 có sai - Dịch phải bit r = [0 0 1 1] q = [1 0], w(q) = - r + q = [1 0 1 1] dịch trái bit: r = [0 1 1] u = [0 0] 11 Mã vòng Mã vòng C(7,4) có đa thức sinh g(x) = x3+x2+1 a Thơng báo u = 0011 t = ? b r = [0 1 1 1] u = ? - Dùng bảng coset leader - Dùng phương pháp bẫy lỗi c r = [0 1 0 1] u = ? Coset leader 0000000 0000001 0000010 0000100 0001000 0010000 0100000 1000000 Chương Syndrome 000 011 110 111 101 001 010 100 12 Mã chập - Số bit ngõ vào: k Mã chập (n,k,L) - Số bit ngõ ra: n - Các bit ngõ phụ thuộc vào K – k bit vào trước - L = kK: độ dài ràng buộc R = k/n: tỷ lệ mã Thường xét: R = 1/2 Chương 13 Chương 14 Mã chập Ví dụ mã hóa mã chập: n( L 1) 2(2 1) Mỗi bít ngõ vào ảnh hưởng đến bít liên tiếp ngõ Số trạng thái máy trạng thái: 2k.L Mã chập Ví dụ mã hóa mã chập (3,2,1): Mỗi bit ngõ vào ảnh hưởng 3(1+1) = bit ngõ liên tiếp Chương 15 Chương 16 Mã chập Ví dụ mã hóa mã chập (3,2,2): Mã chập Xét mã có R = ½, K = u1 Ngõ vào Bit mã hóa Ngõ u1 ,u2 m u2 Bit mã hóa Chương 17 Mã chập Xét mã có R = ½, K = m = 101 Trạng thái đầu: 00 u1 u1 t1 u1 u 0 1 u2 t2 u1 u1 u 1 u2 u1 t3 u1 u 0 t4 u2 u1 u 1 u2 Chương 18 Mã chập u1 t5 u1 u1 u 0 1 u2 m (101) u1 u 0 t6 0 u2 Encoder U (11 10 00 10 11) Chương 19 Mã chập Đa thức sinh V(1) u mj mj – mj - mj - V(2) g(1) = [1011] g(2) = [1111] (2,1,3) encoder Chương 20 10 Mã chập Phương trình mã hóa: V(1) V(1) = U * g(1) V(2) = U * g(2) u mj mj – mj - mj - V(2) Bít ngõ thứ l, nhánh thứ j vlj m u i0 li g i j u l g 0j u l 1 g 1j u l m g mj j 1, 2, , n m L 1 (2,1,3) encoder Chương 21 Mã chập Biểu diễn mã – Dạng đa thức - Có n đa thức sinh - Mỗi đa thức có bậc K-1 diễn tả có kết nối bit ghi dịch đến cộng mdulo hay không g1 ( X ) g 0(1) g1(1) X g 2(1) X X X g ( X ) g 0( ) g1( ) X g 2( 2) X X Chương 22 11 Mã chập Biểu diễn mã – Dạng đa thức m( X )g1 ( X ) (1 X )(1 X X ) X X X m( X )g ( X ) (1 X )(1 X ) X m ( X ) g1 ( X ) X X X X m ( X ) g ( X ) X X X X U( X ) (1,1) (1,0) X (0,0) X (1,0) X (1,1) X U 11 10 00 Chương 10 11 23 Mã chập Biểu diễn mã – Dạng mã bits ngõ vào bits ngõ Chương 24 12 Mã chập Biểu diễn mã – Sơ đồ trạng thái 0/00 Output Input 1/11 S0 0/11 00 1/00 S2 S3 Next state output S0 00 S0 1 1 S2 S0 S2 S1 S3 S1 S3 00 11 11 00 10 01 01 10 01 0/01 S2 10 0/10 1/01 input S1 01 S1 10 Current state 11 Chương 1/10 S3 11 25 Mã chập Biểu diễn mã – Sơ đồ lưới (trellis) State 0/00 S 00 1/11 1/11 S 10 0/11 1/00 S1 01 1/01 0/11 1/00 0/10 0/01 1/10 S 11 ti 1/01 0/10 0/01 ti 1 Time 13 Mã chập Tail bits Input bits 1 0 Output bits 11 10 00 0/00 0/00 0/00 1/11 1/11 10 11 0/00 1/11 0/00 1/11 1/11 0/11 1/00 0/11 1/00 0/11 1/00 0/11 1/00 0/11 1/00 0/10 1/01 0/10 1/01 0/10 1/01 0/10 1/01 0/10 1/01 0/01 t1 0/01 t 0/01 t 0/01 t 0/01 t t Chương 27 Mã chập Tail bits Input bits 1 0 Output bits 11 10 00 0/00 0/00 0/00 1/11 1/11 10 11 0/00 0/00 0/11 0/11 1/11 0/10 0/11 1/00 1/01 0/10 1/01 0/01 Chương 0/10 0/01 28 14 Vẽ sơ đồ trạng thái trellis sơ đồ sau: Vẽ sơ đồ trạng thái trellis: g1 = [110], g2 = [101] Chương 29 Mã chập Giải mã - Maximum likelihood decoding (giải mã ước lượng hợp lý nhất) - Tìm nhánh mã (code branch) gần với tín hiệu phát - Ngun tắc: tính tốn khoảng cách Hamming cho nhánh chọn nhánh có khoảng cách Hamming nhỏ Chương 30 15 Mã chập Giải mã - Maximum likelihood decoding (giải mã ước lượng hợp lý nhất) S0 = 00; S1 = 01; S2 = 10; S3 = 11 S0 10 00 S0 01 00 10 00 S0 S2 S2 10 01 S0 S0 01 00 01 S2 S0 01 10 00 Code S0 11 00 01 S2 01 S1 10 S3 00 00 31 S0 11 11 S 00 10 11 S2 00 10 01 01 S3 10 10 S1 01 S0 01 01 S1 S3 11 00 10 S1 11 01 11 11 S0 11 S2 00 10 S3 10 10 S3 Path S1 00 00 11 S 00 10 01 S2 10 S2 01 11 11 00 10 S1 S0 11 11 S3 10 00 S0 11 11 11 11 00 S1 S3 01 10 S1 S3 Khoảng cách Hamming Path Code Khoảng cách Hamming 0,0,0,0 00,00,00,00 1,0,0,0 11,10,11,00 0,0,0,1 00,00,00,11 1,0,0,1 11,10,11,11 0,0,1,0 00,00,11,10 1,0,1,0 11,10,00,10 0,0,1,1 00,00,11,01 1,0,1,1 11,10,00,01 0,1,0,0 00,11,10,11 1,1,0,0 11,01,01,11 0,1,0,1 00,11,10,00 1,1,0,1 11,01,01,00 0,1,1,0 00,11,01,01 1,1,1,0 11,01,10,01 0,1,1,1 00,11,01,10 1,1,1,1 11,01,10,10 Chương 32 16 Mã chập Giải mã - Maximum likelihood decoding (giải mã ước lượng hợp lý nhất) - Phương pháp maximum likelihood phải tìm kiếm tất đường giản đồ trellis tìm đường có khoảng cách hamming nhỏ chuỗi message có chiều dài N (chuỗi nhận Y có chiều dài N.n/K) ta có 2N đường - Thuật tốn viterbi giới hạn số đường cần so sánh 2kL (surviving path), 2L số lượng node, 2k số lượng nhánh đến node Chương 33 Mã chập Giải mã – Thuật tốn Viterbi (hard decision) - Có mức định (mức 1) - Tính khoảng cách Hamming cho nút (bằng khoảng cách Hamming nhánh + khoảng cách Hamming trước đó) - Nếu có nhiều nhánh đến nút bỏ nhánh có khoảng cách Hamming lớn Chương 34 17 Mã chập Giải mã – Thuật toán Viterbi (hard decision) r = (11 10 01 10 11) 00 00 11 0 00 3 10 01 t = (11 10 00 10 11) ; m = (101) 100 111 11 11 111 00 210 01 01 10 2 11 111 00 110 201 10 110 00 210 101 101 201 200 10 Chương 35 Mã chập Giải mã – Thuật tốn Viterbi (soft decision) - Có nhiều mức - Thay khoảng cách Hamming hard decision thành khoảng cách Euclide hay tương quan Chương 36 18 Mã chập Giải mã – Thuật toán Viterbi (soft decision) – Khoảng cách Euclide r = (11 10 01 10 11) r = (1 0,7; 0,6 0,2; 0,4 0,7; 0,7 0,2; 0,6 0,8) 1: 1V; 0: 0V 1,49 0,4 1,89 0,56 1,09 1,09 0,65 00 00 00 00 0,53 0,73 0,45 0,8 11 0,73 0,2 11 0,2 112,29 11 0,45 11 0,09 1,29 0,76 1,29 1,49 00 0,09 r=1 0,7; path: 00 (1-0)2 + (0,7-0)2 = 1,49 r=1-0,7; path: 11 (1-1)2 + (0,7-1)2 = 0,09 11 11 00 00 00 0,85 0,65 0,53 10 110 10 0,89 0,11 101,34 0,13 0,8 01 01 01 0,4 1,13 0,25 01 01 01 1,09010,25 1,941,13 1,890,4 10 10 10 11 0,2 t = (11 10 00 10 11) ; m = (101) 2,09 1,69 0,8 0,85Chương 0,13 37 Mã chập Giải mã – Thuật toán Viterbi (soft decision) – Tương quan r = (-0,7 -0,5; -0,8 0,6; 0,7 -0,1; -0,6 0,8; -0,7-0,6) 1: -1V; 0: 1V -1,2 -1,2 00 1,2 11 1,2 -0,2 -1,4 0,6 00 0,211 00 -1 r = (11 10 01 10 11) 2,2 000,2 -0,2 -0,6 1,3 11 -0,6 11 -0,2 11 1,3 1,8 2,2 11 00 00 -0,8 0,2 10 r=-0,7 -0,5; path: 00 0,6 10 2,6 100,6 1,4 3,6 -0,7.1-0,5.1 = -1,2 01 01 -1,4 -1,4 0,8 01 r=-0,7 -0,5; path: 11 0,8 01 -0,2 01 -0,2 -1,4 1,2 -0,7.(-1)-0,5.(-1) = 1,2 10 10 1,4 t = (11 10 00 10 11) ; m = (101) -1,3 4,9 00 11 -0,8 Chương 1,4 11 00 -1,3 10 3,6 -0,1 1,7 01 0,1 01 0,1 10 1,9 -0,1 19 ... 1 ,4 3,6 -0,7.1-0,5.1 = -1,2 01 01 -1 ,4 -1 ,4 0,8 01 r=-0,7 -0,5; path: 11 0,8 01 -0,2 01 -0,2 -1 ,4 1,2 -0,7.(-1)-0,5.(-1) = 1,2 10 10 1 ,4 t = (11 10 00 10 11) ; m = (101) -1,3 4, 9 00 11 -0,8 Chương. .. 0,7; 0,6 0,2; 0 ,4 0,7; 0,7 0,2; 0,6 0,8) 1: 1V; 0: 0V 1 ,49 0 ,4 1,89 0,56 1,09 1,09 0,65 00 00 00 00 0,53 0,73 0 ,45 0,8 11 0,73 0,2 11 0,2 112,29 11 0 ,45 11 0,09 1,29 0,76 1,29 1 ,49 00 0,09 r=1... (0,7-0)2 = 1 ,49 r=1-0,7; path: 11 (1-1)2 + (0,7-1)2 = 0,09 11 11 00 00 00 0,85 0,65 0,53 10 110 10 0,89 0,11 101, 34 0,13 0,8 01 01 01 0 ,4 1,13 0,25 01 01 01 1,09010,25 1, 941 ,13 1,890 ,4 10 10 10