Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
1,84 MB
Nội dung
Cơ sở lí thuyết thơng tin Chương 3: Mã hóa kênh Mã Khối tuyến tính TS Phạm Hải Đăng 02/12/2013 Trường ĐH Bách Khoa Hà Nội Slice Phần 1: Khái niệm Mã kênh/Mã sửa lỗi Mã hóa kênh (channel Coding) hay cịn gọi mã sửa lỗi (Error Correction coding) kỹ thuật khống chế, phát sửa lỗi trình truyền liệu qua kênh có nhiễu Mã sữa lỗi sử dụng thơng tin dư thừa (redundancy) mã hóa thêm vào liệu phía bên phát Thơng tin dư thừa phía thu sử dụng để sửa lỗi - mà không cần yêu cầu phát lại tin 02/12/2013 Trường ĐH Bách Khoa Hà Nội Slice Phần 1: Khái niệm Phân loại lỗi Lỗi độc lập thống kê: Lỗi xuất trình truyền tin kênh truyền, xuất độc lập không liên quan tới Ví dụ: nhiễu Gaussian Lỗi chùm: Lỗi có phân bố liên hệ với 02/12/2013 Trường ĐH Bách Khoa Hà Nội Slice Phần 1: Khái niệm Ví dụ: Kênh truyền tin khơng nhớ (Binary Symmetric Memoryless Channel) Lỗi xảy với bit “0” “1” với xác suất p (symmetric) Lỗi xảy ngẫu nhiên độc lập bit (memoryless) 1-p 0 p IN OUT p xác suất lỗi – BER Bit Error Rate (BER) p 1 1-p 02/12/2013 Trường ĐH Bách Khoa Hà Nội Slice Phần 1: Khái niệm Ví dụ: Kênh truyền tin đa đường sending signal strength receiving signal 02/12/2013 time Trường ĐH Bách Khoa Hà Nội Slice Phần 1: Khái niệm Ví dụ: Kênh truyền tin đa đường RX power TX power Channel Fading 02/12/2013 Trường ĐH Bách Khoa Hà Nội Slice Phần 1: Khái niệm Phân loại mã sửa lỗi: Mã khối (block codes): thơng tin mã hóa chèn thêm phần dư thừa theo khối Mã khối Mã khối tuyến tính Mã vịng CRC Mã BCH, Reed-Solomon, LDPC Mã chập (Convolutional codes): thông tin biến đổi theo hàm truyền đạt (phép tích chập) Khơng có giới hạn rõ ràng thông tin phần dư thừa Mã chập (covolutional codes) Mã Turbo 02/12/2013 Trường ĐH Bách Khoa Hà Nội Slice Phần 2: Các khái niệm mã hóa sửa lỗi Tốc độ mã Khoảng cách Hamming (Hamming distance) Khoảng cách tối thiểu (minimum distance) Ma trận sinh, mã trận kiểm tra chẵn lẻ 02/12/2013 Trường ĐH Bách Khoa Hà Nội Slice Phần 2: Các khái niệm mã hóa sửa lỗi Tốc độ mã Giả thiết n 2 tập hợp phần tử ‘0’ ‘1’ biểu diễn vector n phần tử Số binary (n, k ) tập hợp 2k điểm không gian n Mã (n, k ) mã chấp nhận k bit đầu vào tạo n bit đầu Định nghĩa: tốc độ mã mã (n, k ) R k n Ví dụ: Mã lặp (repetition code) (n,1) nhận bit đầu vào tạo n bit lặp lại đầu Tốc độ mã R n 02/12/2013 Trường ĐH Bách Khoa Hà Nội Slice Phần 2: Các khái niệm mã hóa sửa lỗi Ma trận sinh Với m biểu diễn thông tin (message) C từ mã (codeword) mã lặp (n,1) C m, m, m, m Q trình mã hóa biểu diễn dạng ma trận Ma trận sinh mã lặp G C mG G 1,1,1, ,1 02/12/2013 Trường ĐH Bách Khoa Hà Nội Slice 10 Phần 3: Mã khối tuyến tính – Giải mã sửa lỗi Error Syndrome Để sửa lỗi mã khối tuyến tính, sử dụng phương pháp Error Syndrome Nếu cr từ mã thu phía thu, vector phát lỗi (error syndrome) s cr s = crHT Nếu cr bị lỗi, gọi e vector lỗi cr = c + e s = (c + e) HT = cHT + eHT s = + eHT Vector syndrome có giá trị phụ thuộc vào vector lỗi e Phần 3: Mã khối tuyến tính – Giải mã sửa lỗi Error Syndrome Nhận xét: cộng vector e với từ mã khác thu vector syndrome Tổng cộng có 2(n - k) syndromes, 2n vector lỗi Ví dụ: với mã (3,2), có syndromes vector lỗi e Rõ ràng sửa tất lỗi trường hợp Ví dụ: với mã (7,4) có syndromes 128 vector lỗi e Vì vậy, với syndromes, ta cần bố trí giá trị khác để sửa lỗi (lỗi bit) trường hợp không lỗi s=0 Phần 3: Mã khối tuyến tính – Giải mã sửa lỗi Bảng liệt kê lỗi Bảng liệt kê lỗi xây dựng sau: c1 (all zero) e1 e2 e3 … eN c2 …… c2+e1 …… c2+e2 …… c2+e3 …… …… …… c2+eN …… cM cM+e1 cM+e2 cM+e3 …… cM+eN s0 s1 s2 s3 … sN Bảng có 2k cột (tương ứng với từ mã hợp lệ) 2n-k hàng (số lượng syndrome) Các hàng có chung giá trị syndrome Các hàng khác có vector syndrome khác Phần 3: Mã khối tuyến tính – Giải mã sửa lỗi Bảng liệt kê lỗi xây dựng theo cách Liệt kê tất lỗi bit Liệt kê tất lỗi bit …… Kiểm tra đảm bác lỗi bổ sung vào bảng có vector syndrome khác Việc xây dựng bảng kết thúc sử dụng hết vector syndrome Để giải mã: Tính vector syndrome theo công thức s = + eHT Tra bảng tương ứng, tìm vector lỗi e tương ứng Cộng modulo vector e từ mã thu để giải mã c = cr + e Phần 3: Mã khối tuyến tính – Mã hệ thống Mã hệ thống có phần thơng tin phần kiểm tra phân tách từ mã, phần thông tin không thay đổi so với ban đầu Ma trận sinh mã hệ thống có dạng k 1 0 G 0 R R=n-k 0 p11 p12 p1R p21 p22 p2 R I | P pk1 pk pkR Phần 3: Mã khối tuyến tính – Mã hệ thống Với mã hệ thống, ma trận kiểm tra xây dựng G = [ I | P] and so H = [-PT | I] Ví dụ: mã (7,4) với khoảng cách Hamming dmin= 1 0 G I | P 0 0 0 0 1 0 1 1 0 0 1 1 0 1 1 0 H - P T | I 1 1 0 1 1 0 1 Phần 3: Mã khối tuyến tính – Mã hệ thống Tìm vector syndrome ví dụ Từ mã thu cr = [1101001] s c r H T 1 1 0 0 1 1 11 1 0 0 1 1 1 1 0 1 0 0 0 1 0 Phần 4: Mã Hamming Mã Hamming dạng đặc biệt mã khối tuyến tính Với r n 2r r Bản tin có độ dài k r k r Tốc độ mã R 1 r n 1 Từ mã có độ dài Khoảng cách Hamming d 3, khả sửa lỗi Mã Hamming mã có tốc độ mã R lớn với khoảng cách Hamming d Phần 4: Mã Hamming (7,4) Mã Hamming (7,4) dạng hệ thống 1 0 G I | P 0 0 0 0 1 0 1 1 0 0 1 1 0 1 1 0 H - P T | I 1 1 0 1 1 0 1 Mã Hamming (7,4) dạng không hệ thống 1 1 G 0 1 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 H 0 1 0 1 1 1 1 Phần 4: Mã Hamming (7,4) Ví dụ: mã Hamming (7,4) không hệ thống d = 1011 c = 1110000 + 0101010 + 1101001 = 0110011 e = 0010000 cr= 0100011 s = crHT = eHT = 011 Chú ý: giá trị vector syndrome vị trí lỗi Phần 4: Mã Hamming (7,4) – BER For a given channel bit error rate (BER), what is the BER after correction (assuming a memoryless channel, i.e., no burst errors)? To this we will compute the probability of receiving 0, 1, 2, 3, … errors And then compute their effect Bit Error Rates after Decoding Example – A (7,4) Hamming code with a channel BER of 1%, i.e., p = 0.01 P(0 errors received) = (1 – p)7 = 0.9321 P(1 error received) = 7p(1 – p)6 = 0.0659 76 P(2 errors received) p (1 p)5 0.002 – P(1) – P(2) = 0.000034 P(3 or more errors) = – P(0) Bit Error Rates after Decoding Single errors are corrected, so, 0.9321+ 0.0659 = 0.998 codewords are correctly detected Double errors cause bit errors in a bit codeword, i.e., (3/7)*4 bit errors per bit dataword, that is 3/7 bit errors per bit Therefore the double error contribution is 0.002*3/7 = 0.000856 Bit Error Rates after Decoding The contribution of triple or more errors will be less than 0.000034 (since the worst that can happen is that every databit becomes corrupted) So the BER after decoding is approximately 0.000856 + 0.000034 = 0.0009 = 0.09% This is an improvement over the channel BER by a factor of about 11 Perfect Codes So, 2R n to correct up to error n(n - 1) 1 n to correct up to errors n(n - 1) n(n - 1)(n - 2) 1 n to correct up to errors If equality then code is Perfect Only known perfect codes are SEC Hamming codes and TEC Golay (23,12) code (dmin=7) Using previous equation yields 23(23 - 1) 23(23 - 1)(23 - 2) 23 2048 211 2( 2312) ... codes are SEC Hamming codes and TEC Golay ( 23, 12) code (dmin=7) Using previous equation yields 23( 23 - 1) 23( 23 - 1)( 23 - 2) 23 2048 211 2( 23? ??12) ... (Convolutional codes): thông tin biến đổi theo hàm truyền đạt (phép tích chập) Khơng có giới hạn rõ ràng thông tin phần dư thừa Mã chập (covolutional codes) Mã Turbo 02/12/20 13 Trường ĐH Bách Khoa... Mã sữa lỗi sử dụng thông tin dư thừa (redundancy) mã hóa thêm vào liệu phía bên phát Thơng tin dư thừa phía thu sử dụng để sửa lỗi - mà không cần yêu cầu phát lại tin 02/12/20 13 Trường ĐH Bách