BÀI TẬP ðIỀU KIỆN Môn : KỸ THUẬT TRUYỀN SỐ LIỆU TÌM HIỂU PHƯƠNG PHÁP PHÁT HIỆN VÀ SỬA LỖI THEO CONVOLUTIONAL CODING VÀ VITERBI DECODING Mã xoắn hay còn gọi là mã chập là một loại mã s
Trang 1BÀI TẬP ðIỀU KIỆN Môn : KỸ THUẬT TRUYỀN SỐ LIỆU
TÌM HIỂU PHƯƠNG PHÁP PHÁT HIỆN VÀ SỬA LỖI
THEO CONVOLUTIONAL CODING VÀ VITERBI DECODING
Mã 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 m-bit thông tin (chuỗi m-bit) ñược mã hóa thành một symbol n-bit, với m/n 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 dài hạn chế của mã
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
Tại sao gọi là mã chập vì cấu trúc mã hóa có thể biểu diễn dưới dạng phép tính chập (convolution) giữa ña thức sinh mã và chuỗi tín hiệu ñược mã hóa
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) Mã chập ñược sử dụng rộng rãi trong thực tế Bởi mã hóa ñược xem như một tập hợp các bộ lọc số tuyến tính với dãy mã là các ñầu ra của bộ lọc ñược phép xen kẽ Các mã chập là các mã ñầu tiên ñược xây dựng các thuật toán giải mã quyết ñịnh phần mềm hiệu quả
Bộ mã hóa cho mã chập thường ñược coi là một tập các bộ lọc số
Ví dụ: Hình sau chỉ ra một số ví dụ về bộ mã hóa
Bộ mã hóa cho mã chập tốc ñộ R = ½
Trang 2Bộ mã hóa hệ thống R = 2/3
Vào năm 1993, Berrou, Glavieux và Thitimajashima ñã ñưa ra một sơ ñồ mã hóa mới cho các mã chập ñược gọi là mã Turbo (Hình 1) Trong sơ ñồ này dòng thông tin vào ñược mã hóa hai lần với một bộ xáo trộn ñặt giữa hai bộ mã hóa nhằm tạo ra hai dòng dữ liệu ñược mã hóa có thể xem là ñộc lập thống kê với nhau
Hình 1 Bộ mã hóa Turbo
Trong sơ ñồ này các bộ mã hóa thường ñược sử dụng là các bộ mã hóa cho mã chập
có tốc ñộ R = 1/2
Các mã này ñược sử dụng rất hiệu quả trên các kênh pha ñinh Người ta ñã chứng
tỏ rằng hiệu năng của mã Turbo sẽ tăng khi tăng kích thước của bộ xáo trộn Tuy nhiên trong nhiều ứng dụng quan trọng (chẳng hạn khi truyền tiếng nói), kích thước bộ xáo trộn quá lớn không sử dụng ñược do kết quả giải mã bị giữ chậm
Coding / Decoding
Trang 3Mã xoắn trong truyền dẫn bao gồm các kết quả của sự kết hợp của dãy nguồn sử dụng những ñịnh dạng xoắn khác nhau Mã xoắn GSM bao gồm trong việc thêm 4 bit (thiết lập ñể “0”') cho chuỗi 185 bit ñầu tiên và sau ñó áp dụng hai xoắn khác nhau: ña
G X =X +X +X + Kết quả cuối cùng là sự trộn lẫn hai lần chuỗi 189 bit, xem hình sau:
Hình 2: TCH / FS truyền Mode
Sự giải mã mã xoắn có thể ñược thực hiện bằng cách sử dụng một thuật toán Viterbi Một bộ giải mã Viterbi khám phá một cách hợp lý song song dữ liệu người dùng mỗi khi có thể trong trình tự Nó mã hóa và so sánh với mỗi một trình tự nhận ñược và chọn lên các khớp gần nhất: nó là một bộ giải mã khả năng tối ña ðể giảm sự phức tạp (số lượng các dãy dữ liệu có thể tăng gấp ñôi với mỗi bit dữ liệu bổ sung), bộ giải mã công nhận tại mỗi ñiểm có trình tự nhất ñịnh không thể thuộc về ñường dẫn khả năng tối ña và loại bỏ chúng Bộ nhớ mã hóa ñược giới hạn trong những bit K; một bộ giải mã Viterbi trong tình trạng hoạt ñộng ổn ñịnh, chỉ giữ 2K-1 ñường ñi Sự phức tạp của nó tăng theo cấp
số nhân với chiều dài hạn chế K
Tỷ lệ mã xoắn GSM trên mỗi dòng dữ liệu là 378 bit mỗi 20ms, tức là: 18,9KB/s Tuy nhiên, trước khi ñiều chế tín hiệu này, sẽ có 78 bit không bảo vệ Class II ñược thêm vào (xem hình 2) Vì vậy, tỷ lệ bit rate GSM cho mỗi dòng là 456 bit mỗi 20ms tức là 22,8kb/s
* Tổng quát Convolutional Coding
Kỹ thuật mã hóa xoắn chuyển (mã hóa) một chuỗi bit dữ liệu nhị phân thành một dãy các ký hiệu tuần tự qua một phép “chập”, mỗi ký hiệu là một nhóm bit Với mọi trường hợp của chuỗi bit dữ liệu ngẫu nhiên qua phép “chập” tạo ra một số xác ñịnh các tuần tự ký hiệu, gọi là các tuần tự hợp lệ Tuần tự các ký hiệu tương ứng sẽ ñược truyền ñi,
có mối quan hệ với chuỗi dữ liệu gốc Căn cứ vào mối quan hệ này, máy thu sẽ chuyển ngược lại (giải mã) thành dữ liệu ñã truyền Nếu có lỗi xảy ra, một tuần tự ký hiệu hợp lệ gần giống nhất với tuần tự ký hiệu nhận sẽ ñược chọn ñể chuyển ngược thành chuỗi dữ liệu ban ñầu
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
Trang 4*Ví dụ mã hóa
Giả sử chuỗi bit cần mã hóa là: 1 1 1 0 1 1 0 0
Theo sơ ñồ lưới ta có tuần tự là: 11 01 10 01 00 01 01 11
*Ví dụ giải mã
Giả sử máy thu nhận ñược 11 01 11 11 00 01 01 11
1 1 ? ? 1 1 0 0
Các bit bị lỗi, không có ñường dẫn liên tục (không có tuần tự hợp lệ)
Cần xây dựng các ñường liên tục từ các thông tin ở trên ðường dẫn tốt nhất là ñường có khác biệt ít nhất với tuần tự nhận ñược Có bốn ký hiệu có thể và 8 hoạt ñộng chuyển trạng thái tương ứng có thể:
Các phần tử khả dụng ñể thiết lập ñường liên tục
Các ñường liên tục có thể
Thực tế có bốn ñường dẫn ứng viên cho việc chọn Căn cứ vào sự sai lệch ñể chọn
ra một
* Ứng viên 1
Trang 5Tuần tự nhận: 11 01 11 11 00 01 01 11 ðường dẫn: 11 10 11 00 11 01 01 11
Sai lệch : 00 11 00 11 11 00 00 00
Tổng số sai lệch = 6 Data : 10001100
* Ứng viên 2
Tuần tự nhận: 11 01 11 11 00 01 01 11 ðường dẫn: 11 10 00 10 00 01 01 11
Sai lệch : 00 11 11 01 00 00 00 00
Tổng số sai lệch = 5 Data : 10101100
* Ứng viên 3
Tuần tự nhận: 11 01 11 11 00 01 01 11 ðường dẫn: 11 01 01 11 11 01 01 11
Sai lệch : 00 00 10 00 11 00 00 00
Tổng số sai lệch = 3 Data : 11001100
* Ứng viên 4
Tuần tự nhận: 11 01 11 11 00 01 01 11
ðường dẫn: 11 01 10 01 00 01 01 11
Sai lệch : 00 00 01 10 00 00 00 00
Tổng số sai lệch = 2 Data : 11101100
ðường dẫn 4 có sai lệch nhỏ nhất ñược chọn và dữ liệu là 11101100
Giải mã Viterbi
Xác ñịnh tất cả các ñường dẫn, tính ra khoảng cách Hamming giữa chúng với tuần
tự nhận ñược, chọn lấy giá trị nhỏ nhất là công việc khá lớn
ðể khắc phục, lợi dụng ñặc tính của lược ñồ lưới ñể chọn ra một số ñường dẫn tốt nhất cho chọn lựa sau cùng: tại mỗi khoảng, lưới chỉ có 4 trạng thái BA có thể, có nhiều ñường dẫn ñến bốn trạng thái này Mỗi trạng thái có thể dẫn ñến một trong hai trạng thái trong khoảng kế tiếp Ngược lại, một trạng thái cho trước luôn là ñích ñến từ hai trạng thái xác ñịnh trong khoảng thời gian kế trước Nói cách khác, có ñúng hai ñường dẫn ñến mỗi một trong bốn trạng thái Thông thường, một trong hai ñường dẫn sẽ có số sai lệch tích lũy hiện tại nhỏ hơn ñường kia ðường có sai lệch tích lũy hiện hành nhỏ hơn sẽ ñược chọn ñể
Trang 6Thuật toán giải mã Viterbi
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
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
Xét ví dụ sau:
ðường dẫn kết thúc tại trạng thái 11
Data nhận ñược:11 01 11 11 00 01 01 11 ðường dẫn: 11 01 01 11 00 11 01 10 Sai khác : 00 00 10 00 00 10 00 01
Khoảng cách Hamming = 3
Trang 7ðường dẫn kết thúc tại trạng thái 10
Data nhận ñược:11 01 11 11 00 01 01 11 ðường dẫn: 11 01 01 11 00 00 00 11
Sai khác : 00 00 10 00 00 01 01 00
Khoảng cách Hamming = 3
ðường dẫn kết thúc tại trạng thái 01
Data nhận ñược:11 01 11 11 00 01 01 11 ðường dẫn: 11 01 01 11 00 11 01 01
Sai khác : 00 00 10 00 00 10 00 10
Khoảng cách Hamming = 3
ðường dẫn kết thúc tại trạng thái 00
Data nhận ñược: 11 01 11 11 00 01 01 11
ðường dẫn: 11 01 10 01 00 01 01 11
Sai khác : 00 00 01 10 00 00 00 00
Khoảng cách Hamming = 2
Mục ñích của việc sửa lỗi chuyển tiếp (FEC) là nâng cao năng lực của một kênh bằng cách thêm một số thông tin dự phòng ñã ñược thiết kế cẩn thận cho dữ liệu ñược truyền thông qua các kênh Quá trình thêm thông tin dư thừa này ñược gọi là mã hóa kênh
Mã hóa xoắn và mã hóa khối là hai hình thức chính của mã hóa kênh Mã xoắn hoạt ñộng trên dữ liệu nối tiếp, một hoặc một vài bit cùng một lúc Mã khối hoạt ñộng trên những khối dữ liệu tương ñối lớn (thường lên ñến vài trăm byte) khối tin nhắn Có rất nhiều mã xoắn và mã khối hữu ích, và một loạt các thuật toán ñể giải mã các khối thông tin mã hóa nhận ñượcñể phục hồi dữ liệu gốc
Hãy xem xét một vài ví dụ Giả sử rằng chúng ta có một hệ thống, nơi một kênh bit
“1” ñược truyền như là một ñiện áp của-1V, và một kênh bit “0'”ñược truyền như là một ñiện áp của 1 V ðiều này ñược gọi là tín hiệu lưỡng cực không trở về-to-zero (lưỡng cực NRZ) Nó cũng ñược gọi là tín hiệu nhị phân "ñối cực" (có nghĩa là các trạng thái tín hiệu thì ñối nghịch chính xác với nhau) Tiếp nhận bao gồm một so sánh rằng quyết ñịnh bit nhận ñược là một kênh '1 'nếu ñiện áp của nó sẽ thấp hơn 0V, và một '0' nếu ñiện áp của
nó lớn hơn hoặc bằng 0V Một muốn mẫu ñầu ra của comparator ở giữa mỗi khoảng bit dữ liệu Hãy xem ví dụ cách hệ thống của chúng tôi thực hiện, ñầu tiên, khi Eb/N0 là rất cao,
và sau ñó khi Eb/N0 là thấp hơn
Mã hóa xoắn với giải mã Viterbi là một kỹ thuật FEC mà ñặc biệt phù hợp với một kênh, trong ñó tín hiệu truyền chủ yếu là bị hỏng bởi tiếng ồn phụ gaussian trắng (AWGN) Bạn có thể nghĩ AWGN như tiếng ồn phân phối ñiện áp mà qua thời gian có ñặc ñiểm mà
Trang 8phối, tức là một ñường cong chuông ðiều này ñã phân phối ñiện áp và sai số không có nghĩa là một tiêu chuẩn mà là một hàm của tín hiệu-nhiễu tỷ lệ-(SNR) của tín hiệu nhận ñược Giả sử thời ñiểm này cho rằng mức ñộ tín hiệu nhận ñược là cố ñịnh Sau ñó, nếu SNR là cao, ñộ lệch chuẩn của tiếng ồn là nhỏ, và ngược lại Trong truyền thông kỹ thuật
số, SNR thường ñược ño bằng các ñiều khoản của Eb/N0, ñó là viết tắt của năng lượng cho mỗi bit ñược chia cho một mặt mật ñộ tiếng ồn
Những con số sau ñây cho thấy các kết quả của một mô phỏng kênh, nơi một triệu (1 x 10 6) bit kênh ñược truyền tải qua một kênh AWGN với một E b / N 0 mức 20 dB (tức
là các tín hiệu ñiện thế là mười lần tiếng ồn rms ñiện áp ) Trong mô phỏng, một chút kênh '1 'ñược truyền ở một mức ñộ-1V, và một chút kênh '0' ñược truyền ở một mức ñộ 1 V Các trục x của con số này tương ứng với ñiện áp tín hiệu nhận ñược, và trục y ñại diện cho
số lần mỗi cấp ñiện áp ñã ñược nhận:
Tiếp nhận ñơn giản của chúng tôi phát hiện một bit kênh nhận như là '1 'nếu ñiện áp của nó thấp hơn 0V, và như là '0' nếu ñiện áp của nó lớn hơn hoặc bằng 0V Như một bộ tiếp nhận sẽ có ít khó khăn ñúng như nhận ñược một tín hiệu miêu tả trong hình ở trên Rất
ít (nếu có) kênh tiếp nhận chút sai sót sẽ xảy ra Trong ví dụ này mô phỏng với E b / N 0 ñặt ở 20 dB, một truyền '0 'không bao giờ ñược nhận như là một '1', và một truyền '1 'không bao giờ ñược nhận như là một '0'
Hình tiếp theo cho thấy các kết quả của một mô phỏng kênh tương tự như khi bit 1
x 10 6 kênh ñược truyền tải qua một kênh AWGN nơi mức ñộ E b / N 0 ñã giảm ñến 6 dB (tức là các tín hiệu ñiện thế là hai lần tiếng ồn rms ñiện thế) :
Trang 9Bây giờ quan sát bên tay mặt của ñường cong màu ñỏ như thế nào trong hình ở trên
ñi qua 0V, và làm thế nào bên trái bên của các ñường cong màu xanh cũng vượt qua 0V Các ñiểm trên ñường cong màu ñỏ ñang ở trên 0V ðại diện cho các sự kiện mà một chút kênh ñã ñược truyền ñi như là một trong (-1V) ñã ñược nhận như là một số không Các ñiểm trên ñường cong màu xanh ñược dưới ñây 0V ñại diện cho các sự kiện mà một chút kênh ñã ñược truyền ñi như một số không (1 V) ñã ñược nhận như là một Rõ ràng, các sự kiện này tương ứng với các kênh tiếp nhận chút sai sót trong tiếp nhận ñơn giản của chúng tôi Trong ví dụ này mô phỏng với E b / N 0 ñặt tại 6 dB, một truyền '0 'ñã ñược nhận như
là một '1' 1.147 lần, và một truyền '1 ' ñã ñược nhận như là một '0 '1.207 lần, tương ứng với tỷ lệ lỗi bit (BER) của khoảng 0,235% ðiều ñó không tốt như vậy, ñặc biệt là nếu bạn ñang cố gắng ñể truyền tải dữ liệu nén cao, như truyền hình kỹ thuật số Tôi sẽ cho bạn thấy rằng bằng cách sử dụng mã hóa xoắn với Viterbi giải mã, bạn có thể ñạt ñược một BER của hơn 1 x 10 -7 tại cùng một E b / N 0, 6 dB
Mã xoắn thường ñược mô tả bằng hai tham số: tỷ lệ mã và ñộ dài hạn chế Tỷ lệ
mã, k / n, ñược thể hiện như là một tỷ lệ số bit vào bộ mã hóa xoắn (k) với số lượng ñầu ra
ký hiệu kênh của bộ mã hóa xoắn (n) trong một chu kỳ mã hóa nhất ñịnh Các thông số chiều dài hạn chế, K, là bắt chiều dài "" của bộ mã hóa xoắn, tức là có bao nhiêu giai ñoạn k-bit có sẵn ñể nuôi các tổ hợp logic mà tạo ra những biểu tượng có liên quan chặt chẽ ñến
K là m tham số, mà chỉ ra bao nhiêu chu kỳ mã hóa một bit ñầu vào ñược giữ lại và ñược
sử dụng ñể mã hoá sau khi lần ñầu tiên xuất hiện ở ñầu vào của bộ mã hóa xoắn Tham số
m có thể ñược dùng như chiều dài bộ nhớ của các bộ mã hóa
Giải mã Viterbi ñược phát triển bởi Andrew J Viterbi, một người sáng lập của Tổng công ty Qualcomm Từ ñó, các nhà nghiên cứu khác ñã mở rộng về công việc của mình bằng cách tìm các mã xoắn tốt, khám phá các giới hạn thực hiện kỹ thuật này, và thay ñổi các thông số thiết kế bộ giải mã ñể tối ưu hóa việc thực hiện các kỹ thuật trong phần cứng và phần mềm Thuật toán Viterbi giải mã cũng ñược sử dụng trong giải mã trellis-coded ñiều chế, phát minh bởi Gottfried Ungerboeck năm 1982 ðây là phương pháp ñược sử dụng trong ñiện thoại-modem dòng ñể siết chặt tỷ lệ cao của các bit mỗi thứ hai ñể Hertz trên 3 kHz-băng thông tương tự ñường dây ñiện thoại
Trang 10Giải mã Viterbi là một trong hai loại giải mã ựược sử dụng với các thuật toán mã hóa xoắn-kiểu khác là trình tự giải mã tuần tự giải mã Có lợi thế mà nó có thể thực hiện rất tốt với khó khăn lâu dài mã xoắn, nhưng nó có một biến giải mã thời gian
Giải mã Viterbi có lợi thế mà nó có một thời gian giải mã cố ựịnh đó là rất thắch hợp ựể thực hiện bộ giải mã phần cứng Nhưng yêu cầu tắnh toán của nó phát triển theo cấp số nhân như là một chức năng của chiều dài hạn chế, do ựó nó thường là hạn chế trong thực hành ựể hạn chế ựộ dài của K = 9 hoặc ắt hơn Stanford Telecom sản xuất một K = 9 giải mã Viterbi hoạt ựộng ở mức tốc ựộ lên ựến 96 kbps, và một K = 7 bộ giải mã Viterbi rằng hoạt ựộng lên ựến 45 Mbps Những kỹ thuật Wireless cao cấp cung cấp K = 9 Viterbi decoder rằng hoạt ựộng ở mức giá lên ựến 2 Mbps NTT ựã công bố một bộ giải mã Viterbi rằng hoạt ựộng ở 60 Mbps, nhưng tôi không biết thương mại sẵn có của nó định luật Moore ựược áp dụng ựể giải mã Viterbi cũng như vi xử lý, vì vậy hãy xem xét các mức giá nói trên như là một ảnh chụp của nhà nước-of-the -nghệ thuật thực hiện vào ựầu năm 1999
Trong nhiều năm qua, xoắn với mã hóa giải mã Viterbi ựã ựược các kỹ thuật FEC chủ yếu ựược sử dụng trong giao tiếp không gian, ựặc biệt là trong các mạng truyền thông
vệ tinh ựịa tĩnh, như là VSAT (thiết bị ựầu cuối khẩu ựộ rất nhỏ) các mạng Các biến thể phổ biến nhất ựược sử dụng trong các mạng VSAT là tỷ lệ 1/ 2 mã hóa xoắn bằng cách sử dụng một mã với chiều dài hạn chế K = 7 Với mã này, bạn có thể truyền pha nhị phân hoặc chia bốn ựược ca-keyed (BPSK hay QPSK) tắn hiệu với ắt nhất 5 dB ắt năng lượng hơn bạn muốn mà không cần nó đó là một sự giảm trong Watts của hơn một nhân tố của ba! điều này là rất hữu ắch trong việc giảm truyền và / hoặc ăng ten hoặc cho phép dữ liệu chi phắ tăng tỷ giá trao truyền quyền năng tương tự và kắch thước ăng ten
Nhưng có một sự cân bằng, tỷ lệ dữ liệu cùng với tỷ lệ 1/2 xoắn mã mất gấp ựôi băng thông của tắn hiệu tương tự mà không có nó, cho rằng kỹ thuật ựiều chế là như nhau
đó là bởi vì với tỷ lệ 1/2 mã hóa xoắn, bạn có biểu tượng hai kênh truyền dữ liệu cho mỗi bit Tuy nhiên, nếu bạn nghĩ rằng những sự cân bằng như là 5dB tiết kiệm ựiện năng cho một sự mở rộng băng thông 3dB, bạn có thể nhìn thấy bạn ựi ra phắa trước Hãy nhớ rằng: nếu các kỹ thuật ựiều chế giữ nguyên, các yếu tố mở rộng băng thông của một mã xoắn ựơn giản chỉ là n / k
Nhiều kênh phát thanh là kênh AWGN, nhưng nhiều người, ựặc biệt là các kênh radio trên ựất liền cũng có khiếm khác, như multipath fading chọn lọc, can thiệp, và tiếng
ồn không khắ (sét) Truyền và nhận tắn hiệu có thể thêm spurious và tiếng ồn giai ựoạn ựến tắn hiệu mong muốn là tốt Mặc dù xoắn với mã hóa giải mã Viterbi có thể có ắch trong việc ựương ựầu với những vấn ựề khác, nó có thể không là kỹ thuật tốt nhất