Các phƣơng thức mã hóa

Một phần của tài liệu Nghiên cứu công nghệ truyền thông qua đường dây điện lực ứng dụng cho hệ thống điều khiển ngôi nhà thông minh (Trang 48 - 52)

MỘT SỐ KỸ THUẬT TRIỂN KHAI TRÊN HỆ THỐNG PLC

2.3.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.

2.3.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.16 minh họa một bộ mã hóa mã xoắn với k=1, K=3, n=2.

Hình 2.16. 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 là 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.17 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ó

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.17. Sơ đồ cây biểu diễn bộ mã hóa mã xoắn ở hình 2.16

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.17, ta đƣợc sơ đồ lƣới trên hình 2.18.

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 hàng 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.

Hình 2.18. Sơ đồ lƣới biểu diễn bộ mã hóa mã xoắn ở hình 2.16

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 là phổ biến nhất.

Thuật toán Viterbi dựa trên cơ sở giải mã lân cận 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.16. 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.

Hình 2.19 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.20. Từ đây suy ra dãy tin giải mã là 11100.

Hình 2.20. Đƣờ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.

Một phần của tài liệu Nghiên cứu công nghệ truyền thông qua đường dây điện lực ứng dụng cho hệ thống điều khiển ngôi nhà thông minh (Trang 48 - 52)