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.. 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
Trang 1BỘ 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
Trang 2Danh 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
Trang 32.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
Trang 42.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
Trang 54.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
Trang 6• 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 lưu 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ã Reed-Solomon
• 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ã
Trang 7Nế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 lưu)
• 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)
Yêu cầu truyềnlại
Bản tin truyền lạiHình 1.1: Khôi phục-lỗi bằng cách phát hiện và truyền lại
Trang 8thì 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
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 lưu 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)
Trang 9hiệ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ã chẵn lẻ sẽ thờm một bít vào trong dữ liệu, và bít cho thờm này cho biết số lượng bít cú giỏ trị 1 của đoạn dữ liệu nằm trước là một số chẵn hay
Trang 10một sè lÎ Nếu một bÝt bị thay đổi trong quá trình truyền dữ liệu, giá trị chẵn lẻ trong thông điệp sẽ thay đổi và do đó có thể phát hiện được lỗi (Chú ý rằng bÝt bị thay đổi có thể lại chính là bÝt kiểm tra) Theo quy ước chung, bÝt kiểm tra có giá trị
bằng 1 nếu số lượng bÝt có giá trị 1 trong dữ liệu là một số lẻ, và giá trị của bÝt kiểm tra bằng 0 nếu số lượng bÝt có giá trị 1 trong dữ liệu là một số chẵn Nói cách khác,
nếu đoạn dữ liệu và bÝt kiểm tra được gộp lại cùng với nhau, số lượng bÝt có giá trị bằng 1 luôn luôn là một số chẵn Việc kiểm tra dùng mã chẵn lẻ là một việc không được chắc chắn cho lắm, vì nếu số bÝt bị thay đổi là một số chẵn (2, 4, 6 - cả hai, bốn hoặc sáu bit đều bị hoán vị) thì mã này không phát hiện được lỗi Hơn nữa, mã chẵn lẻ không biết được bÝt nào là bÝt bị lỗi, kể cả khi nó phát hiện là có lỗi xảy ra Toàn bộ dữ liệu đã nhận được phải bỏ đi, và phải truyền lại từ đầu Trên một kªnh truyÒn bị nhiễu, việc truyền nhận thành công có thể mất rất nhiều thời gian, nhiều khi còn không truyền được nữa
Có hai loại mã chẵn lẻ: bÝt chẵn lẻ dùng quy luật số chẵn (even parity bit) và bÝt ch½n lẻ dùng quy luật số lẻ (odd parity bit) BÝt chẵn lẻ dùng quy luật số chẵn
có giá trị bằng 1 khi số lượng các bÝt 1, trong một nhóm bÝt cho trước, là một số lẻ (và khi cộng thêm bÝt chẵn lẻ vào, tổng số lượng bÝt có giá trị bằng 1 là một số
Trang 11chẵn) Ngược lại, bít chẵn lẻ dựng quy luật số lẻ cú giỏ trị bằng 1 nếu số lượng cỏc bít 1, trong một nhúm bít cho trước, là một số chẵn (và khi cộng thờm bít chẵn lẻ vào, tổng số bít cú giỏ trị bằng 1 là một số lẻ) Bít chẵn lẻ dựng quy luật chẵn là một trường hợp đặc biệt của kỹ thuật kiểm tra độ d− vòng-CRC Trong CRC, bít CRC
được kiến tạo bằng 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)
Ký tự/byte truyền
Bít dừng Bít chẵn lẻ Bít bắt đầu
Trang 12việc cú lợi Lấy vớ dụ, mạch nối SCCI (bus) dựng bít chẵn lẻ để phỏt hiện lỗi trong truyền thụng, và rất nhiều cỏc phần lưu trữ trong bộ nhớ cỏc lệnh vi xử lý cũng dựng bít chẵn lẻ để bảo trợ hoạt động của nú nữa Do cỏc dữ liệu trong I-cache chỉ là một bản sao của bộ nhớ chớnh, nội dung của nú cú thể được xúa đi, nạp lại nếu dữ liệu ở trong chẳng may bị thoỏi húa.Trong truyền thông dữ liệu nối tiếp, dạng thức dữ liệu được dựng phổ thụng nhất là dạng thức 7 bít, với một bít chẵn lẻ dựng quy luật
số chẵn, và một hoặc hai bít dựng cho lệnh dừng lại Dạng thức này thớch ứng hầu hết cỏc dạng thức 7-bit ký tự ASCII dưới hỡnh thức byte 8- bít Byte là một hỡnh thức tiện lợi để biểu đạt dữ liệu Những dạng thức khỏc cũng cú thể thực hiện được, như dạng thức 8 bít dữ liệu cộng với một bít chẵn lẻ cú thể dựng để chuyờn chở tất
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)
( ) ( ) ( ) ( ) ( )
r
=Q x +
Trang 13- 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 ì2 +R x( ) ( ) r ( )
- Đổ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 111001101111 11001
11001 10110110 11001 10110110
0010111 0010111
11001 11001
011100 011100
11001 11001
0010100 0010111
11001 11001
011010 011101
11001 11001
000110 001001
Phần dư 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:
Trang 14- 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:
CRC-12 CRC-16 CRC-CCITT
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 trưng 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
Trang 15H×nh 1-4 M¹ch t¹o m· CRC ph¸t
Trang 16đ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
Phần dư = 0Hình 1-5 Mạch kiểm tra CRC bên thu
Trang 17Mạ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 nhưng không ứng dụng nhiều trong thực tế:
Mã-hai-trong-năm
Trong những năm của thập niờn kỷ 1940, Bell cú sử dụng một mó hiệu phức tạp hơn một chỳt, gọi là mã hai-trong-năm (two-out-of-five code) Mó này đảm bảo mỗi một khối 5 bít (cũn được gọi là khối-5) cú chớnh xỏc hai bít cú giỏ trị bằng 1 Mỏy tớnh cú thể nhận ra là dữ liệu nhập vào cú lỗi nếu trong một khối 5 bít khụng 2 bít cú giỏ trị bằng 1 Tuy thế, mã hai-trong-năm cũng chỉ cú thể phỏt hiện được một đơn vị bít mà thụi; nếu trong cựng một khối, một bít bị lộn ngược thành giỏ trị 1, và một bít khỏc bị lộn ngược thành giỏ trị 0, quy luật hai-trong-năm vẫn cho một giỏ trị đỳng,
và do đú nú khụng phỏt hiện là cú lỗi xảy ra
Tái diễn dữ liệu
Một mó nữa được dựng trong thời gian này là mó hoạt động bằng cỏch nhắc đi nhắc lại bít dữ liệu vài lần (tỏi diễn bít được truyền) để đảm bảo bít dữ liệu được truyền, truyền đến nơi nhận trọn vẹn Chẳng hạn, nếu bít dữ liệu cần được truyền cú giỏ trị bằng 1, một mó tỏi diễn n=3 sẽ cho truyền gửi giỏ trị "111" Nếu ba bít nhận được khụng giống nhau, thỡ hiện trạng này bỏo cho ta biết rằng, lỗi trong truyền thụng đó xảy ra Nếu kờnh truyền khụng bị nhiễu, tương đối đảm bảo, thỡ với hầu hết cỏc lần truyền, trong nhúm ba bít được gửi, chỉ cú một bít là bị thay đổi Do đú cỏc nhúm 001, 010, và 100 đều tương đương cho một bít cú giỏ trị 0, và cỏc nhúm
110, 101, và 011 đều tương đương cho một bít cú giỏ trị 1 - lưu ý số lượng bít cú giỏ
trị 0 trong cỏc nhúm được coi là cú giỏ trị 0, là đa số so với tổng số bít trong nhúm,
Trang 18hay 2 trong 3 bít, tương đương như vậy, cỏc nhúm được coi là giỏ trị 1 cú số lượng bít bằng 1 nhiều hơn là cỏc bít cú giỏ trị 0 trong nhúm - chẳng khỏc gỡ việc cỏc
nhúm bít được đối xử như là "cỏc phiếu bầu" cho bít dữ liệu gốc vậy
Tuy nhiờn, những mó này khụng thể sửa tất cả cỏc lỗi một cỏch đỳng đắn hoàn toàn Chẳng hạn chỳng ta cú một vớ dụ sau: nếu một kờnh truyền đảo ngược hai bít
và do đú mỏy nhận thu được giỏ trị "001", hệ thống mỏy sẽ phỏt hiện là cú lỗi xảy
ra, song lại kết luận rằng bít dữ liệu gốc là bít cú giỏ trị bằng 0 Đõy là một kết luận sai lầm Nếu chỳng ta tăng số lần cỏc bít được nhắc lại lờn 4 lần, chỳng ta cú thể phỏt hiện tất cả cỏc trường hợp khi 2 bít bị lỗi, song chỳng ta khụng thể sửa chữa chỳng được (số phiếu bầu "hũa"); với số lần nhắc lại là 5 lần, chỳng ta cú thể sửa chữa tất cả cỏc trường hợp 2 bít bị lỗi, song khụng thể phỏt hiện ra cỏc trường hợp 3 bít bị lỗi
Núi chung, mó tỏi diễn là một mó hết sức khụng hiệu quả, giảm cụng suất xuống 3 lần so với trường hợp đầu tiờn trong vớ dụ trờn của chỳng ta, và cụng suất làm việc giảm xuống một cỏch nhanh chúng nếu chỳng ta tăng số lần cỏc bít được nhắc lại với mục đớch để sửa nhiều lỗi hơn
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 lưu 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
Trang 19
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ỏ
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 lưu ý 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
Trang 20Xé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 x = x ,x , ,x 1 ( 1,0 1,1 1,n-1) và
2 2,0 2,1 2,n-1
x = x ,x , ,x là 2 véctơ trong V2 Vậy khoảng cách Hamming giữa x1 vàx2,
ký hiệu là d H(x ,x 1 2) được định nghĩa như sau:
d x ,x = i:xH( 1 2) { 1,i ≠x ,0 i<n2,i ≤ } (1.1)
Từ đây (n, k, d min) 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 d min 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
Trang 21≤ 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 nhưng 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 nhưng 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 trưng 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,
Trang 22Lưu ý rằng kích thước của (hay số từ mã trong) S v t( ) được cho bởi biểu thức sau:
0
t t
đị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 S v t( )
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 v i,v j∈
C, cầu Hamming tương ứng bị tách rời ra
v v C
t = m a x l S∈ | v ∩ S v = ∅ v ≠ v (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:
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 d min 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) 2 k (2 k -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ã
Trang 23khối tuyến tính là chỉ cần biết khối lượng Hamming của toàn bộ (2 k -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 trưng 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, d min) tuyến tính nhị phân Khi đó C là không gian con
véctơ k-chiều, có 1 gốc là {v v0, , ,1L v kư1}, vì thế bất kỳ từ mã v∈ nào cũng có 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ới u i∈{ }0,1 ,1≤ ≤ Phương trình (1.6) có thể viết dưới dạng của 1 ma trận i k
sinh G và véctơ bản tin u=(u u0, , ,1L u kư1), như sau:
Trang 24L
(1.8)
Từ đó, C là không gian véctơ k-chiều trong V2, có 1 không gian CT đối ngẫu
(n-k)-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, lưu ý rằng bất kỳ từ mã
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 wt H( )x của một véctơ x V∈ 2
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 wt H( )x =d H( )x, 0 Đối với mã tuyến tính nhị phân C, lưu ý rằng
khoảng cách:
d H(v v1, 2)=d H(v1+v2,0)=wt H(v1+v2) (1.10)
Cuối cùng, do tính tuyến tính, v1+ ∈ Kết quả, khoảng cách tối thiểu của C v2 C
có thể tính toán bằng cách tìm khối lượng Hamming tối thiểu trong số (2 k-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ã
Trang 25(n, k, d min) 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à I K và ma trận con chẵn lẻ k ì (n-k), vì vậy:
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:
Trang 26v uG= sys =(u v, p), (1.14) Với v p=uP=(v v k, k+1, ,L v nư1)tương ứng với phần kiểm tra chẵn lẻ của từ mã Tuy nhiên, nếu k >(n-k) hay k/n >1/2 thì mã hoá với ma trận kiểm tra chẵn lẻ H
yêu cầu số lượng tính toán ít hơn Trong trường hợp này ta có mã hoá dựa trên phương trình (1.9), ( , ) T 0
p
u v H = , vì thế có được (n-k) vị trí kiểm tra chẵn lẻ như
sau:
v j =u p0 0,j +u p1 1,j +L+u kư1p kư1,j k≤ j<n (1.15) Biễu diễn bằng ký hiệu theo các số hạng khác, dạng hệ thống của ma trận kiểm tra chẵn lẻ của mã tuyến tính có các phần tử vào các hàng của nó là các hệ số của phương trình kiểm tra chẵn lẻ, từ đó có được giá trị của các vị trí thừa ra
Trang 27
Để mô tả thủ tục giải mã, cần phải biết khái niệm syndrome (Hội chứng được
dùng như triệu chứng của bệnh tật) Syndrome của một từ trong V2 được định nghĩa
Thủ tục xây dựng mảng chuẩn
1 ở hàng đầu tiên, trong vị trí của 2k cột ngoài cùng bên phải, cho vào tất cả từ mã của C, bắt đầu với từ mã toàn không ở vị trí ngoài cùng bên trái ở vị trí
tương ứng với cột thứ nhất, cho vào syndrome toàn không Lấy j = 0
2 Lấy j=j+1 Tìm từ có khối lượng Hamming nhỏ nhất e trong V j 2, chứ không phải trong C và không kể những hàng trước đó Syndrome tương ứng T
j j
s =e H là đầu vào (ngoài cùng bên phải) của hàng 2k đầu vào còn lại có
được bằng cách thêm e vào tất cả phần tử vào ở hàng đầu tiên (các từ mã của C) j
3 Lặp lại các bước như trên đến khi tất cả các véctơ ở V2 đều ở trong mảng
Tương tự lấy j=j+1 Nếu j < 2n-k thì lặp lại các bước trên, nếu không thì dừng lại
Ví dụ 1.4 : Mảng chuẩn của mã (4,2,2) tuyến tính nhị phân như sau:
Bảng 1.1: Mảng chuẩn của một mã khối tuyến tính nhị phân
Trang 28Giải mã với mảng chuẩn tiếp tục như sau Lấy r = + là thu nhận được Tìm v e
từ trong dãy và đầu ra như bản tin giải mã u là header của cột chứa r Một cách
khái niệm rằng, đây là quá trình yêu cầu lưu trữ các phần tử mảng và làm cho từ nhận được phù hợp với 1 phần tử trong mảng
Tuy nhiên, một thủ tục mã hoá đơn giản có thể được tìm thấy bằng cách lưu ý
rằng mỗi hàng trong mảng có cùng syndrome Mỗi hàng của mảng, ký hiệu Row i ,
với 0 ≤ i < 2n-k là một coset của C, vì thế Row i ={e v v C i+ | ∈ } Véctơ e i (hàng chứa
mẫu lỗi ở cột đầu tiên ) gọi là coset leader
Syndrome của các phần tử trong hàng thứ i được cho bởi:
cuối giá trị của e từ cột thứ hai và cộng nó vào từ thu được để đạt được từ mã i'
Trang 29Từ mảng chuẩn của mã, tìm thấy coset leader tương ứng e'=(0100)và vì vậy
ước lượng từ mã là v' = + =r e' (0010) (+ 0100) (= 0110) Một lỗi đã được sửa Điều này nghe có vẻ lạ khi khoảng cách tối thiểu của mã chỉ là 2, vì vậy theo (1.5) thì lỗi
đơn là không thể sửa được Tuy nhiên điều này có thể được giải thích bằng cách xem lại ví dụ 1.4 Lưu ý rằng hàng thứ 3 của mảng chứa 2 véctơ nhị phân riêng biệt khối lượng 1, nghĩa là có 3 trong tổng số 4 dạng lỗi đơn có thể được sửa Lỗi ở trên
là 1 trong số những dạng lỗi đơn sửa được
Nếu mã hoá là hệ thống thì thủ tục trên đưa ra ước lượng bản tin u trong k vị trí '
đầu của v Điều này là hợp lý để có được mã hoá hệ thống '
1.4.3 Cầu Hamming, vùng giải mã và mảng chuẩn
Dãy chuẩn cũng là 1 cách thuận tiện hiểu nội dung của cầu Hamming và khả năng sửa lỗi của mã tuyến tính C
Lưu ý rằng 2k cột ngoài cùng bên phải của dãy chuẩn, ký hiệu Colj với 1≤j≤2k, chứa 1 từ mã v j∈ và 1 tập hợp 2C n-k-1 từ tại khoảng cách Hamming nhỏ nhất từ v , j
đó là
j j i i i
Col = v + | ∈e e Row ≤ <i ư (1.19) Tập hợp Colj là vùng giải mã, trong không gian Hamming, xung quanh mỗi từ mã v j ∈ , với 0≤j≤2 C k-1 Điều này nghĩa là nếu từ mã v j∈ được truyền trên 1 C
kênh BSC và từ nhận r nằm trong tập hợp Colj thì nó sẽ được giải mã, thành công, thành v j
Giới hạn Hamming
Tập hợp các Colj và khả năng sửa lỗi t của mã C quan hệ với nhau bởi cầu
Hamming S v Một mã (n, k, d t( )j min) tuyến tính nhị phân có vùng giải mã Colj mà chứa đúng cầu HammingS v có nghĩa là t( )j S v t( )j ⊆Col j
Chú ý rằng kích thước của Colj là 2n-k và sử dụng phương trình(1.3) ta có được giới hạn Hamming
Trang 30n i
Khi lựa chọn một sơ đồ mã hoá riêng, điều quan trọng là tìm ra đặc tính lỗi của
nó Có một vài tiêu chuẩn để đánh giá đặc tính lỗi của 1 sơ đồ ECC Trong phần này
sẽ giới thiệu các biểu thức của mã tuyến tính cho 3 mô hình kênh cơ bản: Mô hình kênh nhị phân đối xứng (BSC), mô hình kênh tạp âm trắng Gauss cộng(AWGN) và mô hình kênh pha-đinh Reyleigh thẳng
1.5.1 Sắp xếp khối lượng và xác suất lỗi không thể phát hiện trên một kênh BSC
Sắp xếp khối lượng W(C) của 1 mã sửa lỗi C được định nghĩa là tập hợp của
(n+1) số nguyên W(C)={Ai , 0≤ i ≤ n} vì thế có A i từ mã khối lượng Hamming i trong C, với i=0, 1, , n
Biểu thức xác suất lỗi không thể phát hiện của mã tuyến tính trên BSC sẽ được
bắt nguồn từ sau đây Đầu tiên lưu ý rằng khối lượng Hamming của 1 từ mã v ,
( )
H
Khoảng cách Hamming giữa 2 từ mã bất kỳ trong 1 mã tuyến tính C bằng khối lượng Hamming của sự khác nhau của chúng
d H(v1+v2)=d H(v1+v2, 0)=wt v H( 1+v2)=wt v H( )3
với v3∈C
Xác suất lỗi không thể phát hiện được ký hiệu Pu(C), là xác suất mà từ nhận
được khác với từ mã truyền đi nhưng syndrome bằng 0 Đó là:
s =(v e H+ ) T =eH T = ⇔ ∈ 0 e C
Trang 31Vì vậy, xác suất mà syndrome của từ nhận được là 0 bằng xác suất mà 1 véctơ lỗi là 1 từ mã khác 0 trong C Với sự truyền dẫn trên 1 kênh BSC, xác suất mà véctơ
lỗi e có khối lượng i bằng xác suất mà i bít là lỗi và (n-i) bít còn lại là đúng Lấy
1.5.2 Giới hạn thực hiện trên BSC, AWGN và các kênh pha-đinh
Mục đích của phần này là giới thiệu những mô hình kênh cơ bản được xét trong luận văn này, những biểu thức tương ứng với đặc tính sửa lỗi của mã tuyến tính Đầu tiên xét sửa lỗi cho BSC
*Mô hình kênh BSC
Đối với mã tuyến tính nhị phân C, một thủ tục giải mã sử dụng mảng chuẩn sẽ giải mã véctơ thu được thành từ mã gần nhất Một lỗi giải mã được tạo ra bất cứ khi nào véctơ nhận nằm ngoài vùng giải mã đúng
Lấy Li ký hiệu cho số coset leader khối lượng i trong mảng chuẩn của mã tuyến
Trang 32tính C Xác suất của giải mã đúng bằng xác suất là một coset leader và được cho bởi:
Với i là khối lượng Hamming lớn nhất của 1 coset leader trong mảng chuẩn
Với những mã hoàn hảo: l=t và
n L
Đối với mã nhị phân nói chung, phương trình (1.23) trở thành giới hạn dưới cho
PC(C), từ đó các coset leader hiện có khối lượng lớn hơn t
Xác suất giải mã sai, ký hiệu Pe(C), cũng là xác suất của 1 lỗi giảI mã, bằng xác suất của tập hợp bổ sung của trường hợp giải mã đúng, nghĩa là Pe(C)=1- PC(C) Từ phương trình (1.23)
Trang 33giá trị về ước lượng đặc tính lỗi của sơ đồ mã hoá nhị phân trên kênh AWGN
Xét một hệ thống truyền dẫn nhị phân, với bít mã hoá trong tập hợp {0,1} được
và độc lâp có tính thống kê với mỗi mẫu là 1 phân bố Gauss với giá trị trung bình àn
= 0 và phương sai σn = No/2 và No là mật độ phổ công suất 1 chiều Giải mã nhiều
khả năng đúng nhất (MLD) của mã tuyến tính C trên kênh này đã chọn 1 dãy ˆx mà giảm đến tối thiểu khẳng cách Euclide bình phương giữa dãy nhận y và ˆx :
Xác suất của 1 lỗi giải mã với MLD , ký hiệu Pe(C) thì bằng xác suất mà 1 dãy
với dãy mã khác ˆx∈C, ˆx≠x Với mã tuyến tính C, giả sử rằng tất cả từ mã 0 sẽ
được truyền đi Vì thế Pe(C) có thể được giới hạn trên dựa vào sắp xếp khối lượng W(C) như sau:
Bộ mã hoá
nhị phân
Đích thông tin
Bộ giải mã
quyết định- -cứng
Phép ánh xạ 0→ +1 1→ -1
+
n y u%
Hình 1.10: Hệ thống truyền dẫn nhị phân trên kênh AWGN
Trang 34với R=k/n là tỷ lệ mã hoá, Eb/No tỷ số tín hiệu trên nhiễu
* Mô hình kênh pha-đinh Rayleigh thẳng
Một mô hình kênh quan trọng khác là pha-đinh Rayleigh thẳng Pha-đinh xuất hiện trong các hệ thống không dây dưới hình thức biến dạng (méo) theo thời gian của tín hiệu truyền đi Ta xét trường hợp của pha-đinh Rayleigh thẳng, thuật ngữ
“thẳng” đề cập đến thực tế rằng kênh không phải chọn lọc tần số vì vậy hàm chuyển
đổi trong miền tần số sẽ là hằng số
Kết quả là méo sẽ tăng gấp nhiều lần trong kênh như mô hình được mô tả ở Hình 1.11, với α là 1 véctơ có n thành phần nhiễu phân bố đồng nhất và độc lập,
biến số ngẫu nhiên αi , 0≤ i ≤ n, mỗi biến số có 1 hàm mật độ xác suất Rayleigh
Những xác suất lỗi không có điều kiện có thể tính bằng tích phân của αi với pdf cho bởi phương trình (1.27)
Bộ mã hoá
nhị phân
Đích thông tin
Bộ giải mã
quyết định- -cứng
Phép ánh xạ 0→ +1 1→ -1
+
n y u%
ì α
Hình 1.11: Hệ thống truyền dẫn mã hoá nhị phân trên 1 kênh pha đinh
Rayleigh thẳng
Trang 35biên độ pha-đinh αi Xét một hệ thống truyền dẫn mã hoá nhị phân mà không có thông tin trạng thái kênh CSI, ta có:
0 min
12
n
b e
Với ∆ω(l): tổng bình phương của biến số nhiễu ngẫu nhiên phân bố đồng nhất và
độc lập với phân phối Rayleigh cho bởi (1.29), được tao ra trong kết quả thứ l của
một chương trình máy tính và N là số đủ lớn phụ thuộc vào dải giá trị của Pe(C), tốt nhất là N lớn hơn nghịch đảo của Pe(C) ít nhất 100 lần
1.6 Cấu trúc tổng quát của bộ giải m∙ quyết định cứng của m∙ tuyến tính
Trong phần này sẽ giới thiệu tóm tắt cấu trúc tổng quát của 1 bộ giải mã quyết
định cứng cho mã tuyến tính Hình 1.12 đưa ra một sơ đồ khối đơn giản của quá trình giải mã Lưu ý rằng khi giả định quyết định cứng, những bít đầu vào của bộ giải điều chế sẽ được đưa vào 1 bộ giải mã thiết kế cho 1 BSC
Lấy v : ký hiệu cho từ mã phát Bộ giải mã có tại đầu vào của nó một véctơ thu
nhiễu: r = + Thủ tục giải mã 2 bước của 1 mã tuyến tính là: v e
Trang 36• Tính syndrome s rH= T Dựa trên các thuộc tính mã, syndrome là sự biến đổi tuyến tính của véctơ lỗi đ−ợc giới thiệu trong kênh
Trang 37CHƯƠNG 2
M∙ HAMMNG, GOLAY Và REED-MULLER
Trong chương này, sẽ giới thiệu nhiều ví dụ quan trọng về mã nhị phân tuyến tính Chúng sẽ giúp hiểu thêm về nội dung của ECC với những thuật toán giải mã thông minh Mã Hamming được biết nhiều trong các loại mã khối, trừ mã Reed-Solomon ra, là mã tối ưu theo hướng yêu cầu số phần dư ít nhất, đối với 1 chiều dài khối cho trước, để sử bất kỳ lỗi đơn nào Mã Golay nhị phân chỉ là một ví dụ quan trọng khác của 1 mã sửa lỗi-3 tối ưu(chỉ có mã tối ưu nhị phân khác là mã kiểm tra parity đơn (SPC) và mã lặp) Mã Reed-Muler được định nghĩa là mã với sự xác định
tổ hợp elagant mà chúng dễ dàng để giải mã
2.1 M∙ Hamming
Từ chương 1, phương trình (1.9) bất kỳ từ mã nào trong mã (n, k, d min) khối tuyến tính C đều thoả mãn:
Một sự giải thích có nghĩa của phương trình này là: số cột độc lập tuyến tính tối
đa của ma trận kiểm tra parity H của C bằng(d min-1)
Trong trường hợp nhị phân, với d min=3, phương trình trên chuyển thành tổng của
2 cột bất kỳ của H mà không bằng véctơ 0 Giả sử các cột của H là véctơ nhị phân
của chiều dài m Có (2m-1) cột riêng biệt khác 0 trở lên Vì thế, chiều dài của mã sửa lỗi-đơn nhị phân cho bởi:
Bất đẳng thức này đúng với giới hạn Hamming (1.20) của mã sửa lỗi chiều dài
n, với n-k=m và t=1 Do vậy, một mã đạt được giới hạn này được biết tới như một
mã Hamming
Ví dụ 2.1: Với m=3, ta có mã Hamming (7,4,3) với ma trận kiểm tra chẵn lẻ:
Trang 38Mã Hamming có tính chất là ma trận kiểm tra parity H của nó có các cột là khác
nhau Nếu 1 lỗi đơn xuât hiện, ở vị trí j, 1≤ j ≤ n, thì syndrome của véctơ thu được sẽ bằng cột của H ở vị trí mà lỗi xuất hiện Lấy e ký hiệu cho véctơ lỗi cộng vào trong
truyền dẫn 1 từ mã trên kênh BSC và giả sử rằng toàn bộ các thành phần của nó (của
2.1.1 Thủ tục mã hoá và giải mã
Từ phương trình (2.2) chỉ ra rằng nếu có thể biễu diễn các cột của H như là sự biểu diễn nhị phân của các số nguyên thì giá trị của syndrome sẽ chỉ ra trực tiếp vị trí của lỗi Đây là ý tưởng của thuật toán mã hoá và giải mã dưới đây:
Các cột của ma trận kiểm tra chẵn lẻ H biễu diễn dưới dạng nhị phân của các số
nguyên i trong dải [1,n] và theo thứ tự tăng dần Ký hiệu ma trận kết quả là H’, rõ ràng mã kết hợp với H’ là tương đương với mã Hamming gốc với ma trận kiểm tra
chẵn lẻ H có khả năng hoán vị các vị trí
Từ chương 1, ma trận kiểm tra chẵn lẻ ở dạng hệ thống chứa ma trận đồng nhất
(n-k)ì(n-k) In-k, như trong phương trình (1.13) Rõ ràng khi biễu diễn H’ với các cột bằng biểu diễn nhị phân của số cột (số nguyên), ma trận đồng nhất sẽ gồm những cột của H’ mà tương ứng với luỹ thừa chẵn của 2, dạng 2 l , 0 ≤ l ≤ m Điều này sẽ
được mô tả trong ví dụ sau:
Ví dụ 2.2: Lấy m=3 thì ma trận kiểm tra chẵn lẻ của hệ thống là:
Trang 39Ma trận H’ cho bởi biễu diễn nhị phân của các số nguyên từ 1 đến 7( sau đây, phần cao nhất sẽ ứng với bít có nghĩa nhỏ nhất trong biễu diễn nhị phân của 1 số nguyên
232
Điều này chỉ ra rằng có thể tồn tại 1 mã nhị phân hoàn hảo (23,12,7) với t=3 có
khả năng sửa các dạng có thể của hầu hết lỗi-3 trong 23 bít, Golay đã đ−a ra một ma
Trang 40trận sinh của 1 mã nhị phân sửa lỗi-3 như vậy
Do mối quan hệ giữa chiều dài nhỏ (23), số chiều (12)và số bít dư (11)của nó, mã Golay nhị phân (23,12,7) có thể được mã hoá và giải mã một cách đơn giản bằng cách sử dụng bảng tìm kiếm
2.2.1 Mã hoá
Mã hoá dựa trên bảng tìm kiếm(LUT) chứa danh sách của 212= 4096 từ mã mà
được biểu thị trực tiếp bằng dữ liệu Lấy u là ký hiệu cho 1 véctơ nhị phân 12 bít tượng trưng cho dữ liệu cần mã hoá, và vký hiệu cho 23 bít từ mã tương ứng
Bộ mã hoá LUT được dựng lên bởi việc tạo ra tất cả 4096 véctơ 12 bít và tính
syndrome của 1 dạng có 12 MSB (12 bít có nghĩa lớn nhất) là bít thông tin và 11
LSB (bít có nghĩa nhỏ nhất) là bằng 0 Syndrome 11 bít sau đó trở thành phần LSB
của từ mã Bảng LUT là phép ánh xạ một-một từ u thành v , được biểu diễn như
sau:
v LUT u= ( )=(u get syndrome u v, _ ( ), ) (2.3) Trong cấu trúc của mã hoá LUT, có ưu điểm là nó được lấy từ tính tuần hoàn của mã Golay Đa thức sinh của nó là
Thủ tục xây dựng bộ giải mã LUT như sau:
1 Tạo ra dạng lỗi e có thể của khối lượng Hamming ≤ 3
2 Đối với mỗi dạng lỗi, tính syndrome tương ứng s =get syndrome e_ ( )