Tải bản đầy đủ (.pdf) (123 trang)

Xử lý lỗi trong thông tin số

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.11 MB, 123 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

HUỲNH NGUYỄN BẢO PHƯƠNG

XỬ LÝ LỖI TRONG THÔNG TIN SỐ

LUẬN VĂN THẠC SĨ KHOA HỌC
Chuyên ngành : Điện tử viễn thông

NGƯỜI HƯỚNG DẪN KHOA HỌC :
PHƯƠNG XUÂN NHÀN
Hà Nội – 2007


Mục lục
Mục lục...........................................................................................1
Danh mục hình vẽ .................................Error! Bookmark not defined.
Danh mục các bảng biểu ........................Error! Bookmark not defined.
Danh sách các từ thuật ngữ và các từ viết tắtError! Bookmark not defined.
Mở đầu ................................................Error! Bookmark not defined.
Chương 1: Tổng quan về hệ thống IP Call CenterError! Bookmark not defined.

1.1 Định nghĩa ...................................................Error! Bookmark not defined.
1.2 Yêu cầu chung đối với hệ thống IP Call CenterError! Bookmark not defined.
1.3 Lịch sử phát triển .........................................Error! Bookmark not defined.
1.4 Lợi ích và khả năng ứng dụng của IP Call CenterError! Bookmark not defined.
1.5 Một số giải pháp của các hãng trên thế giới Error! Bookmark not defined.
1.5.1 Giải pháp của Ericsson.........................Error! Bookmark not defined.
1.5.2 Giải pháp của Avaya............................Error! Bookmark not defined.


1.5.3 Giải pháp IBM CallPath.......................Error! Bookmark not defined.

1.6 Thị trường Việt Nam-nhu cầu, hiện trạng và khả năng ứng dụngError! Bookmark not defin
1.6.1 Nhu cầu ................................................Error! Bookmark not defined.
1.6.2 Khả năng ứng dụng trong mạng Viễn thông Việt NamError! Bookmark not defined.
1.7 Mô hình hệ thống IP Call Center điển hình.Error! Bookmark not defined.
1.8 Cấu trúc kết nối IP Call Center....................Error! Bookmark not defined.
1.9 Vấn đề an toàn và bảo mật...........................Error! Bookmark not defined.
1.10 Các chức năng cơ bản của hệ thống ..........Error! Bookmark not defined.
1.10.1 Hỗ trợ khả năng xử lý cuộc gọi đến thông minh:Error! Bookmark not defined.
1.10.2 Hỗ trợ nhiều Call Center ảo (VCC) ...Error! Bookmark not defined.
1.10.3 Tính linh hoạt và khả năng điều khiểnError! Bookmark not defined.
1.10.4 Hỗ trợ tương tác với IVR (Interactive Voice):Error! Bookmark not defined.
1.10.5 Tính bảo mật ......................................Error! Bookmark not defined.
1.10.6 Thực hiện báo cáo ..............................Error! Bookmark not defined.


1.10.7 Chức năng của Call Center ảo (VCC)Error! Bookmark not defined.
Chương 2: Thiết kế tổng thể hệ thống IP Call CenterError! Bookmark not defined.

2.1 Mô hình hoá hệ thống ..................................Error! Bookmark not defined.
2.1.1 Các tác nhân tham gia vào hệ thống ....Error! Bookmark not defined.
2.1.2 Mô hình giao tiếp giữa các tác nhân với hệ thốngError! Bookmark not defined.
2.2 Yêu cầu về tính năng của IP Call Center.....Error! Bookmark not defined.
2.2.1 Tính hiệu quả và khả dụng...................Error! Bookmark not defined.
2.2.2 Độ tin cậy .............................................Error! Bookmark not defined.
2.2.3 Khả năng bảo trì, sửa đổi và nâng cấp .Error! Bookmark not defined.
2.2.4 Khả năng tương thích môi trường........Error! Bookmark not defined.
2.2.5 Bản quyền sản phẩm ............................Error! Bookmark not defined.
2.2.6 Tính an toàn và bảo mật.......................Error! Bookmark not defined.

2.2.7 Đơn giản cho người sử dụng, quản lý, khai thácError! Bookmark not defined.
2.3 Mô hình thiết kế tổng thể.............................Error! Bookmark not defined.
2.3.1 Mô hình dựa trên SIP base...................Error! Bookmark not defined.
2.3.2 Sử dụng Parlay API trên cơ sở mạng NGNError! Bookmark not defined.

2.4 Các thành phần chính của hệ thống .............Error! Bookmark not defined.
2.4.1 SIP platform .........................................Error! Bookmark not defined.
2.4.2 ACD Service(Automatic Call Distribution)Error! Bookmark not defined.
2.4.3 IVR Service(Interactive Voice Response)Error! Bookmark not defined.
2.4.4 Call Logger ..........................................Error! Bookmark not defined.
2.4.5 Database Server ...................................Error! Bookmark not defined.
2.4.6 Service Database ..................................Error! Bookmark not defined.
2.4.7 Customer Server...................................Error! Bookmark not defined.
2.4.8 Voice Mail Server ................................Error! Bookmark not defined.
2.4.9 Conference Server................................Error! Bookmark not defined.
2.4.10 Agent Desktop (ACD Agent).............Error! Bookmark not defined.
2.4.11 Supervisor Agent (Supervisor Desktop)Error! Bookmark not defined.
2.4.12 Hệ thống quản lý cuộc gọi – Call Management SystemError! Bookmark not defined
2.4.13 Web Server.........................................Error! Bookmark not defined.
2.4.14 Email Server.......................................Error! Bookmark not defined.
2.4.15 SMS Server ........................................Error! Bookmark not defined.


2.4.16 VCC ...................................................Error! Bookmark not defined.
2.5 Phương án triển khai IP Call Center............Error! Bookmark not defined.
2.5.1 Triển khai theo từng đơn vị..................Error! Bookmark not defined.
2.5.2 Triển khai theo từng vùng....................Error! Bookmark not defined.
2.5.3 Ví dụ hoạt động của hệ thống ..............Error! Bookmark not defined.
Chương 3: Thiết kế chi tiết và thực hiện các module hệ thốngError! Bookmark not d


3.1 IP-IP gateway...............................................Error! Bookmark not defined.
3.1.1 Yêu cầu ................................................Error! Bookmark not defined.
3.1.2 Mô hình ................................................Error! Bookmark not defined.
3.2 Media server ................................................Error! Bookmark not defined.
3.2.1 Yêu cầu mặt cắt giao diện....................Error! Bookmark not defined.
3.2.2 Yêu cầu về khả năng xử lý media........Error! Bookmark not defined.
3.2.3 Yêu cầu về tính mở của hệ thống.........Error! Bookmark not defined.
3.2.4 Yêu cầu về dung lượng hệ thống .........Error! Bookmark not defined.
3.3 IP Call Center ..............................................Error! Bookmark not defined.
3.3.1 Yêu cầu ................................................Error! Bookmark not defined.
3.3.2 Mô hình ................................................Error! Bookmark not defined.
3.4 ACD service.................................................Error! Bookmark not defined.
3.4.1 Yêu cầu ................................................Error! Bookmark not defined.
3.4.2 Mô hình ................................................Error! Bookmark not defined.
3.4.3 Tổ chức dữ liệu ....................................Error! Bookmark not defined.
3.5 VCC .............................................................Error! Bookmark not defined.
3.6 ACD agent ...................................................Error! Bookmark not defined.
3.6.1 Yêu cầu ................................................Error! Bookmark not defined.
3.6.2 Cấu trúc dữ liệu các trạng thái của ACD agentError! Bookmark not defined.
3.7 Suppervisor agent......................................Error! Bookmark not defined.

3.8 Các vấn đề về độ ổn định, chất lượng và hiệu năng của hệ thốngError! Bookmark not defin
3.8.1 Độ ổn định của hệ thống ......................Error! Bookmark not defined.
3.8.2 Chất lượng dịch vụ...............................Error! Bookmark not defined.
3.8.3 Hiệu năng của hệ thống........................Error! Bookmark not defined.


Chương 4: Đánh giá kết quả đạt được ......Error! Bookmark not defined.

4.1 Tóm tắt các kết quả đã đạt được ..................Error! Bookmark not defined.

4.2 Những vấn đề còn tồn tại.............................Error! Bookmark not defined.
4.3 Khuyến nghị và hướng phát triển ................Error! Bookmark not defined.

4.4 Các dịch vụ gia tăng có thể cung cấp trên nền tảng Call CenterError! Bookmark not define
4.5 Thử nghiệm..................................................Error! Bookmark not defined.
Chương 5: Kết luận ...............................Error! Bookmark not defined.
Tài liệu tham khảo ................................Error! Bookmark not defined.
Tóm tắt luận văn ..................................Error! Bookmark not defined.


-1-

Chơng 1

giới thiệu

Môi trờng nhiễu của 1 hệ thống có thể gây ra lỗi trong bản tin đã truyền. Các
thuộc tính của lỗi phụ thuộc vào đặc tính của kênh và hệ thống. Các lỗi không đếm
đợc có thể đợc phân thành 3 loại:


Lỗi ngẫu nhiên: các bít lỗi phụ thuộc lẫn nhau. Nhiễu cộng tính là điển hình

gây ra lỗi ngẫu nhiên. Lỗi ngẫu nhiên xuất hiện trong 1 kênh khi các bít riêng
biệt của bản tin đã truyền bị làm sai lạc do nhiễu. Chúng có thể đợc biểu hiện
nh các bít sai lạc riêng biệt trong bản tin. Lỗi ngẫu nhiên có thể tạo bởi do
nhiễu nhiệt trong các kênh liên lạc


Lỗi cụm: các bít lỗi xuất hiện liên tiếp cùng lúc nh các nhóm. Những sai sót


của phơng tiện trong các hệ thống lu trữ số có thể gây nên lỗi cụm. Lỗi cụm
đợc biểu hiện nh là 1 dãy các bít sai lạc sát nhau trong một tín hiệu. Chúng có
thể đợc gây ra bởi pha-đinh trong các kênh liên lạc, hay bởi các phơng tiện lớn
hay sai sót của máy móc. Lỗi cụm có thể khó sửa đối với 1 vài loại mã. Tuy
nhiên mã khối(đặc biệt là mã Reed-Solomon) có thể xử lý các nhiễu cụm 1 cách
hiệu quả. Khả năng sửa lỗi cụm của 1 mã khối phụ thuộc vào số lợng lỗi trong
tín hiệu. Phần đan xen có thể dùng để mở rộng khả năng sửa lỗi của mã ReedSolomon.
Lỗi xung: những khối dữ liệu lớn là đầy đủ lỗi. Sấm chớp hay các h hỏng hệ
thống quan trọng có thể gây ra lỗi xung. Lỗi xung có thể gây nên các tai họa h
hỏng trong hệ thống liên lạc. Chúng có lẽ không thể nhận ra bằng sửa lỗi
trớc(FEC). Nói chung, các hệ thống mã hoá thất bại trong việc tạo lại bản tin
với sự hiện diện của các lỗi tai họa. Tuy nhiên, một số mã có thể phát hiện sự có
mặt của các lỗi tai họa bằng cách khảo sát bản tin thu đợc. Điều này rất hữu ích
trong thiết kế hệ thống bởi vì bản tin không thể khôi phục ít nhất có thể đợc báo
ở bộ giải mã


-2-

Nếu số liệu ở đầu ra của hệ thống thông tin số bị lỗi thì có thể khắc phục nhờ
một trong hai kỹ thuật sau:
Phía thu yêu cầu lặp lại tự động (ARQ) sau khi phát hiện lỗi (Hình 1.1). Sự
khôi phục bằng cách truyền lại là chuyện bình thờng trong các hệ thống thông
tin mà ở đó nó có thể. Tuy nhiên nếu sự truyền lại bị gián đoạn, tuỳ theo khoảng
cách lớn (nhỏ) kỹ thuật trên có thể trở nên không hiệu quả. Và vì vậy có 1 trờng
hợp khác khi việc phát lại là không thể, ví dụ ngời ta xét 1 tài liệu bị sai lạc mà
không dự phòng(sao lu).
Bên thu sửa lỗi bằng cách tìm từ mã có giá trị gần với bản tin nhận nhất, giả
định rằng gần nhất là giống nhau nhất, bởi vì một lỗi sai lạc giống nhiều hơn với

1 số khác. Kỹ thuật này đợc gọi là sửa lỗi (FEC) trực tiếp (Hình 1.2)
Bên phát

Lỗi

Bên thu

Bản tin
Phát hiện lỗi
Yêu cầu truyềnlại
Bản tin truyền lại

ứng dụng

Hình 1.1: Khôi phục-lỗi bằng cách phát hiện và truyền lại
Trong hệ thống ARQ, lỗi đợc phát hiện nhờ vào các bít d thêm vào khối số
liệu phát. Số bít d thêm vào chỉ vừa đủ cho bên thu phát hiện lỗi chứ không sửa
đợc lỗi. Trong hệ thống FEC, các bít d đợc thêm vào khối số liệu phát để bên thu
không những phát hiện lỗi mà còn sửa đợc lỗi.
Việc lựa chọn giữa kỹ thuật ARQ và FEC tuỳ thuộc vào ứng dụng cụ thể. ARQ
thờng đợc dùng trong các hệ thống thông tin máy tính, bởi vì thực hiện ARQ
không đắt và thờng có kênh song công để bên thu có thể phát lại cho bên phát
ACK khi số liệu nhận đúng và NAK khi số liệu nhận sai. FEC thờng đợc sử dụng
trên các kênh đơn công, ở đó việc trả lời ACK/NAK là không thể thực hiện đợc.
FEC thích hợp với các hệ thống có độ trễ truyền dẫn lớn vì nếu sử dụng ARQ ở đây


-3-

thì tốc độ số liệu có ích sẽ nhỏ (vì số bít d thêm vào lớn): bên phát sẽ mất một thời

gian dài trong khi đợi ACK/NAK.
Lỗi

Bên phát

Bên thu

Bản tin
Phát hiện lỗi
Sửa lỗi
ứng dụng
Hình 1.2: Sửa lỗi (FEC) trực tiếp
Việc xử lý lỗi bao gồm hai quá trình: phát hiện lỗi và sửa lỗi. Phát hiện lỗi đợc
dùng trong các mạng liên lạc nh : mạng không dây, mạng internet... và ở bất kỳ
đâu có thể truyền lại đợc và xác suất lỗi bít là tơng đối thấp. Sửa lỗi đợc dùng
trong các phơng tiện lu trữ (ram, disk...) hay ở bất cứ nơi nào việc truyền lại là
không thuận tiện và không thể:
Mã phát hiện lỗi
Việc xác định sơ đồ phát hiện lỗi dựa trên hai nhân tố: tỷ lệ lỗi bít (BER) của
kênh và kiểu lỗi (lỗi đơn ngẫu nhiên hay lỗi cụm). Hiện nay có nhiều hai loại mã
phát hiện lỗi đợc sử dụng rộng rãi là: mã kiểm tra chẵn lẻ (parity) và kiểm tra độ
d vòng (CRC)
ẻ Mã parity
Đợc ứng dụng rộng rãi trong việc kiểm soát lỗi. Việc phát hiện lỗi nhờ vào
một bít kiểm tra (bít parity) đợc thêm vào trong dữ liệu và vỡ nú ch dựng 1 bít
kim tra cho nờn nú cú s tng phớ thp nht, ng thi, nú cho phộp phc
hi bít b tht lc nu ngi ta bit c v trớ ca bít b tht lc nm õu
ẻ Mã CRC
Là mã dùng phát hiện các lỗi cụm trong khối dữ liệu dựa trên cơ sở sử dụng
mã đa thức. Một tập bít kiểm tra đợc tính toán cho mỗi khung dựa vào nội

dung khung, sau đó đợc gắn thêm vào đuôi khung để truyền đi. Bên thu thực


-4-

hiện tính toán tơng tự bên phát để phát hiện lỗi. Số bít kiểm tra thờng đợc
chọn là 12, 16, 32 bít. Các bít kiểm tra gọi là dãy kiểm tra khung FCS hay
kiểm tra độ d vòng CRC.
Mã sửa lỗi
Hay còn đợc gọi là mã hoá kênh. Mã hoá kênh nhằm cải tiến kỹ thuật truyền
tin, cho phép tín hiệu phát có khả năng chống lại ảnh hởng của nhiễu. Mã hoá kênh
làm giảm lỗi bít (Pc) hoặc giảm tỷ số năng lợng bít trên mật độ nhiễu yêu cầu tại
đầu thu. Có 2 loại mã sửa lỗi chủ yếu là: mã khối và mã chập
ẻ Mã khối
Mã khối tuyến tính đợc mô tả bằng 2 số nguyên n, k và một đa thức sinh
hay ma trận sinh. Tham số k là các bít dữ liệu của bản tin nguồn, tham số n là
tổng số bít của từ mã tại đầu ra của bộ mã hoá. Tính chất của mã khối tuyến
tính là với mỗi từ mã đợc xác định duy nhất từ bản tin nguồn. Tỷ số k/n đợc
gọi là tốc độ mã. Mã khối bao gồm mã Hamming, mã Golay, mã kiểm tra chẵn
lẻ mật độ thấp (LDPC)...
ẻ Mã chập
Mã chập đợc mô tả bằng 3 tham số n, k và K, trong đó k/n tơng đơng
với tốc độ mã (thông tin trên bít đợc mã hoá) của mã khối, tuy nhiên n không
đợc định nghĩa nh mã khối hay độ dài từ mã. Tham số K đợc định nghĩa là
độ dài ràng buộc, bằng số tầng của thanh ghi dịch mã hoá. Một tính chất quan
trọng của mã chập phân biệt với mã khối là bộ lập mã có nhớ, từ mã n bít phát
đi từ thủ tục lập mã không chỉ là hàm của K bít đầu vào mà còn là hàm của K-1
nhóm k bít trớc đó.

1.1 M phát hiện lỗi

1.1.1 Mã Parity
Mó parity hay mã chn l sẽ thờm mt bít vo trong d liu, v bít cho thờm
ny cho bit s lng bít cú giỏ tr 1 ca on d liu nm trc l mt số chẵn hay


-5-

mt số lẻ. Nu mt bít b thay i trong quỏ trỡnh truyn d liu, giỏ tr chn l
trong thụng ip s thay i v do ú cú th phỏt hin c li (Chỳ ý rng bít b
thay i cú th li chớnh l bít kim tra). Theo quy c chung, bít kim tra cú giỏ tr
bng 1 nu s lng bít cú giỏ tr 1 trong d liu l mt s l, v giỏ tr ca bít kim
tra bng 0 nu s lng bít cú giỏ tr 1 trong d liu l mt s chn. Núi cỏch khỏc,
nu on d liu v bít kim tra c gp li cựng vi nhau, s lng bít cú giỏ tr
bng 1 luụn luụn l mt s chn. Vic kim tra dựng mó chn l l mt vic khụng
c chc chn cho lm, vỡ nu s bít b thay i l mt s chn (2, 4, 6 - c hai,
bn hoc sỏu bit u b hoỏn v) thỡ mó ny khụng phỏt hin c li. Hn na, mó
chn l khụng bit c bít no l bít b li, k c khi nú phỏt hin l cú li xy ra.
Ton b d liu ó nhn c phi b i, v phi truyn li t u. Trờn mt kênh
truyền b nhiu, vic truyn nhn thnh cụng cú th mt rt nhiu thi gian, nhiu
khi cũn khụng truyn c na.
Bít chẵn lẻ

7 bit d liu
0000000
1010001
1101001
1111111

Byte cú bit chn l
Quy lut s

Quy lut s l
chn
00000000
00000001
10100011
10100010
11010010
11010011
11111111
11111110

Bit chn l l mt bít dựng bỏo hiu s lng bít cú giỏ tr bng một trong
mt nhúm bít cho trc l mt số chẵn hay l mt số lẻ. Bít chn l c s dng
nh l mt mã dùng để phát hiện lỗi n gin nht.
Cú hai loi mó chn l: bít chn l dựng quy lut s chn (even parity bit) v
bít chẵn l dựng quy lut s l (odd parity bit). Bít chn l dựng quy lut s chn
cú giỏ tr bng 1 khi s lng cỏc bít 1, trong mt nhúm bít cho trc, l mt s l
(v khi cng thờm bít chn l vo, tng s lng bít cú giỏ tr bng 1 l mt s


-6-

chn). Ngc li, bít chn l dựng quy lut s l cú giỏ tr bng 1 nu s lng cỏc
bít 1, trong mt nhúm bít cho trc, l mt s chn (v khi cng thờm bít chn l
vo, tng s bít cú giỏ tr bng 1 l mt s l). Bít chn l dựng quy lut chn l mt
trng hp c bit ca k thut kiểm tra độ d vòng-CRC. Trong CRC, bít CRC
c kin to bng cỏch dựng đa thức x+1.
Mạch tính toán bít chẳn lẻ gồm tập các cổng XOR đợc trình bày trong Hình
1.3 (cho cả bên thu và bên phát)


(a)

(c)
Ký tự/byte truyền

B6 B5 B4 B3 B2 B1
lsb

Bít dừng
Bít chẵn lẻ
Bít bắt đầu

msb

B0
+

+

(b)
+

Bít 1 Bít 2 XOR
0
0
1
1

0
1

0
1

0
1
1
0

Bít 1

+

+

+

Bít ra
+

Bít 2

(d)
1001001 1 Chẵn lẻ tính chẵn
1001001 0 Chẵn lẻ tính lẻ

Bít chẵn lẻ
chẵn

Bít chẵn lẻ
lẻ


Hình 1.3: Phơng pháp kiểm tra chẵn lẻ
(a) Vị trí bít chẵn lẻ;
(b) Phép tính XOR
(c) Mạch tính bít chẵn lẻ; (d) Ví dụ
ng dng
Do c tớnh n gin ca nú, bít chn l c dựng trong rt nhiu ng dng
phần cứng, nhng ni m vic tỏi din cỏc thao tỏc khi cú trc trc xy ra l mt
vic cú th thc hin c, hoc nhng ni m vic phỏt hin li n thun l mt


-7-

vic cú li. Ly vớ d, mch ni SCCI (bus) dựng bít chn l phỏt hin li trong
truyn thụng, v rt nhiu cỏc phn lu tr trong b nh cỏc lnh vi xử lý cng dựng
bít chn l bo tr hot ng ca nú na. Do cỏc d liu trong I-cache ch l mt
bn sao ca bộ nhớ chớnh, ni dung ca nú cú th c xúa i, np li nu d liu
trong chẳng may b thoỏi húa.Trong truyền thông dữ liệu nối tiếp, dng thc d
liu c dựng ph thụng nht l dng thc 7 bít, vi mt bít chn l dựng quy lut
s chn, v mt hoc hai bít dựng cho lnh dng li. Dng thc ny thớch ng hu
ht cỏc dng thc 7-bit ký t ASCII di hỡnh thc byte 8- bít. Byte l mt hỡnh
thc tin li biu t d liu. Nhng dng thc khỏc cng cú th thc hin c,
nh dng thc 8 bít d liu cng vi mt bít chn l cú th dựng chuyờn ch tt
c cỏc giỏ tr byte 8- bít.
1.1.2 Mã CRC
Phơng pháp trên thích hợp với các ứng dụng trong đó xuất hiện lỗi đơn. Khi lỗi
cụm xuất hiện, phải sử dụng một phơng thức chặt chẽ hơn. Lỗi chùm là một dòng
bít bắt đầu và kết thúc là bít lỗi, các bít ở giữa có thể sai hay không.
Phơng pháp phát hiện lỗi cụm phổ biến nhất dựa trên cơ sở sử dụng mã đa
thức. Một tập bít kiểm tra đợc tính toán cho mỗi khung dựa vào nội dung khung,

sau đó đợc gắn thêm vào đuôi khung để truyền đi. Bên thu thực hiện tính toán
tơng tự bên phát để phát hiện lỗi. Số bít kiểm tra thờng đợc chọn là 12, 16, 32
bít. Các bít kiểm tra gọi là dãy kiểm tra khung FCS hay kiểm tra độ d vòng CRC.
Tính toán tạo mã CRC bên phát:
-

Biểu diễn khung thông tin dới dạng đa thức M(x) bậc k-1 (số bít tin là k)

- Giả sử chiều dài mã CRC là r+1 bít. Nhân M(x)ì2r ; tơng đơng với
phép dời các bít tin sang trái r vị trí (k > r)
- Chọn đa thức sinh G(x) bậc r. Chia M(x)ì2r cho G(x) ta đợc thơng số
là Q(x) và số d R(x)
M ( x ) ì2 r
R (x)
=Q ( x ) +
G (x)
G (x)


-8-

- Cộng M(x)ì2r với số d R(x), ta đợc đa thức cần truyền là T(x), với số bít
n=k+r+1, T ( x ) =M ( x ) ì2r +R ( x )
- Đổi T(x) thành mã nhị phân phát đi
Ví dụ 1.1: Cần truyền đi một khung thông tin 8 bít qua đờng truyền số liệu, sử
dụng CRC để phát hiện lỗi. Đa thức sinh sử dụng x4+x3+1. Đa thức tin là
x7+x6+x5+x2+x.
Nội dung khung:

11100110


Dời sang trái 4 bít:

11100110 0000

Đa thức sinh:

11001

Thực hiện phép chia
Kiểm tra CRC bên thu
Giả sử thu đợc T(x)
- Chia T(x) cho G(x) nh bên phát
- Nếu phép chia hết thì kết luận thu đúng
- Nếu phép chia có d thì kết luận có lỗi truyền dẫn
Trở lại ví dụ trên, giả sử thu đợc: 1110011011111 có lỗi chùm 4 bít.
ở phía thu kiểm tra bằng cách thực hiện phép chia cho đa thức sinh nếu phần d
khác không thì kết luận có lỗi truyền dẫn.
111001100000 11001
11001
10110110
0010111
11001
011100
11001
0010100
11001
011010
11001
000110

Phần d

111001101111
11001
0010111
11001
011100
11001
0010111
11001
011101
11001
001001

11001
10110110

Phần d khác 0 ẻ Có lỗi

Khung truyền đi: 11100110 0110
Việc lựa chọn đa thức sinh rất quan trọng vì nó xác định các kiểu lỗi đợc phát
hiện. Một đa thức sinh r+1 bít sẽ phát hiện đợc:


-9-

-

Tất cả lỗi đơn


-

Hầu hết các lỗi đôi

-

Hầu hết các lỗi xảy ra với số lẻ

-

Tất cả lỗi chùm dài < r+1

-

Hầu hết (99,99%) lỗi chùm dài > r+1

Dới đây là danh sách các đa thức sinh phổ biến nhất của mã CRC hay là đa
thức CRC:


m

G ( x)

CRC-12

12

x 12 + x 11 + x 3 + x 2 + x + 1


CRC-16

16

x 16 + x 15 + x 2 + 1

CRC-CCITT

16

x 16 + x 12 + x 5 + 1

CRC-32

32

x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11
+ x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x + 1

CRC-16 và CRC-CCITT đợc dùng rộng rãi trong mạng WAN; CRC-32 đợc
dùng hầu hết trong mạng LAN
1.1.3 Sơ đồ thực hiện mã CRC
Trong thực tế có thể thực hiện mã CRC bằng phần cứng và phần mềm. Việc
thực hiện CRC bằng phần cứng khá đơn giản. Mạch mã hoá và giải mã đợc xây
dựng chủ yếu từ thanh ghi dịch.
1.1.3.1 Mạch mã hoá
Trở lại với ví dụ trên, khung thông tin có 8 bít, đa thức sinh 11001. ở đây cần
dùng thanh ghi dịch 4 bít để tợng trng cho các bít x3, x2, x1, x0 trong đa thức sinh.
Với đa thức sinh này, x3 và x0 là bít 1, còn x2 và x1 là bít 0. Sơ đồ CRC bên phát
đợc trình bày trên Hình 1.4. Trạng thái mới của x1 và x2 đợc thay bằng trạng thái

trớc đó x0 và x1. Trạng thái mới của x0 và x3 đợc xác định bởi trạng thái của đờng


-10-

phản hồi.

X0 X1 X2

TxC

X3

+

Tín hiệu điều
khiển phản hồi
(10 sau 8 nhịp)

+

PISO
lsb

msb

Nạp song song byte

TxC


TxD
TxC

0
1
2
3
4
5
6
7
8
9
10
11

Thanh ghi phát

0
0
0
0
0

FCS
msb X

lsb

1

0
0
0
0
0

1
1
0
0
0
0
0

0
1
1
0
0
0
0
0

0
0
1
1
0
0
0

0

1
0
0
1
1
0
0
0

1
1
0
0
1
1
0
0

1
1
1
0
0
1
1
0

0


0
1
0
1
1
0
1
1

X1 X2 X3

0
0
1
0
1
1
0
1

0
0
0
1
0
1
1
0


0
1
0
1
0
0
0
0

0 0 0 0 0 1 1 0
0 0 0
0 1 1
0 0
0 1
0
0
TxD
Hình 1-4. Mạch tạo mã CRC phát

Mạch hoạt động nh sau: Thanh ghi dịch FCS đợc xoá và byte 8 bít đầu tiên
trong khung đợc nạp song song vào thanh ghi PISO. Các bít này đợc dịch ra
đờng truyền ở tốc độ của đồng hồ phát TxC. Lần lợt các bít này đợc XOR với x3
rồi qua đờng phản hồi trở lại các đầu vào chọn lọc của thanh ghi dịch FCS. Mỗi khi
nạp 8-bít vào thanh ghi dịch PISO và truyền đi trên đờng, thủ tục đợc lặp lại. Sau
khi xuất ra byte cuối cùng trong khung, thanh ghi PISO đợc nạp các bít tín hiệu


-11-

điều khiển phản hồi thay đổi từ 1 thành 0 để nội dung của thanh ghi FCS -là phần

d- đi theo sau nội dung khung phát đi trên đờng truyền.
1.1.3.2 Mạch giải mã
Sơ đồ CRC bên thu đợc trình bày trong Hình 1-5. Số liệu nhận đợc (RxD) lần
lợt đợc dịch vào thanh ghi dịch SIPO ở mỗi ô bít. Dòng bít đợc XOR với x3 và
phản hồi lại thanh ghi dịch SIPO. Mỗi khi nhận đợc byte 8 bit, thiết bị điều khiển
sẽ đọc byte.

X0 X1 X2

+

RxD

+

X3

Thanh ghi FCS

SIPO
lsb

TxC

Thanh ghi nhận

msb

Đọc song song


TxC RxD

0
1
2
3
4
5
6
7
8

1
1
1
0
0
1
1
0
0

9
10
11
12

1
1
0

0

Thanh ghi phát

FCS
0

X1 X2 X3

lsb

msb X

0
1
1
1
0
0
1
1
0

0 0 0 0 0 0 0 0
1
1
1
1 1
1
1 1 1

0
0 1 1 1
1
0 0 1 1 1
1
1 0 0 1 1 1
0
1 1 0 0 1 1 1 1

0
0
1
1
1
0
1
1
0

0
0
0
1
1
1
0
1
1

0

0
0
0
1
0
1
1
0

0
0
0
0

1
0
0
0

0
1
0
0

1
1
0
0

Byte đợc đọc

song song

Phần d = 0
Hình 1-5. Mạch kiểm tra CRC bên thu


-12-

Mạch mã hoá và giải mã CRC thờng đợc tích hợp vào trong thiết bị điều
khiển truyền dẫn ở chế độ truyền định hớng bít. Tuy nhiên, trong một vài trờng
hợp CRC còn dùng trong chế độ truyền định hớng ký tự. Trong trờng hợp này,
thờng tạo CRC bằng phần mềm.
Ngoài ra, còn có những mã phát hiện lỗi khác nhng không ứng dụng nhiều
trong thực tế:
Mã-hai-trong-năm
Trong nhng nm ca thp niờn k 1940, Bell cú s dng mt mó hiu phc tp
hn mt chỳt, gi l mã hai-trong-năm (two-out-of-five code). Mó ny m bo mi
mt khi 5 bít (cũn c gi l khi-5) cú chớnh xỏc hai bít cú giỏ tr bng 1. Mỏy
tớnh cú th nhn ra l d liu nhp vo cú li nu trong mt khi 5 bít khụng 2 bít cú
giỏ tr bng 1. Tuy th, mã hai-trong-năm cng ch cú th phỏt hin c mt n v
bít m thụi; nu trong cựng mt khi, mt bít b ln ngc thnh giỏ tr 1, v mt bít
khỏc b ln ngc thnh giỏ tr 0, quy lut hai-trong-nm vn cho mt giỏ tr ỳng,
v do ú nú khụng phỏt hin l cú li xy ra.
Tái diễn dữ liệu
Mt mó na c dựng trong thi gian ny l mó hot ng bng cỏch nhc i
nhc li bít d liu vi ln (tỏi din bít c truyn) m bo bít d liu c
truyn, truyn n ni nhn trn vn. Chng hn, nu bít d liu cn c truyn cú
giỏ tr bng 1, mt mó tỏi din n=3 s cho truyn gi giỏ tr "111". Nu ba bít nhn
c khụng ging nhau, thỡ hin trng ny bỏo cho ta bit rng, li trong truyn
thụng ó xy ra. Nu kờnh truyn khụng b nhiu, tng i m bo, thỡ vi hu

ht cỏc ln truyn, trong nhúm ba bít c gi, ch cú mt bít l b thay i. Do ú
cỏc nhúm 001, 010, v 100 u tng ng cho mt bít cú giỏ tr 0, v cỏc nhúm
110, 101, v 011 u tng ng cho mt bít cú giỏ tr 1 - lu ý s lng bít cú giỏ
tr 0 trong cỏc nhúm c coi l cú giỏ tr 0, l a s so vi tng s bít trong nhúm,


-13-

hay 2 trong 3 bít, tng ng nh vy, cỏc nhúm c coi l giỏ tr 1 cú s lng
bít bng 1 nhiu hn l cỏc bít cú giỏ tr 0 trong nhúm - chng khỏc gỡ vic cỏc
nhúm bít c i x nh l "cỏc phiu bu" cho bít d liu gc vy.
Tuy nhiờn, nhng mó ny khụng th sa tt c cỏc li mt cỏch ỳng n hon
ton. Chng hn chỳng ta cú mt vớ d sau: nu mt kờnh truyn o ngc hai bít
v do ú mỏy nhn thu c giỏ tr "001", h thng mỏy s phỏt hin l cú li xy
ra, song li kt lun rng bít d liu gc l bít cú giỏ tr bng 0. õy l mt kt lun
sai lm. Nu chỳng ta tng s ln cỏc bít c nhc li lờn 4 ln, chỳng ta cú th
phỏt hin tt c cỏc trng hp khi 2 bít b li, song chỳng ta khụng th sa cha
chỳng c (s phiu bu "hũa"); vi s ln nhc li l 5 ln, chỳng ta cú th sa
cha tt c cỏc trng hp 2 bít b li, song khụng th phỏt hin ra cỏc trng hp 3
bít b li.
Núi chung, mó tỏi din l mt mó ht sc khụng hiu qu, gim cụng sut
xung 3 ln so vi trng hp u tiờn trong vớ d trờn ca chỳng ta, v cụng sut
lm vic gim xung mt cỏch nhanh chúng nu chỳng ta tng s ln cỏc bít c
nhc li vi mc ớch sa nhiu li hn.
1.2 M sửa lỗi
Toàn bộ mã sửa lỗi đều dựa trên cùng nguyên lý cơ bản : Phần d đợc đa vào
thông tin để sửa bất kỳ lỗi nào có thể xuất hiện trong quá trình lu trữ hay truyền
dẫn. Trong dạng cơ bản, những ký tự d đợc thêm vào ký hiệu thông tin chứa 1 dãy
mã hay từ mã. Để minh họa, 1 từ đợc mã hoá với một mã khối đợc chỉ ra trong
Hình 1.6. Nh vậy đây là biên mã dạng hệ thống(sytematic). Điều này nghĩa là

những bít thông tin luôn xuất hiện trong k vị trí đầu tiên của một từ mã. (n-k) ký
hiệu còn lại là hàm nào đó của ký hiệu thông tin và cung cấp phần d mà chúng
đợc dùng với mục đích phát hiện và sữa lỗi. Tập hợp tất cả dãy mã đợc gọi là mã
sửa lỗi sửa lỗi (ECC)và đợc ký hiệu là C.


-14-

n ký hiệu
Thông tin

Phần d

k ký hiệu

n-k ký hiệu

Hình 1.6: Biên mã khối dạng hệ thống cho sửa lỗi
Chức năng chính của kiểm soát lỗi là kiểm soát phần d. Với phần d đợc
kiểm soát này chỉ là một tập hợp con của tất cả bản tin có thể truyền chứa bản tin có
giá trị. Tập hợp con này đợc gọi là 1 mã và bản tin có giá trị đợc gọi là từ
mã(codeword) hay véctơ mã(codevector). Một mã tốt là mã mà trong đó các từ mã
đợc chia ra để khả năng các lỗi sai lạc của từ mã này sang từ mã khác là nhỏ.

1.2.1 Mã chập và mã khối
Tuỳ theo cách mà phần d đợc đa vào bản tin, ECC có thể chia thành 2 loại:
chập và khối. Cả 2 loại sơ đồ mã hoá trên đều ứng dụng thực tế nhng mã chập đợc
u chuộng hơn, bởi vì tính khả thi của thuật toán mã hoá Viterbi theo quyết định
mềm và trong nhiều năm ngời ta tin mã khối không thể mã hoá hiệu qủa theo quyết
định mềm. Tuy nhiên, những phát triển gần đây về lý thuyết và thiết kế những thuật

toán mã hoá theo quyết định mềm đối với mã khối tuyến tính đã xua tan niềm tin ấy.
Hơn nữa ECC tốt nhất đến nay là mã khối (mã kiểm tra chẵn lẻ mật độ thấp bất quy
tắc)
Mã khối gia công tín hiệu trên cơ sở khối theo khối, xem mỗi khối bít thông tin
độc lập với những khối khác. Nói cách khác mã khối là một phép toán không nhớ,
theo hớng là những từ mã độc lập với nhau. Ngợc lại đầu ra của 1 bộ biên mã
chập không chỉ phụ thuộc vào thông tin vào hiện tại mà còn phụ thuộc những thông
tin vào hay ra trớc đó hay là trên cơ sở khối theo khối hoặc bít theo bít. Nên lu ý
rằng mã khối có nhớ thật sự, khi biên mã đợc xem nh 1 quá trình bít theo bít, ở
bên trong 1 từ mã
1.2.2 Khoảng cách Hamming, mặt cầu Hamming và khả năng sửa lỗi.


-15-

Xét một mã sửa lỗi C với các phần tử nhị phân. Để đạt đợc khả năng sửa lỗi
không phải toàn bộ 2n véctơ nhị phân của chiều dài n đợc phép truyền đi, thay vào
đó C là một tập hợp con của không gian véctơ nhị phân n-chiều V2={0,1}n
Trong không gian véctơ nhị phân V2, khoảng cách đợc định nghĩa là số vị trí
bít tơng ứng của 2 véctơ có giá trị khác nhau. Lấy x1 = ( x1,0 ,x1,1 ,...,x1,n-1 )



x 2 = ( x 2,0 ,x 2,1 ,...,x 2,n-1 ) là 2 véctơ trong V2. Vậy khoảng cách Hamming giữa x1 và x 2 ,

ký hiệu là d H ( x1 ,x 2 ) đợc định nghĩa nh sau:
d H ( x1 ,x 2 ) = {i:x1,i x 2,i ,0 i
(1.1)


ở đó |A| là số lợng các phần tử của tập hợp A
Cho 1 mã C, khoảng cách Hamming tối thiểu: dmin, đợc định nghĩa là khoảng
cách Hamming nhỏ nhất trong số tất cả những cặp từ mã có thể khác biệt trong C
d min = min {d H ( v1 ,v 2 ) |v1 v 2 }
v1 ,v2 C

(1.2)

Từ đây (n, k, dmin) sẽ đợc dùng để ký hiệu cho các tham số của mã khối chiều
dài n, với tin tức đợc mã hoá có chiều dài k bít và có khoảng cách Hamming tối
thiểu dmin. Giả định rằng kích thớc của mã là |C| =2k
Khoảng cách Hamming xác định các tính chất sửa lỗi. Khoảng cách Hamming
là 2, cho phép phát hiện lỗi đơn. Khoảng cách Hamming là 3, cho phép sửa lỗi đôi.
Tổng quát, nếu khoảng cách Hamming là 2t+1, thì sửa đợc đến t lỗi.
Tiêu chí đầu tiên để thiết kế 1 mã tốt là đảm bảo rằng khoảng cách của nó là
lớn nhất có thể để cho phép nhiều lỗi có thể đợc sửa. Nếu khoảng cách d = 2t +1,
rõ ràng ta có thể phát hiện tất cả những sai lạc mà làm ảnh hởng đến 2t bít của 1
từ mã bởi vì chúng không bao giờ có thể chuyển 1 từ mã thành 1 từ mã khác. Rõ
ràng, ít nhất trên nguyên lý chúng ta có thể sửa tất cả những sai lạc ảnh hởng đến


-16-

t bít của 1 từ mã bởi vì từ bị sai lạc (nghĩa là có khoảng cách nhỏ hơn) sẽ gần từ
mã gốc hơn bất kỳ từ mã nào khác. Nếu d chẵn, d = 2t, ta có thể phát hiện (2t-1)lỗi
nhng ta chỉ có thể sửa (t-1) lỗi, bởi vì t lỗi có thể mang ta gần với 1 số từ mã khác
nh từ mã gốc.(Ví dụ, nếu 00 và 11 là các từ mã với n =2, chúng ta có thể phát hiện
lỗi 01 và 10 nhng ta không thể sửa chúng)
Tiêu chí thứ hai trong thiết kế 1 mã tốt là xây dựng mã, đó là chọn tập hợp con
từ tất cả 2n véctơ có thể, theo cách này phát hiện và sửa lỗi có thể thực hiện mà

không cần so sánh véctơ nhận với tất cả từ mã có giá trị.
Ví dụ 1-2: Mã sửa lỗi đơn giản nhất là mã lặp chiều dài 3. Mỗi bít lặp lại 3 lần,
vì thế bít 0 đợc mã hoá vào trong véctơ (000) và bít 1 đợc mã hoá vào trong
véctơ (111). Từ đó 2 từ mã khác nhau trong cả 3 vị trí, khoảng cách Hamming giữa
chúng là 3. Hình 1.7 miêu tả đặc trng cho mã này. Khoảng cách nhị phân 3 chiều
tơng ứng với việc đặt 23 = 8 đỉnh của 1 khối lập phơng 3 chiều . Khoảng cách
Hamming giữa 2 từ mã bằng số cạnh nối giữa 1 từ mã và các đỉnh không chứa từ mã
kia. Điều này tơng đơng với số toạ độ mà 1 mã cần để đổi (000) thành (111) hay
ngợc lại. Vì vậy dH = ((000)(111)) = 3. Từ đó chỉ có 2 từ mã trong trờng hợp này,
dmin = 3.
Không gian véctơ nhị phân V2 cũng đợc biết nh 1 không gian Hamming.
Lấy là ký hiệu 1 từ mã của mã sửa lỗi C. Một mặt cầu Hamming St ( v ) , bán kính t
và bao xung quanh v là tập hợp các véctơ trong V2 tại khoảng cách nhỏ hơn hoặc
bằng khoảng cách từ t đến tâm v
St ( v ) = { x V2 | d H ( x , v ) t}

Hình 1.7: Mã lặp A(3,1,3) trong không gian 3 chiều

(1.3)


-17-

Lu ý rằng kích thớc của (hay số từ mã trong) St ( v ) đợc cho bởi biểu thức
sau:
t
n
St ( v ) =
i =0 i


Hình 1.8: Mặt cầu Hamming bán kính t =1 xung quanh các từ mã của mã lặp
nhị phân (3,1,3)
Lu ý rằng cầu Hamming đối với mã này đợc tháo rời ra, đó là không có véctơ
trong V2 (hay đỉnh trong khối lập phơng) phụ thuộc vào cả S0(000) và S1=(111).
Kết quả là nếu có sự thay đổi của bất kỳ vị trí nào trong từ mã v thì véctơ kết quả sẽ
vẫn nằm bên trong tâm cầu Hamming tại v . Nội dung này là cơ sở để hiểu và xác
định khả năng sửa lỗi của 1 mã C.
Khả năng sửa lỗi, t, của mã C là bán kính lớn nhất của cầu Hamming St ( v )
xung quanh toàn bộ các từ mã v C, vì vậy đối với tất cả các cặp khác nhau vi , v j
C, cầu Hamming tơng ứng bị tách rời ra

{

t = m a x l | S l (vi ) S l (v j ) = , vi v j
vi , v j C

}

(1.4)

Khoảng cách tối thiểu dmin của C tơng đơng với một định nghĩa tổng quát hơn:
t=[( dmin-1)/2]

(1.5)

với [x] là số nguyên lớn nhất x
Chú ý rằng để tính khoảng cách tối thiểu dmin của một mã khối C, theo đúng
công thức (1.2), cần tính tổng của (tại hầu hết) 2k(2k -1) khoảng cách giữa các cặp
khác nhau của từ mã. Đây là thực tế không thể thực hiện đợc thậm chí đối với các
mã có kích thớc tơng đối khiêm tốn là k=50. Một trong những u điểm của mã



-18-

khối tuyến tính là chỉ cần biết khối lợng Hamming của toàn bộ (2k -1) từ mã khác
0.
1.3 m khối tuyến tính
Mã khối tuyến tính là một lớp của mã kiểm tra chẵn lẻ. Mã khối tuyến tính đợc
đặc trng bởi hai thông số (n, k). Bộ lập mã chuyển đổi một khối bản tin k bít (véctơ
bản tin) thành 1 khối dài hơn gồm n bít từ mã (véctơ mã) đợc xây dựng từ một bộ
các phần tử đã có. Khi bộ chữ có 2 phần tử (0 và 1) thì mã là nhị phân bao gồm các
chữ số nhị phân (bít). k bít bản tin xác định 2k bản tin riêng biệt. Các khối n bít xác
định 2n khối. Mã hoá khối thực hiện phép gán một-một, trong đó 2k bản tin k bít
đợc ánh xạ độc nhất (một-một) vào tập hợp 2k từ mã n bít mới thông qua việc tra
bảng.
Nh đã đề cập ở trên, tìm ra 1 mã tốt nghĩa là tìm ra 1 tập hợp con của V2 với
các véctơ mã càng xa nhau càng tốt. Điều này là rất khó. Hơn nữa, ngay cả khi tìm
thấy 1 tập hợp nh vậy thì vẫn còn vấn đề đó là làm thế nào để gán các từ mã vào
bản tin thông tin.
Mã tuyến tính là các không gian con véctơ của V2, nghĩa là mã hoá có thể đợc
thực hiện bởi tính nhân ma trận. ở dạng các mạch số, bộ mã hoá có thể đợc xây
dựng bằng cách dùng cổng XOR, AND, D flip-flops.
1.3.1 Ma trận sinh và kiểm tra chẵn lẻ
Ký hiệu C là mã (n, k, dmin) tuyến tính nhị phân. Khi đó C là không gian con
véctơ k-chiều, có 1 gốc là {v0 , v1 ,L , vk 1} , vì thế bất kỳ từ mã v C nào cũng có
thể biễu diễn nh là một tổ hợp tuyến tính của các phần tử trong gốc
v = u0v0 + u1v1 + L + uk 1vk 1

(1.6)


Với ui {0,1} ,1 i k . Phơng trình (1.6) có thể viết dới dạng của 1 ma trận
sinh G và véctơ bản tin u = ( u0 , u1 ,L , uk 1 ) , nh sau:
v = u .G

(1.7)


-19-

Với
v0 v0,0


v1 v1,0

G=
=
M M


vk 1 vk 1,0

v0,1
v1,1
M
vk 1,1

L v0,n 1

L v1,n 1

O
M

L vk 1,n 1

(1.8)

Từ đó, C là không gian véctơ k-chiều trong V2, có 1 không gian CT đối ngẫu (nk)-chiều , tạo bởi những hàng của ma trận H, gọi là ma trận kiểm tra chẵn lẻ, vì thế,
với HT là ma trận H chuyển vị. Đặc biệt, lu ý rằng bất kỳ từ mã
vH T = 0

(1.9)

Công thức (1.9) có vai trò cơ bản trong giải mã mã tuyến tính.
1.3.2 Khối lợng là khoảng cách
Một đặc tính tốt của mã tuyến tính là tính khoảng cách tối thiểu của mã cho tới
tính khối lợng Hamming tối thiểu của các từ mã khác 0 của nó.
Đầu tiên, xác định khối lợng Hamming wtH ( x ) của một véctơ x V2
nh là số phần tử khác 0 trong x . Từ định nghĩa của khoảng cách Hamming, ta dễ

( )

dàng thấy rằng wtH ( x ) = d H x , 0 . Đối với mã tuyến tính nhị phân C, lu ý rằng
khoảng cách:
d H ( v1 , v2 ) = d H ( v1 + v2 ,0 ) = wtH ( v1 + v2 )

(1.10)

Cuối cùng, do tính tuyến tính, v1 + v2 C . Kết quả, khoảng cách tối thiểu của C
có thể tính toán bằng cách tìm khối lợng Hamming tối thiểu trong số (2k-1) từ mã

khác 0. Điều này đơn giản hơn là cố tìm trong số các cặp từ mã thì đó vẫn là một
công việc rất đáng kể ngay cả với mã có kích thớc (hay chiều) khiêm tốn.
1.4 M hoá và giải m m khối tuyến tính
1.4.1 Mã hoá với g và h
Công thức (1.7) đa ra 1 quy tắc mã hoá cho mã khối tuyến tính mà có thể đợc
thực hiện trong 1 cách đơn giản. Nếu mã hoá là hệ thống thì ma trận sinh G của mã


-20-

(n, k, dmin) khối tuyến tính C có thể đợc đa về dạng hệ thống, Gsys, bởi các phép
tính hàng cơ bản hay các phép hoán vị cột. Gsys đợc hình thành từ 2 ma trận con:
ma trận đơn vị (k ì k), ký hiệu là IK và ma trận con chẵn lẻ k ì (n-k), vì vậy:
G

sys

= ( Ik | P )

(1.11)

Với
p0,0

p1,0
P=
M

pk 1,0


p0,1
p1,1
M
pk 1,1

L p0,n k 1

L p1,n k 1

O
M

L pk 1,n k 1

(1.12)

Khi GHT=0, dạng hệ thống, Hsys, của ma trận kiểm tra chẵn lẻ là:
H

sys

= ( PT | I n k )

(1.13)

Ví dụ 1.3 Xét 1 mã (4,2,2) tuyến tính nhị phân với ma trận sinh:
1 1 1 0

0 0 1 1


G =

Đa G về dạng hệ thống, hoán vị cột thứ 2 và 4 ta đợc:
1 0 1 1

0 1 1 0

Gsys =

Vì vậy ma trận con kiểm tra chẵn lẻ đợc cho bởi:
1 1

1 0

P=

Lu ý trong trờng hợp này, P=PT. Từ (1.13) dạng hệ thống của ma trận kiểm tra
chẵn lẻ là
1 1 1 0

1 0 0 1

H sys =

Tiếp theo lấy u = ( u0 , u1 ,L , uk 1 ) ký hiệu cho một bản tin cần giải mã và
v = ( v0 , v1 ,L , vn 1 ) là từ mã tơng ứng trong C.

Nếu các tham số của C, đó là k<(n-k) hay tơng đơng với tỷ lệ mã k/n<1/2 thì
mã hoá với ma trận sinh sẽ rất kinh tế. Cái cần quan tâm ở đây là trờng hợp các
phép tính nhị phân:



×