72 Ch-ơng 4: các kỹ thuật cơ bản trong thông tin số liệuS
4.2.1 Đặc tính của lỗi bit trên kênh thông tin
Các nguồn nhiễu gây sai lỗi trên kênh truyền gồm tạp âm trắng và các nguồn nhiễu tạp khác. Tạp âm trắng gây nên sai lỗi mang tính ngẫu nhiên và độc lập về mặt thống kê. Tuy vậy với hầu hết các kênh thông tin, nguồn nhiễu tạp khơng hồn tồn là tạp âm trắng, chúng th-ờng thăng giáng với các khoảng có mức nhiễu tạp rất nhỏ (chiếm phần lớn khoảng thời gian) và những khoảng xung nhiễu ngắn.
76 Ch-ơng 4: các kỹ thuật cơ bản trong thơng tin số liệu
Hình 4.12 mơ tả quan hệ giữa tỷ lệ lỗi bit vào tỷ số tín/tạp (S/N) của kênh. Mức độ sai lệch phụ thuộc rất mạnh vào tỷ số tín/tạp. Khi tăng tỷ số tín/tạp lên 1 db, tỷ lệ lỗi bit giảm khoảng 10 lần. Nhiễu xung làm giảm mạnh tỷ số S/N xuống giá trị khá thấp trong khoảng thời gian ngắn, kéo theo tăng rõ rệt tỷ lệ lỗi bit trong khoảng thời gian này. Lỗi trên kênh truyền vì vậy có xu h-ớng hợp thành các nhóm. Các nghiên cứu lý thuyết chỉ ra rằng, các nhóm lỗi nguy hại hơn đáng kể so với các lỗi đơn xuất hiện độc lập
Hình 4.12 Quan hệ giữa tỷ lệ lỗi bit và tỷ số S/N
Hình 4.13 chỉ ra một mơ hình tốn học mơ tả kênh truyền dữ liệu số. Kênh có hai trạng thái. Phần lớn thời gian kênh ở trạng thái 1, là trạng thái tốt với xác suất sai lỗi PLỗi 1 rất nhỏ. Trạng thái 2 với xác suát lỗi PLỗi 2 lớn đặc tr-ng cho chùm lỗi gây nên bởi nhiễu xung. Kênh có xu h-ớng l-u lại nhiều ở mỗi trạng thái, khi các xác suất chuyển trạng thái P12 và P21 nhỏ hơn so với các xác suất P11 và P22 t-ơng ứng. N = 2 N = 3 N = 4 N = 5 N = 6 N = 7 PLỗi [ 1.10 -N ] 1 dB S/N [dB]
Ch-ơng 4: các kỹ thuật cơ bản trong thông tin số liệu 77
Hình 4.13 Mơ hình tốn học kênh truyền số liệu
Hệ thống truyền tin cần có các tiện ích chống lại các loại sai lỗi kể trên, mà tr-ớc hết là phải sử dụng các mã kiểm sốt lỗi một cách có hiệu quả. Có hai loại mã kiểm sốt lỗi chính: Mã khối và mã xoắn.
4.2.2 Mã khối:
Trong mã khối, cứ k bit thông tin hợp với r bit kiểm tra tạo thành một từ mã n bit tuân theo một quy luật nhất định và đ-ợc ký hiệu là mã (n,k). Nh- vậy, trong số 2n từ mã chỉ có 2k từ mã hợp lệ. Độ d- đ-ợc tăng thêm một l-ợng là (n-k).k.100%
Tr-ờng hợp các bit thông tin đ-ợc giữ nh- nguyên gốc, ngay tiếp theo là các bít kiểm tra, tạo thành cấu trúc từ mã nh- hình vẽ 4.14, đ-ợc gọi là mã khối có tính hệ thống (systematic). Trong mã khối không hệ thống (nonsystematic), các bit thông tin không xuất hiện ở dạng nguyên bản.
Các bit thông tin Các bit kiểm tra
Hình 4.14 Cấu trúc mã khối hệ thống k r = n - k n P12 P21 P22 P11 Trạng thái 1 PLỗi 1 << Trạng thái 2 P Lỗi 2 >
78 Ch-ơng 4: các kỹ thuật cơ bản trong thông tin số liệu
Khoảng cách Haming dmin
Giả sử Ci và Cj là hai từ mã trong một mã khối nào đó. Các từ mã này sẽ khác nhau ở một vài vị trí bit. Ta ký hiệu dij là số các vị trí khác nhau. Ví dụ:
Ci = 1 0 0 0 1 1 1 Cj = 0 0 0 1 0 1 1
Hai từ mã này khác nhau tại các bit thứ 1, thứ 4 và thứ 5 từ trái sang, bởi vậy dij = 3. Giá trị nhỏ nhất trong toàn bộ các dij giữa hai từ mã hợp lệ bất kỳ của bộ mã đ-ợc gọi là khoảng cách Haming và ký hiệu là dmin.
Khoảng cách Haming dmin liên quan chặt chẽ tới khả năng phát hiện và sửa lỗi của bộ mã, cụ thể:
• Nếu trong từ mã thu đ-ợc có D lỗi và D dmin - 1
thì lỗi sẽ đ-ợc phát hiện, theo nghĩa từ mã thu đ-ợc không phải là một từ mã hợp lệ.
• Nếu trong từ mã thu đ-ợc có t lỗi và
2 t +1 dmin 2 t + 2
thì khơng những ta phát hiện đ-ợc lỗi, mà cịn có khả năng hiệu chỉnh chúng, nghĩa là có khả năng hồi phục chính xác từ mã gốc.
Mã chẵn lẻ
Mã đơn giản nhất đ-ợc dùng trong truyền số liệu là mã chẵn lẻ. Số bit kiểm tra là 1 và quy luật để tạo thành nó là tổng số số 1 trong từ mã tạo thành sẽ là chẵn hay lẻ theo ta chọn. Mã kiểm tra chẵn th-ờng đ-ợc dùng trong truyền khơng đồng bộ cịn mã kiểm tra lẻ th-ờng dùng trong truyền đồng bộ. Trong mã chẵn lẻ, n=k+1. Nếu tại đầu thu quy luật trên bị vi phạm thì từ mã đã chứa sai lỗi và cần phải phát lại. Trong tr-ờng hợp này, khơng có khả năng sửa lỗi. Nếu có một số chẵn lỗi trong từ mã thì đầu thu khơng phát hiện ra và giải mã sẽ bị sai.
Khả năng phát hiện lỗi sẽ tăng lên khi ta dùng một bộ kiểm tra chẵn lẻ thứ hai nh- minh hoạ trên hình 4.15. ở đây, một khung đ-ợc xem nh- một khối các ký tự theo cả hai chiều. Theo chiều ngang, mỗi ký tự thứ i đ-ợc thêm một bít chẵn lẻ Ri nh- mô tả ở trên. Ngồi ra, dọc theo cùng một vị trí thứ j xun qua tồn bộ các ký tự của khối cũng tạo thêm một bit chẵn lẻ Cj, hợp thành ký tự kiểm tra khối BCC.
Ch-ơng 4: các kỹ thuật cơ bản trong thông tin số liệu 79 bit 1 bit 2 bit n bit VRC Ký tự 1 b11 b21 bn1 R1 Ký tự 2 b12 b22 bn2 R2 Ký tự m b1m b2m bnm Rm Ký tự BCC C1 C2 Cn Cn+1 (Các bit LRC)
Hình 4.15 Kiểm tra chẵn lẻ theo chiều ngang (VRC) và theo chiều đứng (LRC)
Nếu chỉ có 1 sai lỗi, căn cứ vào kết quả kiểm tra cả theo chiều ngang và theo chiều đứng, ta có thể xác định chính xác vị trí lỗi và qua đó hiệu chỉnh nó. Song khi có một vài lỗi thì việc hiệu chỉnh chúng là khơng thể.
Mã Haming:
Mã Haming là lớp mã khối (n,k) với đặc tính n = 2r -1 k = n - r = 2r - 1 - r
Mã Haming có khoảng cách dmin = 3 bởi vậy t = 1, do đó có khả năng hiệu chỉnh đ-ợc lỗi đơn. Sau đây ta xét ví dụ với r = 3, khi này n = 7, k = 4.
Ký hiệu các bít trong từ mã lần l-ợt là X1, X2, X3, X4, X5, X6, X7, trong đó X1X4 là các bit thông tin, X5 X7 là các bit kiểm tra. Mã đ-ợc xây dựng theo quy luật sau:
I : X1 X3 X5 X7 = 0 II : X2 X3 X6 X7 = 0 II : X2 X3 X6 X7 = 0 III : X4 X5 X6 X7 = 0
80 Ch-ơng 4: các kỹ thuật cơ bản trong thông tin số liệu
ở đây ký hiệu mơ tả phép cộng modun 2
Từ đó, ta có thể rút ra cách xác định các bít kiểm tra từ các bit thông tin: X5 = X2 X3 X4
X6 = X1 X3 X4 X7 = X1 X2 X4
Quá trình mã hố đ-ợc thực hiện dễ dàng nhờ bộ ghi dịch và các mạch hoặc tuyệt đối nh- hình 4.11.
Tại đầu thu sẽ tiến hành so sánh các bit kiểm tra thu đ-ợc và các bit kiểm tra xác định từ các bít thơng tin thu đ-ợc. Nếu hai kết quả là đồng nhất thì từ mã khơng chứa sai lỗi. Nếu ng-ợc lại, sai lỗi là bị phát hiện và có thể hiệu chỉnh.
Hình 4.11
Trở lại với ví dụ trên, q trình so sánh có thể mơ tả:
Các bít kiểm tra thu đ-ợc X5 X6 X7
Các bit kiểm tra tính từ các bit thơng tin thu X5’ X6’ X7’
Từ so sánh (Syndrome) F F5 F6 F7
Sai lỗi đ-ợc phát hiện và hiệu chỉnh căn cứ vào Syndrome F nhận đ-ợc nh- mô tả trên bảng 4.3. X4 X3 X2 X1 X7 X6 X5 + + + Dữ liệu vào Dữ liệu ra +
Ch-ơng 4: các kỹ thuật cơ bản trong thông tin số liệu 81 Bảng 4.3 STT F F5 F6 F7 Vị trí bít lỗi STT F F5 F6 F7 Vị trí bít lỗi 0 0 0 0 Không lỗi 4 1 0 0 X5 1 0 0 1 X7 5 1 0 1 X2 2 0 1 0 X6 6 1 1 0 X3 3 0 1 1 X1 7 1 1 1 X4 Mã Cyclic Mã Cyclic là một họ mã có ứng dụng đặc biệt rộng rãi trong thơng tin. Mã có tên gọi Cyclic do có đặc tính: Dịch cyclic (dịch vòng) của một từ mã cũng là một từ mã.
Hình 4.16
Khái niệm “dịch vịng” đ-ợc minh hoạ trên hình 4.16. Trên hình này, thay thế việc đọc theo chiều ngang một từ 7-bit bằng việc đọc vòng quanh một hình trịn. Khi bắt đầu từ một điểm bất kỳ, ví dụ điểm A, ta có từ mã tính theo chiều quay kim đồng hồ là 1101001. Khi khởi đầu từ một điểm bất kỳ khác, ví dụ điểm B, ta có một từ mã khác 0111010. Hai từ mã này có thể tạo trên cơ sở từ kia bằng phép dịch vịng. Trên hình ta thấy có thể có 7 vị trí để bắt đầu một từ mã, mỗi từ là dịch vòng của từ khác. Thứ tự của các từ mã tạo ra còn phụ thuộc theo h-ớng dịch, song tập hợp các từ mã tạo thành khơng phụ thuộc vào h-ớng dịch vịng.
0 1 1 1 0 1 0 A B
82 Ch-ơng 4: các kỹ thuật cơ bản trong thông tin số liệu
Mã Cyclic là một lớp mã đặc biệt quan trọng do nó có đặc tính là mã đại số, cho phép việc mã hoá và giải mã đơn giản. Thủ tục tạo mã có thể tóm tắt nh- sau: k bit thơng tin A = [Ak-1... A1 A0] có thể đ-ợc viết nh- hệ số của một đa thức
A(x) = Ak-1 xk-1 ... A2 x2 A1 x A0
T-ơng tự, từ mã tạo thành gồm n bit cũng t-ơng ứng với một đa thức: T(x) = Tn-1 xn-1 .... T2 x2 T1 x T0
Quá trình tạo và giải mã còn liên quan tới một đa thức nữa, gọi là đa thức sinh g(x) có bậc r = n - k
g(x) = gr-1 xr-1 ... g2 x2 g1 x 1
Các hệ số của g(x) đ-ợc xác định từ điều kiện g(x) phải là nhân tử của đa thức f(x) = xn +1. Khi g(x) đã xác định, T(x) sẽ biết từ ph-ơng trình:
T(x) = g(x) A(x)
Nh- vậy, tính chất quan trọng của mã Cyclic là: Đa thức ứng với một từ mã T(x) luôn chia hết cho đa thức sinh g(x).
Ví dụ, ta cần tạo một mã (7,4). Do n = 7 nên f(x) = x7 + 1. Đa thức f(x) có thể phân tích bằng tích của 3 nhân tử:
f(x) = (x 1) . (x3 x 1) . (x3 x2 1)
Do n = 7 và k = 4 nên T(x) có bậc là n -1 = 6 và A(x) có bậc là k-1 = 3. Do đó đa thức sinh g(x) phải có bậc là 3. Có 2 nhân tử của f(x) thoả mãn điều kiện này và đều có thể chọn làm đa thức sinh. Giả sử ta chọn g(x) = x3 x 1. Bây giờ khi biết các bit thơng tin, ví dụ A = [1001], ta sẽ có
A(x) = 1.x3 0.x2 0.x 1 = x3 1
T(x) = g(x) A(x) = (x3 x2 1) (x3 1) = (x6 x5 x2 1) Vậy
T = [ 1 1 0 0 1 0 1]
Tại đầu thu, ng-ời ta xét phần d- của đa thức t-ơng ứng với từ mã thu đ-ợc cho đa thức sinh. Nếu phần d- bằng không, từ mã thu là từ mã hợp lệ. Trong tr-ờng hợp ng-ợc lại, từ mã thu đ-ợc chắc chắn chứa sai lỗi, và ng-ời ta có thể hiệu chỉnh đ-ợc một số sai lỗi khi xem xét cụ thể phần d- này.
L-u ý rằng, mã Cyclic đ-ợc xây dựng theo cách trên là mã khối không hệ thống (nonsystematic), khi các bit thông tin không đ-ợc giữ nguyên tại đầu từ mã phát đi.
Ch-ơng 4: các kỹ thuật cơ bản trong thơng tin số liệu 83 Cũng có thể xây dựng mã Xyclic hệ thống theo cách thức nh- sau:
1. Nhân đa thức tin A(x) với Xn-k
2. Chia Xn-k.A(x) cho g(x) để xác định phần d- R(x). 3. T(x) nhận đ-ợc bằng cách cộng R(x) vào Xn-k.A(x).
B-ớc 1 đ-ợc thực hiện một cách đơn giản nhờ thêm n-k số 0 vào dẫy tin đầu vào. Phần d- R(x) thu đ-ợc nhờ bộ ghi dịch có n-k khâu, kết hợp với các mạch cộng modulo 2 tại các vị trí ứng với hệ số khác 0 của đa thức sinh g(x). Hình 4.17 mơ tả mạch thực hiện và bảng mô tả trạng thái bộ ghi qua n nhịp để thu đ-ợc R(x) cũng với ví dụ đã xét ở trên. Thứ tự Trạng thái Xung vào A B C Ban đầu 0 0 0 B-ớc 1 0 0 1 1 B-ớc 2 0 1 0 0 B-ớc 3 1 0 0 0 B-ớc 4 1 0 0 1 B-ớc 5 1 0 1 0 B-ớc 6 1 1 1 0 B-ớc 7 0 1 1 0 Các bit phần d- thu đ-ợc
Hình 4.17 Mơ tả quá trình tạo mã Cyclic
Có 4 đa thức sinh đ-ợc sử dụng rộng rãi:
CRC - 12 = X12 + X11 + X3 + X2 + 1 CRC - 16 = X16 + X15 + X2 + 1 CRC - CCITT = X16 + X12 + X5 + 1 CRC -32 = X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 + X + 1 + + A B C X3 X2 1 0 0 0 1 0 0 1 Các bít vào Các bit thơng tin Các bit 0 thêm vào Đa thức sinh: g(x) = x3 + x2 + 1 Các bit thông tin: 1 0 0 1
Các bit kiểm tra -phần d- R(x): 0 1 1
Từ mã tạo thành:
84 Ch-ơng 4: các kỹ thuật cơ bản trong thông tin số liệu
Đa thức sinh CRC -12 đ-ợc dùng để truyền luồng ký tự 6 bit và tạo ra 12 bit kiểm tra độ d- FCS. Cả CRC - 16 và CRC - CCITT đều đ-ợc dùng phổ biến ở Mỹ và Châu Âu t-ơng ứng cho ký tự 8 bit. CRC - 32 cho khả năng sửa lỗi hiệu quả hơn và đ-ợc dùng nh- một tuỳ chọn (Option) cho một số chuẩn truyền đồng bộ điểm - điểm và các ứng dụng chuyên dụng.
4.2.3 Mã xoắn.
Mã khối khá hiệu quả khi các sai lỗi xuất hiện độc lập song khơng đủ mạnh trong tr-ờng hợp có chùm lỗi. Mã xoắn phát huy tốt hơn trong tr-ờng hợp này.
Tr-ớc hết, ta xem xét một loại mã có t- t-ởng rất gần với mã xoắn, đ-ợc xây dựng để chống các chùm lỗi khi thiết lập cuộc gọi của thông tin di động
Mã Hagelbarger
Mã này đ-ợc dùng để phát các tin tức số cần thiết khi thiết lập một cuộc gọi trong điện thoại di động cellular. Khi đối t-ợng liên lạc tiến hành gọi trong lúc di chuyển vào vùng khó phủ sóng, một số tin tức có thể mất. Do lúc này này hai đối t-ợng ch-a liên lạc đ-ợc với nhau nên khơng thể có kênh ng-ợc để thực hiện sửa lỗi theo ph-ơng thức ARQ, vì vậy FEC là cách thức duy nhất.
Bộ mã hố Hagelbarger có sơ đồ nh- trên hình 4.17.
Hình 4.17: Bộ mã hố Hagebarger
Luồng bit đ-ợc đ-a vào bộ ghi dịch. Mỗi b-ớc dịch trong thanh ghi này đ-ợc chuyển dịch một cách đồng bộ với chuyển mạch lên - xuống tại đầu vào và đầu ra. Các bit mang tin vì vậy đ-ợc xen lẫn với các bit kiểm tra. Các bit thông tin
h i
g f e d c b a
1
2 Các bit thông tin
Ch-ơng 4: các kỹ thuật cơ bản trong thông tin số liệu 85 đ-ợc chuyển vận qua thanh ghi dịch trong khi các bit kiểm tra đ-ợc hình thành trong nhánh d-ới của bộ mã hố..
Ta hãy dõi theo một bít thơng tin trong bộ mã hố. Một bit (ví dụ bit i) sẽ 3
lần tham gia vào tạo dẫy bit ra:
✓ Khi ở trong ngăn nhớ 1, bit sẽ kết hợp (hoặc tuyệt đối) với bit ở ngăn nhớ 2
✓ Khi ở trong ngăn nhớ 2, bit sẽ kết hợp (hoặc tuyệt đối) với bit ở ngăn nhớ 1
✓ Bít tự dịch chuyển ra khỏi thanh ghi
Tại đầu thu, tr-ớc khi thu một bit thông tin, ta đã nhận đ-ợc 2 bit kiểm tra tạo