Giới thiệu bài toán chống nhiễu
Lý thuyết Thông tin Người soạn Hồ Văn Quân - Khoa CNTT - ĐH Bách Khoa Tp.HCM 54 BÀI 10 ĐỊNH LÝ KÊNH, MÃ CHỐNG NHIỄU 10.1 Giới thiệu bài toán chống nhiễu 10.2 Định lý kênh có nhiễu cho kênh nhị phân đối xứng rời rạc (BSC) 10.3 Định lý ngược của kênh truyền có nhiễu 10.1 Giới thiệu bài toán chống nhiễu Mục tiêu quan trọng nhất của bài toán chống nhiễu là làm sao ở bên nhận sau khi nhận dãy kí hiệu có thể đoán (giải mã) được càng chính xác càng tốt dãy kí hiệu nào đã được phát ở đầu phát. Chẳng hạn chúng ta xét một nguồn nhị phân đối xứng với xác suất chéo là ε, đồng thời giả sử nguồn phát là đẳng xác suất, tức P(0) = P(1) = 1/2. Với ε < 1/2, chúng ta đưa ra cơ chế giải mã ở đầu nhận là: nếu nhận được y = 0 thì đoán bên phát đã phát đi x = 0 và nếu y = 1 thì đoán x = 1. Với cơ chế này chúng ta có xác suất giải mã bị lỗi là P(lỗi) = P(y = 0) P(x = 1 | y = 0) + P(y = 1) P(x = 0 | y = 1) = ε/2 + ε/2 = ε. Chú ý trong trường hợp ở đây chúng ta tính được P(y = 0) = P(y = 1) = 1/2 và P(x ≠ y | y) = ε. Một trong vấn đề quan trọng được đặt ra ở đây là có thể giảm được xác suất giải mã bị lỗi hay không. Để làm điều này có một hướng thực hiện như sau. Để gởi kí hiệu 0 thì chúng ta gởi đi chuỗi 3 kí hiệu 0 và tương tự để gởi đi kí hiệu 1 thì chúng ta gởi đi 3 kí hiệu 1. Ở bên nhận chúng ta đưa ra cơ chế giải mã như sau: nếu chuỗi nhận có nhiều kí hiệu 0 hơn 1 thì giải mã thành 0 và ngược lại. Chẳng hạn bên nhận nếu nhận được 010 thì giải mã thành 0 còn nếu nhận được 110 thì giải mã thành 1. Với cơ chế này chúng ta có xác suất giải mã bị lỗi là P(lỗi) = 3(1 – ε)ε 2 + ε 3 . Xác suất này nhỏ hơn ε. Tuy nhiên chúng ta thấy hiệu suất truyền thông tin lúc này đã giảm xuống 3 lần. Tương tự nếu chúng ta muốn xác suất giải mã tiến đến 0 (tức nhỏ tuỳ ý) thì chúng ta sẽ mã hoá 0 thành dãy 2n + 1 kí hiệu 0 và mã hoá 1 thành 2n + 1 kí hiệu 1, nhưng tương ứng lúc này hiệu suất truyền thông tin giảm xuống 2n + 1 lần so với ban đầu. Có một cách thứ hai chúng ta sẽ có thể giảm xác suất giải mã lỗi xuống gần bằng 0 nhưng không giảm hiệu suất truyền thông tin xuống gần bằng 0 mà chỉ cần nhỏ hơn một ngưỡng nào đó là đủ. Ngưỡng đó chính là dung lượng kênh. Ý tưởng của cách này cũng khai thác ý tưởng trên ở chỗ thay vì để gởi đi 0 và 1, cái mà có “khoảng cách Hamming” giữa chúng là 1 thì chúng ta sẽ mã hoá lần lượt thành 000 và 111, cái mà có “khoảng cách Hamming” giữa chúng là 3 và vì vậy giảm xác suất giải mã bị lỗi xuống. Cách giải quyết này được trình bày rõ ràng hơn trong phần sau đây. 10.2 Định lý kênh có nhiễu cho kênh nhị phân đối xứng rời rạc (BSC) Xét một kênh nhị phân đối xứng với xác suất chéo là p. Dung lượng kênh trong đơn vị bits/kí hiệu là C = 1 – H(p) với H(p) = –plogp – (1–p)log(1–p). Giả sử rằng mỗi kí hiệu có thời gian truyền là τ, hay số kí hiệu được truyền trong 1 giây là 1/τ, thì dung lượng trong đơn vị bits/giây là C = [1 – H(p)]/τ. Xét một nguồn X có entropy là H(X) bits/ký hiệu, tức là nguồn này tạo ra thông tin ở tốc độ R = H(X)/τ bits/giây. Chúng ta có định lý kênh sau. Định lý 10.1 Chừng nào mà R (bits/giây) còn nhỏ hơn C (bits/giây), thì sự truyền thông trên kênh với tỉ lệ lỗi nhỏ tuỳ ý là có thể thực hiện được. Để chứng minh định lý này chúng ta cần đến một số khái niệm và kết quả lần lượt được giới thiệu sau đây. Lý thuyết Thông tin Người soạn Hồ Văn Quân - Khoa CNTT - ĐH Bách Khoa Tp.HCM 55 Trọng số Hamming Trọng số Hamming của một dãy kí hiệu v = a 1 a 2 .a n , trong đó mỗi a i ∈ {0, 1, ., m–1}, là số kí hiệu khác 0 của dãy, và thường được kí hiệu là w(v). Khoảng cách Hamming Khoảng cách Hamming của hai dãy kí hiệu v 1 , v 2 với chiều dài bằng nhau là số vị trí khác nhau của hai dãy, và thường được kí hiệu là d(v 1 , v 2 ). Phép cộng cơ số m, ⊕ Xét a, b ∈ {0, 1, ., m–1} thì a ⊕ b = (a + b) mod m. Nếu v 1 = a 1 a 2 .a n , v 2 = b 1 b 2 .b n thì v 1 ⊕ v 2 = c 1 c 2 .c n trong đó c i = a i ⊕ b i với i = 1, 2, ., n. Ví dụ 10.1 w(10100) = 2, w(01120) = 3. d(10100, 10001) = 2, d(011010, 101101) = 5. Với m = 2 thì 1011 ⊕ 1101 = 0110. Với m = 3 thì 1021 ⊕ 2120 = 0111. Bổ đề d(v 1 , v 2 ) = w(v 1 ⊕ v 2 ) d(v 1 , v 2 ) + d(v 2 , v 3 ) ≥ d(v 1 , v 3 ) Bất đẳng thức thứ hai của bổ đề trên có dạng của bất đẳng thức tam giác: tổng hai cạnh của một tam giác lớn hơn hoặc bằng cạnh còn lại. Định lý 10.1 đúng cho kênh rời rạc không nhớ bất kỳ. Tuy nhiên ở đây chúng ta chỉ chứng minh cho trường hợp thông dụng nhất là kênh nhị phân đối xứng rời rạc. Ý tưởng chứng minh ở đây là chúng ta sẽ mã hoá các dãy dữ liệu thành các dãy từ mã, trong đó các kí hiệu mã lấy từ bảng kí hiệu đầu vào của kênh và xử lý các từ mã này như các đầu vào cơ bản của kênh. Một xác suất lỗi nhỏ tuỳ ý có thể đạt được dựa trên sự mã hoá như sau: (1) chọn chiều dài N của dãy dữ liệu đủ dài, (2) mã hoá các dãy này thành các từ mã có khoảng cách Hamming xa nhau. Nguyên tắc giải mã ở đầu ra được thiết kế như sau: nếu v j là dãy kí hiệu nhận được ở đầu ra thì sẽ giải mã thành từ mã w i mà có khoảng cách Hamming nhỏ nhất đối với v j . Với cách chọn này chúng ta sẽ thấy xác suất giải mã lỗi là nhỏ nhất. Thật vậy chúng ta có p(w i | v j ) = p(w i )p(v j | w i )/p(v j ). Do đó khi chúng ta không rõ về p(w i ) và dĩ nhiên sẽ kéo theo p(v j ) thì p(w i | v j ) lớn nhất khi p(v j | w i ) là lớn nhất. Mà p(v j | w i ) = p D (1–p) N–D trong đó D là khoảng cách Hamming của v j và w i , N là chiều dài của chúng, p là xác suất chéo. Nếu xác suất chéo p < 0,5 thì p(v j | w i ) sẽ lớn nhất khi D là nhỏ nhất. Bây giờ chúng ta sẽ chứng minh với mọi θ > 0 nhỏ tuỳ ý, với N đủ lớn tồn tại cách mã hoá các dãy dữ liệu thành các từ mã sao cho với nguyên tắc giải mã trên có xác suất giải mã lỗi là nhỏ hơn θ. Thật vậy số dãy dữ liệu có chiều dài N là vào khoảng M = 2 NH(X) = 2 NRT Trong khi đó tổng số dãy có chiều dài N là 2 N . Gọi {w 1 , w 2 , …, w M } là một tập từ mã bất kỳ, P e là xác suất giải mã lỗi đối với tập này. Nếu chúng ta chứng minh được rằng với mọi θ > 0 nhỏ tuỳ ý, với N đủ lớn giá trị trung bình của P e , kí hiệu là e P , nhỏ hơn θ thì sẽ tồn tại một tập từ mã mà có xác suất giải mã lỗi P e nhỏ hơn θ. Chúng ta có với xác suất lỗi trên đường truyền là p thì một dãy có chiều dài N sẽ có trung bình Np vị trí lỗi. Với hai số dương ε, δ nhỏ tuỳ ý, theo luật yếu của số lớn với N đủ lớn thì xác suất để số vị trí của chuỗi nhận v j khác với chuỗi phát w i lớn hơn N(p + ε) là nhỏ hơn δ. Hay nói theo ngữ cảnh của khoảng cách Hamming là Lý thuyết Thông tin Người soạn Hồ Văn Quân - Khoa CNTT - ĐH Bách Khoa Tp.HCM 56 P(d(w i , v j ) > N(p + ε) ) < δ Vì vậy bộ mã mà chúng ta mong muốn sẽ như sau: Khoảng cách Hamming giữa hai từ mã bất kỳ là lớn hơn hoặc bằng 2N(p + ε) + 1. Như vậy theo bất đẳng thức tam giác với mỗi v j nhận được thì sẽ tồn tại một từ mã w i mà có d(w i , v j ) ≤ N(p + ε) còn các từ mã w k khác sẽ có d(w k , v j ) ≥ N(p + ε) + 1. Vì vậy chúng ta sẽ giải mã được duy nhất v j thành w i . Với ý tưởng này, chúng ta sẽ đưa ra cơ chế giải mã lỏng hơn như sau (so với cơ chế đã nói ở trên) cho một tập từ mã bất kỳ {w 1 , w 2 , …, w M }, nhưng cũng sẽ đảm bảo xác suất giải mã lỗi là nhỏ hơn θ: Với mỗi dãy v j nhận được, chúng ta sẽ định nghĩa một tập kiểm tra A j bao gồm tất cả những dãy có chiều dài N và có khoảng cách Hamming so với v j nhỏ hơn hay bằng N(p + ε). Nếu từ mã được truyền w i là từ mã duy nhất thuộc tập A j thì giải mã v j thành w i . Ngược lại thông báo một lỗi đã xảy ra. Một lỗi xảy ra sẽ thuộc vào một trong hai trường hợp sau đây: (1) từ mã được truyền w i không thuộc A j , tức là d(w i , v j ) > N(p + ε). Lỗi này xảy ra với xác suất nhỏ hơn δ. (2) tồn tại một từ mã w k khác cũng thuộc A j . Lúc này chúng ta sẽ không biết nên giải mã v j thành w i hay w k . Bây giờ chúng ta sẽ chứng minh xác suất giải mã lỗi trung bình theo cách này sẽ nhỏ hơn θ với θ nhỏ tuỳ ý cho trước. Chúng ta có P e ≤ δ + ∑ ≠ = ∈ M ij j ji AwP 1 )( Để tính e P chúng ta sẽ tính giá trị trung bình của P(w i ∈ A j ). Giá trị trung bình này sẽ bằng số dãy thuộc tập A j chia cho tổng số dãy: N pN k ji k N AWP 2 )( )( 0 ∑ ε+ = =∈ Từ đây suy ra e P < δ + (M – 1) N pN k k N 2 )( 0 ∑ ε+ = Mà chúng ta có một bất đẳng thức nổi tiếng sau )( 0 2 α α = ≤ ∑ NH N k k N với H(α) = –α logα – (1–α)log(1–α). Áp dụng vào bất đẳng thức trên chúng ta có e P ≤ δ + M 2 –N [1 – H(p + ε)] = δ + 2 NRT 2 –N [1 – H(p + ε)] = δ + 2 –N [1 – H(p + ε) – RT] Vì ε và δ có thể nhỏ tuỳ ý, nên chừng nào mà R còn nhỏ hơn [1 – H(p)]/τ thì có thể làm cho e P nhỏ tuỳ ý bằng cách tăng N. Đến đây hoàn tất chứng minh của chúng ta. Ví dụ 10.2 Chẳng hạn xét lại một ví dụ trước đây, một kênh đối xứng nhị phân có xác suất chéo là ε = 0,01. Tốc độ truyền kí hiệu trên một giây là f = 1000 kí hiệu/giây (tức là τ = 0,001 giây). Chúng ta có C = 0,919 bits/kí hiệu và C = 919 bits/giây. Thì định lý kênh cho phép chúng ta kết luận, với xác suất đúng tiến tới 1, rằng với N khá lớn chẳng hạn N = 1000, thì trong 2 1000 Lý thuyết Thông tin Người soạn Hồ Văn Quân - Khoa CNTT - ĐH Bách Khoa Tp.HCM 57 dãy có chiều dài 1000 chúng ta có thể chọn được 2 K dãy với K < 919 sao cho khoảng cách Hamming giữa các dãy là ≥ 2Nε + 1 = 21. Để tiến tới việc xây dựng các bộ mã chống nhiễu chúng ta giới thiệu tiếp các khái niệm cơ bản sau đây. Khoảng cách Hamming của bộ mã Khoảng cách Hamming của một bộ mã A, với điều kiện A là mã đều, kí hiệu là d(A), là khoảng cách Hamming nhỏ nhất trong tất cả các khoảng cách giữa hai từ mã bất kỳ của A. Định lý 10.2 Một bộ mã nhị phân có khoảng cách Hamming d thì có thể (1) Phát hiện sai được t bit nếu d ≥ t + 1. (2) Sửa sai được t bit nếu d ≥ 2t + 1. Chứng minh Gọi w i là từ mã phát, v i là dãy nhận được tương ứng. Để chứng minh ý thứ nhất chúng ta thấy rằng nếu sai tối đa t > 0 bit thì khoảng cách Hamming giữa từ mã phát và tổ hợp nhận sẽ không vượt quá t. Do đó tổ hợp nhận sẽ không thể trùng với bất kỳ từ mã nào vì khoảng cách Hamming giữa hai từ mã bất kỳ là ≥ t + 1. Vì vậy bên nhận có thể phát hiện được sai. Tương tự trong trường hợp thứ hai chúng ta sẽ có d(w i , v i ) ≤ t mà do d(w i , w j ) ≥ 2t + 1, với w j là một từ mã bất kỳ khác w i . Nên theo bất đẳng thức tam giác về khoảng cách Hamming chúng ta có d(w j , v i ) ≥ t + 1 với mọi từ mã w j ≠ w i . Vì vậy bên nhận có thể giải mã đúng v i thành w i dựa trên sự khác biệt về khoảng cách Hamming này. 10.3 Định lý ngược của kênh truyền có nhiễu Ở đây chúng ta sẽ giới thiệu định lý ngược của Định lý 10.1. Định lý 10.3 Nếu tốc độ truyền tin R (bits/giây) lớn hơn dung lượng kênh C (bits/giây), thì sự truyền thông trên kênh với tỉ lệ lỗi nhỏ tuỳ ý là không thể thực hiện được. Hay nói cách khác xác suất giải mã lỗi tiến đến 1 khi chiều dài của dãy cần truyền gia tăng. Định lý này phát biểu rằng nếu tốc độ truyền tin lớn hơn dung lượng kênh thì việc truyền không được đảm bảo có nghĩa là chúng ta không thể giải mã đúng được. Định lý này chỉ mang tính chất giới thiệu chứ không được chứng minh ở đây.