Mã hóa xoắn ( hay còn gọi là mã chập ) : là một loại mã sửa lỗi trong đó Mỗi symbol mbit thông tin (chuỗi mbit) ñược mã hóa thành một symbol nbit, với mn là tỉ lệ mã hóa (n ≥ m). Và hàm truyền đạt là một hàm của k symbol thông tin cuối cùng, với k là chiều. Thuật ngữ Convolution Codes: Tiếng Việt gọi là Mã chập, là một kỹ thuật mã hóa sửa sai (FEC). Convolution Codes thuộc họ mã lưới (mã hóa theo Trellis) và được xây dựng dựa trên 1 đa thức sinh hoặc 1 sơ đồ chuyển trạng thái (trellis mã) đặc trưng. Quá trình giải mã của mã chập phải dựa vào trellis mã thông qua các giải thuật khác nhau, trong đó nổi tiếng nhất là giải thuật Viterbi. Đặc điểm mã chập: Là mã tuyến tính có ma trận sinh có cấu trúc sao cho phép mã hóa có thể xem như một phép lọc (hoặc lấy tổng chập). Các đoạn bit thông tin được mã hoá, để nhận được từ mã dài n ký hiệu. Mã xoắn là loại mã có nhớ, trong mạch điện mã hoá bao gồn: k bit thông tin vào, m ô nhớ, n bộ cộng module 2 và một bộ dồn kênh ở đầu ra. Nhờ bộ dồn kênh mà cứ k bit thông tin vào, sẽ tạo ra n ký hiệu mã đầu ra. Hơn nữa n ký hiệu đầu ra không chỉ phụ thuộc vào k bit thông tin ở cùng thời điểm, mà còn phụ thuộc vào m bit thông tin vào ở các thời điểm trước đó, được ghi nhớ trong m ô ghi dịch. Kí hiệu: Mã xoắn thường được ký hiệu là: X(n,k,m).
Trang 1BÁO CÁO THỰC HÀNH NHÓM 4
Nhóm thực hiện : 1 Nguyễn Trung Hiếu
Giảng viên hướng dẫn : Nguyễn Thị Hồng Nhung
Trang 2NÔÔI DUNG
I Tổng quan mã xoắn
II Mã hóa mã xoắn ( mã chập )
III Các phương pháp phân tích hoạt động của mạch mã hoá mã xoắn
IV Giải mã mã xoắn theo thuật toán Viterbi
V Ví dụ ứng dụng thuật toán giải mã Viterbi
VI Kết luận
Trang 3 Thuật ngữ Convolution Codes: Tiếng Việt gọi là Mã chập, là
một kỹ thuật mã hóa sửa sai (FEC) Convolution Codes thuộc họ mã lưới (mã hóa theo Trellis) và được xây dựng dựa trên 1 đa thức sinh hoặc 1 sơ đồ chuyển trạng thái (trellis mã) đặc trưng Quá trình giải
mã của mã chập phải dựa vào trellis mã thông qua các giải thuật khác nhau, trong đó nổi tiếng nhất là giải thuật Viterbi
Trang 4I Tổng Quan
Đặc điểm mã chập: Là mã tuyến tính có ma trận sinh có cấu
trúc sao cho phép mã hóa có thể xem như một phép lọc (hoặc lấy tổng chập) Các đoạn bit thông tin được mã hoá, để nhận được từ
mã dài n ký hiệu Mã xoắn là loại mã có nhớ, trong mạch điện mã hoá bao gồn: k bit thông tin vào, m ô nhớ, n bộ cộng module 2 và một bộ dồn kênh ở đầu ra Nhờ bộ dồn kênh mà cứ k bit thông tin vào, sẽ tạo ra n ký hiệu mã đầu ra Hơn nữa n ký hiệu đầu ra không chỉ phụ thuộc vào k bit thông tin ở cùng thời điểm, mà còn phụ thuộc vào m bit thông tin vào ở các thời điểm trước đó, được ghi nhớ trong m ô ghi dịch
Kí hiệu: Mã xoắn thường được ký hiệu là: X(n,k,m)
Trang 6II Mã hóa mã xoắn
Mã hóa mã xoắn gồm 2 loại:
Mã xoắn hệ thống: Có đặc điểm là trong các mạch điện như thế này, các ký hiệu mã đầu ra, chúng ta có thể phân biệt được đâu là các bit thông tin, đâu là các ký hiệu kiểm tra
Mã xoắn không hệ thống: Có đặc điểm là trong các mạch điện như thế này được gọi là mã xoắn không hệ thống, vì trong các ký hiệu mã đầu ra, chúng ta không thể phân biệt được đâu là các bit thông tin, đâu là các ký hiệu kiểm tra
Trang 7Hình 1 biểu diễn mã xoắn hệ thống X(2, 1, 3)
Trang 8
Hình 2 biểu diễn mã xoắn không hệ thống X(2, 1, 2)
Trang 9
III Các phương pháp phân tích hoạt động của mạch mã hoá mã xoắn
Trong phần này chúng ta chỉ hạn chế phân tích hoạt động của mạch mã hóa mã xoắn không hệ thống X(2, 1, 2) hình 2 Có 5 phương pháp phân tích hoạt động của mạch mã hóa mã xoắn là :
a Phương pháp bảng
b Phương pháp đa thức kết nối
c Phương pháp sơ đồ trạng thái
d Phương pháp sơ đồ cây
e Phương pháp sơ đồ lưới
Trang 10a Phương pháp bảng
Hoạt động của mạch mã hóa mã xoắn, nói chung có thể trình bày bằng phương pháp bảng Trước hết chúng ta nhận thấy rằng: các kí hiệu mã ở đầu ra bộ XOR M 1, kí hiệu là u 1, được xác định như sau:
Mức logic u 1 = mức logic a mức logic b mức logic c, khi xét
Khi biết các bit thông tin đầu vào I, chẳng hạn I=1101…, các kí
hiệu mã đầu ra V được xác định bằng bảng sau.
Trang 11Bảng 1 : Kết quả mã hóaThứ
tự nhị p
Đầu vào I
Trạng thái các
ô ghi dịch
Trang 12b Phương pháp đa thức kết nối
được phát sinh nhờ đa thức sinh g(x) tương ứng,
khi đã biết đa thức biểu diễn các bit thông tin đầu vào Các đa thức sinh có dạng chung như sau:
g(x) = g0 + g1x + … + gmx m
Trong đó: - m là bậc của đa thức sinh, bằng số
lượng ô ghi dịch của mạch mã hóa.
của vị trí tương ứng với bộ XOR Ngược lại hệ số
gi = 0.
Trang 13
b Phương pháp đa thức kết nối
Với mạch mã hóa hình 2 chúng ta có:
Đa thức sinh tạo ra đa thức mã u 1 (x) có dạng:
g 1 (x) = 1 + x + x 2 hay biểu diễn dưới dạng hệ số G 1 = 111
Đa thức sinh tạo ra đa thức mã u 2 (x) có dạng:
g 2 (x) = 1 + x 2 hay biểu diễn dưới dạng hệ số G 2 = 101
Khi đó:
u 1 (x) = I(x) g 1 (x)
u 2 (x) = I(x) g 2 (x)
ở đây I(x) là đa thức các bit thông tin đầu vào
Đa thức của tập dấu mã đầu ra được xác định dưới dạng:
Trang 14b Phương pháp đa thức kết nối
Chẳng hạn, chúng ta sử dụng lại các số liệu ở mục trên, tức là
các bit thông tin đầu vào có dạng I = 11011…, đa thức biểu
diễn chúng được xác định:
I(x) = 1 + x + x 3 + x 4 … Các đa thức u 1 (x) và u 2 (x) được xác định như sau:
u 1 (x) = I(x).g 1 (x) = (1 + x + x 3 + x 4 …).(1 + x + x 2 ) = 1 + x + x 3 + x 4 …
+ x + x 2 + x 4 + x 5 … + x 2 + x 3 + x 5 + x 6 … = 1 + 0x + 0x 2 + 0x 3 + 0x 4 …
u 2 (x) = I(x).g 2 (x) = (1 + x + x 3 + x 4 …).(1 + x 2 ) = 1 + x + x 3 + x 4 … +
x 2 + x 3 + x 5 + x 5 … = 1 + 0x + 0x 2 + 0x 3 + 0x 4 …
Ở đây cần chú ý một điều là đa thức biểu diễn các bit thông tin
có bậc đến bao nhiêu thì bậc của các đa thức u 1 (x) và u 2 (x)
cũng chỉ đến bấy nhiêu Trong ví dụ cụ thể ở trên là bậc 4 Kết
quả xoắn hai hệ số cùng bậc tương ứng của các đa thức u 1 (x)
và u 2 (x) được:
V = 11 – 01 – 01 – 00 – 11 …
Rõ ràng kết quả này phù hợp với phương pháp bảng đã xét ở
trên.
Phương pháp đa thức kết nối rất thuận tiện, bởi từ dạng cấu
trúc của thiết bị mã hóa ta có thể xác định được ngay đa thức
sinh.
Trang 15Bảng 2: Các hệ số của đa thức sinh
111 1111 11101 111011 110001
101 1101 10011 10100111 11111001
Trong bảng 11 trình bày các đa thức sinh (ở dạng các hệ số) mà các thiết bị mã hóa mã xoắn thường sử dụng trong thực tế.
Trang 16c Phương pháp sơ đồ trạng thái
Từ các mạch mã hóa mã xoắn, chúng ta nhận thấy rằng nếu
các thanh ghi dịch có m ô, thì số lượng trạng thái N = 2 m Hơn nữa cứ mỗi bit thông tin đi vào thì trạng thái các ô ghi dịch sẽ
thay đổi và đưa ra n kí hiệu mã Có thể biểu diễn mối quan hệ
trạng thái các ô ghi dịch với các kí hiệu mã đầu ra nhờ
phương pháp sơ đồ trạng thái.Chúng ta hãy bắt đầu từ trường hớp đơn giản nhất, vói mạch mã hóa như hình 2 Mạch này có
2 ô ghi dịch, số lượng các trạng thái N = 2 2 = 4 Chúng ta kí
hiệu các trạng thái ấy là A, B, C và D với:
A = 00, ô 1 có trạng thái 0, ô 2 có trạng thái 0
B = 10, ô 1 có trạng thái 1, ô 2 có trạng thái 0
C = 01, ô 1 có trạng thái 0, ô 2 có trạng thái 1
B = 11, ô 1 có trạng thái 1, ô 2 có trạng thái 1
Trang 17c Phương pháp sơ đồ trạng thái
Trong phương pháp này, trạng thái các ô ghi dịch được biểu diễn là các hình tròn bên trong ghi các trạng thái tương ứng Liên hệ giữa các trạng thái được biểu diễn bằng các mũi tên, chiều của mũi tên chỉ theo chiều thay đổi trạng thái Hơn nữa, quy định khi bit thông tin ầu vào là 1, mũi tên được vẽ bằng nét liền và ngược lại, khi bit thông tin ầu vào là 0, mũi tên được vẽ
bằng nét đứt Trên các mũi tên ghi cặp dấu mã đầu ra, gọi là từ
mã nhánh Sơ đồ trạng thái trong trường hợp này được biểu
diễn trên hình 3
Từ sơ đồ trạng thái ở hình 3, nếu chúng ta biết các chuỗi các bit thông tin đầu vào, chẳng hạn I = 11011…, và chọn trạng thái ban đầu của các ô ghi dịch là A = 00 thì xác định được chuỗi các trạng thái như sau A → B → D → C → B → D… Chuỗi kí
hiệu ãm đầu ra tương ứng sẽ là: V = 11 – 01 – 01 – 00 – 11 …
Trang 18Hình 3: Sơ đồ trạng thái của Mã Xoắn X( 2,1,2 )
Trang 19c Phương pháp sơ đồ trạng thái
Nếu chúng ta chọn trạng thái ban đầu của các ô ghi dịch là A = 11 thì xác định được chuỗi các trạng thái như sau D → D → D → C → B → D… Chuỗi kí hiệu
ãm đầu ra tương ứng sẽ là: V = 10 – 10 – 01 – 00 – 01
…
Từ sơ đồ trạng thái, chúng ta thấy rằng cấu trúc đặc trưng của các mã xoắn có tính chất lặp Trạng thái của các ô ghi dịch, kéo theo chuỗi mã V có cấu trúc lặp Chu kì lặp lại ngắn nhất là (m+1), với m là số
lượng ghi dịch, tiếp theo là (m+2) Khi không để ý
đến các trạng thái lặp trung gian (hoặc sự lặp của
các từ mã nhánh trung gian) thì chu kì lặp còn dài
hơn.
Trang 20d Phương pháp sơ đồ cây
Phương pháp sơ đồ trạng thái hoàn toàn có thể xác định được chuỗi các kí hiệu đầu ra khi biết chuỗi bit thông tin đầu vào và trạng thái ban đầu các ô ghi dịch Tuy nhiên, phương
pháp này chưa biểu diễn được chuỗi kí hiệu mã đầu ra như là hàm của thời gian t Phương pháp sơ đồ cây bổ sung thêm tham số thời gian, để xác lập thời gian các nút của cây (cũng
có nghĩa là thời gian xác lập trạng thái các ô ghi dịch) Sơ đồ cây của mã X(2,1,2) được
trình bày trên hình 3 sơ đồ này được vẽ như sau: cây được vẽ từ trái sang phải bắt đầu từ nút gốc, tương ứng với thời điểm t 1 , các nút tiếp theo ứng với thời điểm t 2 , t 3 , t 4 … Từ nút gốc mọc ra 2 nhánh (vì là mã cơ số 2), một nhánh lên trên, một nhánh xuống dưới.
Trang 21d Phương pháp sơ đồ cây
Trang 22Còn số nhánh sau thời điểm có bit vào thứ k là 2 k Như vậy cây mã càng phức tạp - càng nhiều nhánh khi số bit đầu vào tăng lên.
Một đặc điểm khác của cây mã là tối thiểu sau m+1 lần phân tách (m là số
lần ghi dịch) thì cấu trúc của cây lặp lại Mã xoắn X(2,1,2) có m = 2 nên tối thiểu sau 3 lần phân nhánh, cấu trúc cây lăp lại (bắt đầu từ thời điểm t).
Sơ đồ cây không chỉ sử dụng để biểu diễn đặc trưng khi mã hóa mà còn dùng để giải mã.
Trang 23d Phương pháp sơ đồ cây
Còn số nhánh sau thời điểm có bit vào thứ k là 2 k Như vậy cây mã càng phức tạp - càng nhiều nhánh khi số bit đầu vào tăng lên.
Một đặc điểm khác của cây mã là tối thiểu sau m+1 lần phân tách (m là số
lần ghi dịch) thì cấu trúc của cây lặp lại Mã xoắn X(2,1,2) có m = 2 nên tối thiểu sau 3 lần phân nhánh, cấu trúc cây lăp lại (bắt đầu từ thời điểm t).
Sơ đồ cây không chỉ sử dụng để biểu diễn đặc trưng khi mã hóa mà còn dùng để giải mã.
Trang 24Sơ đồ cây của mã xoắn X( 2,1,2 )
Trang 25e Phương pháp sơ đồ lưới
Sơ đồ lưới được xây dựng nhờ sự kết hợp của sơ đò cây và sơ
đồ trạng thái vừa xét ở trên Cũng như đã biết ở trên, các giá trị t
để ghi nhận thời điểm xác lập trạng thái các ô ghi dịch.
Lưới gồm các nút và nhánh Nút biểu diễn trạng thái ô ghi dịch Nhánh lưới được biểu diễn bằng các mũi tên nối các nút của lưới, chiều của mũi tên xác định hướng thay đổi trạng thái ô ghi dịch
Trang 26e Phương pháp sơ đồ lưới
Quy ước:
nhau, được vẽ trên cùng một hàng.
• Các nút biểu diễn các trạng thái khác nhau, nhưng có thể xác lập ở cùng
•Mũi tên vẽ bằng nét liền khi bit thông tin vào là 1, vẽ bằng nét đứt khi bit thông tin vào là 0 Trên các nhánh ghi cặp dấu mã đàu ra tương ứng với sự thay đổi trạng thái gọi
Trang 27e Phương pháp sơ đồ lưới
Sơ đồ của mã xoắn X(2,1,2) được vẽ trên hình 4
Từ sơ đò lưới, khi biết chuỗi các bit thông tin vào và chọn một trạng thái ban đầu của các ô ghi dịch, chúng ta hoàn toàn xác định được chuỗi các
kí hiệu mã đầu ra Chẳng hạn các bit thông tin vào I = 11011…, chọn
trạng thái ban đầu của các ô ghi dịch là A = 00, chúng ta xác định được chuỗi các trạng thái sau: A(t) → B(t) → D(t) → C(t) → B(t) → D(t), tương ứng chúng ta xác định chuỗi kí hiệu mã đầu ra V = 11 – 01 – 01 – 00 – 01
…
Trang 28Hình 4: Sơ đồ của mã xoắn X(2,1,2).
Sơ đồ lưới không chỉ sử dụng để biểu diễn đặc trưng khi
mã hóa mà còn dùng để giải mã.
Trang 29IV Giải mã mã xoắn theo thuật toán Viterbi
Gồm 5 bước chính:
Bước 1: Quá trình bắt đầu tại tầng thứ nhất với trạng thái 00 Từ đây chỉ có hai
đường dẫn Tính khoảng cách Hamming cho mỗi đoạn đường dẫn, với ký hiệu tương ứng
nhận được tại tầng này Giá trị được ghi lại để tích lũy cho bước kế tiếp
Bước 2: Có bốn đường dẫn được xác định dẫn đến tầng kế tiếp, khoảng cách
Hamming của mỗi đoạn đường lúc này sẽ tùy thuộc vào ký hiệu nhận được tương ứng với
tầng này Cách tích lũy khoảng cách hamming của đoạn đường: khoảng cách Hamming =
khoảng cách Hamming + sai khác tại tầng hiện hành Tính cho mỗi đoạn đường
Trang 30IV Giải mã mã xoắn theo thuật toán Viterbi
Bước 3: Có tám đường dẫn đến tầng kế tiếp, hai đường đến một trạng thái Tính
khoảng cách Hamming cho mỗi đoạn: khoảng cách Hamming = khoảng cách Hamming +
sai khác tại tầng hiện hành Một trong hai đường cùng đến một trạng thái sẽ có khoảng
cách Hamming tích lũy nhỏ hơn và ñược chọn đi tiếp Trong trường hợp cả hai có cùng
khoảng cách Hamming, chọn đường bên trên
Bước 4: Lặp lại bước 3 cho tầng kế tiếp cho đến khi kết thúc Cuối cùng còn lại
bốn đường, chọn đường có khoảng cách Hamming nhỏ hơn cả
Bước 5: Giải mã từ tuần tự ký hiệu thành chuỗi bit dữ liệu đã truyền
Trang 31V Ví dụ ứng dụng thuật toán giải mã Viterbi
Trang 32V Ví dụ ứng dụng thuật toán giải mã Viterbi
Trang 40VI Kết Luận
Ứng dụng mã chập: Mã xoắn có vai trò rất quan trọng, thường được dùng để nâng cao chất lượng của hệ thống vô tuyến số, điện thoại di động, thông tin vệ tinh và Bluetooth và được sử dụng rộng rãi trong thực tế
Kỹ thuật mã hóa xoắn: được áp dụng cho các thông điệp rất
dài Giải pháp giải mã nhanh được áp dụng rộng rãi là giải mã Viterbi