a. Ghép tín hiệu vào đƣờng dây điện
2.6. Các phƣơng thức mã hóa
Đường dây truyền tải điện không phải được thiết kế để dành cho truyền dữ liệu. Khi đưa thông tin truyền trên đó, ta sẽ gặp phải rất nhiều yếu tố gây nhiễu cho tín hiệu vì vậy ta chủ yếu quan tâm đến mã hóa kênh để phát hiện lỗi và sửa lỗi. Các mã sửa lỗi như mã xoắn và mã Reed - Solomon có thể kết hợp với nhau trong hệ thống để cải thiện chất lượng hệ thống.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
2.6.1 Mã xoắn
Mã xoắn (convolutional code) được đặc trưng bởi ba số nguyên là n, k và K. Mã xoắn hay mã chập (n,k,K) được xây dựng từ các thanh ghi dịch kK bit. Ở đây ta xét loại mã xoắn phổ biến nhất là mã xoắn có k=1. Bộ mã hóa là thanh ghi dịch K bit. Đầu ra của các vị trí trong thanh ghi được lựa chọn để cộng modul-2 với nhau. Số lượng bộ cộng modul-2 chính là n. Một bộ chuyển mạch sẽ lần lượt lấy mẫu mỗi đầu ra của bộ cộng modul-2 theo nhịp của đòng hồ thanh ghi dịch.
Hình 2.23 minh họa một bộ mã hóa mã xoắn với k=1, K=3, n=2.
Hình 2.23. Ví dụ bộ mã hóa mã chập tỷ lệ 1/2
a) Biểu diễn mã chập bằng đa thức sinh
Có thể biểu diễn bộ mã hóa mã xoắn bang các đa thức sinh. Mỗi đa thức sinh biểu diễn cho một bộ cộng modul-2. Đa thức sinh có bậc ≤K-1 miêu tả sự kết nối giữa đầu ra của một vị trí trong thanh ghi dịch với bộ cộng modul-2. Theo ví dụ trên, hai đa thức sinh là G1(x) = 1 + x2 và G2(x) = 1 + x.
Giả sử dãy tin vào bộ mã hóa la 1100, dãy mã hóa sẽ là 11101101…, nghĩa là ứng với một bit tin vào có hai bit mã hóa ra. Do đó, tỷ lệ mã là 1/2.
Định nghĩa đáp ứng xung của mã hóa là đáp ứng của bộ mã hóa khi bit vào là 1. Trong ví dụ trên, đáp ứng xung sẽ là: 110110. Với dãy vào là 1101, ta thấy dãy ra có thể được tính là chập dãy vào với đáp ứng xung. Do đó mã này có tên là mã chập.
b) Biểu diễn mã xoắn bằng sơ đồ cây.
Hình 2.24 trình bày sơ đồ cây biểu diễn mã chập cho ví dụ trên. Giả sử ban đầu toàn bộ thanh ghi được xóa về 0. Đọc sơ đồ cây theo phương ngang từ trái qua phải, mỗi nhánh cây biểu diễn một từ mã hai bit ra ứng với một bit vào. Mỗi khi có
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
bit vào là 0, đi sang nhánh phải tiếp theo ở phía trên, nếu bit vào là 1 thì đi sang nhánh phải tiếp theo ở phía dưới.
Hình 2.24. Sơ đồ cây biểu diễn bộ mã hóa mã xoắn ở hình 2.23
Giả sử dãy vào là 110, đi theo đường nét đậm trên sơ đồ cây, ta được dãy ra là 111011. Nếu số bit vào là L thì số nhánh trong sơ đồ cây sẽ là 2L. Như vậy, khi số bit vào tăng thì sơ đồ cây rất cồng kềnh.
c) Biểu diễn mã xoắn bằng sơ đồ lưới.
Nhìn trong sơ đồ cây ta thấy thực tế là bộ mã hóa mã xoắn chỉ có 4 trạng thái phân biệt, ký hiệu là a, b, c và d tương ứng với các cặp bit nhị phân 00, 10, 01 và 11.
Từ sơ đồ cây, ta thấy: lần phân nhánh đầu tiên tạo ra hai nút, lần phân nhánh thứ hai tạo ra bốn nút và cứ sau mỗi lần phân nhánh số nút tăng gấp đôi. Sau lần phân nhánh thứ ba ta thấy nửa trên và nửa dưới của cây giống hệt nhau. Như vậy, vào thời điểm ti nào đó, hai nút bất kỳ có cùng trạng thái đều có thể kết hợp với nhau thành một nút. Áp dụng điều này cho sơ đồ cây trên hình 2.24, ta được sơ đồ lưới trên hình 2.25.
Các nút trong lưới biểu diễn trạng thái của bộ mã hóa. Các nút ở cùng hang biểu diễn cùng trạng thái. Từ mỗi nút lưới có hai nhánh ra: một nhánh ứng với bit vào là 0 (đường nét liền), một nhánh ứng với bit vào là 1 (đường nét đứt). Tổng quat, sau cột nút thứ K, cấu trúc lưới được lặp lại.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 2.25. Sơ đồ lưới biểu diễn bộ mã hóa mã xoắn ở hình 2.23
Giải mã xoắn bằng thuật toán Viterbi.
Khác với mã khối có độ dài từ mã cố định, mã xoắn không có kích thước đặc thù. Tuy vậy, mã xoắn cũng bị ép vào một cấu trúc khối bằng cách gắn thêm một số bit 0 vào cuối một dãy tin để đảm bảo đuôi dãy tin được dịch hết qua thanh ghi dịch. Các bit 0 này không mang thông tin nên tỷ lệ mã sẽ nhỏ hơn k/n. Để giữ cho tỷ lệ mã xấp xỉ với k/n, chu kỳ gắn thêm bit 0 thường rất dài. Chẳng hạn trong ví dụ trên đây sau 300 bit tin mới gắn thêm hai bit 0. Vậy tỷ lệ mã là 300/604 xấp xỉ 1/2.
Có ba kiểu giả mã chập chính là kiểu tuần tự, ngưỡng và Viterbi, trong đó Viterbi la phổ biến nhất.
Thuật toán Viterbi dựa trên cơ sở giải mã lân cậ gần nhất (nearest neighbour). Thuật toán tính khoảng cách Hamming (gọi là metric) giữa tín hiệu thu vào thời điểm ti và tất cả các đường trong lưới dẫn đến mỗi trạng thái ở cùng thời điểm ti. Khi hai đường cùng dẫn đến một trạng thái, chọn ra đường có khoảng cách Hamming ngắn hơn gọi là đường sống (surviving path). Việc chọn đường sống được thực hiện cho tất cả các trạng thái vào tất cả các thời điểm.
Ta xét lại ví dụ mã hóa mã xoắn hình 2.23. Giả sử dãy thu là 1010001010, dãy vào bộ mã hóa là 5 bit, trong đó có 3 bit tin và 2 bit 0 thêm vào.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 2.26 Sơ đồ lưới giải mã
Thực hiện so sánh, chọn đường có metric thấp hơn, cuối cùng ta còn lại đường sống là đường in đậm (nét đứt và nét liền) trên hình 2.27. Từ đây suy ra dãy tin giải mã là 11100.
Hình 2.27. Đường sống và kết quả giải mã
Trong thực tế bộ giải mã Viterbi gồm có ba khối chính. Thứ nhất là khối tính giá trị metric nhánh BMV (Branch Metric Value), thứ hai là khối tính metric đường PMV (Path Metric Value) – là tổng các metric nhánh dọc theo một đường trong lưới và thứ ba là khối xác định đầu ra – chọn đường metric nhỏ nhất.