Thuật toán Viterbi quyết định cứng

Một phần của tài liệu Thuật toán viterbi tiểu luận môn mạng thông tin quang thế hệ mới (Trang 28 - 33)

8. Giải mã quyết định cứng và giải mã quyết định mềm

8.1Thuật toán Viterbi quyết định cứng

Đối với mã tích chập, chuỗi ngõ vào được xoắn thành chuỗi mã hóa c. Chuỗi c được phát xuyên qua kênh nhiễu và chuỗi nhận được là chuỗi r. Thuật toán Viterbi là thuật ước đoán khả năng xảy ra lớn nhất (Maximum Likelihood-ML) cho ra chuỗi mã hóa được ước đoán y từ chuỗi nhận được r để cho chuỗi này đạt được xác xuất p(r/y) lớn nhất. Chuỗi y phải là một trong những chuỗi mã hóa cho phép và không thể là bất kì chuỗi tùy ý nào.

Hình 21 trình bày cấu trúc hệ thống

Hình 21. Hệ thống mã tích chập.

Đối với một mã tích chập có tốc độ r, các ngõ vào của bộ mã hóa k bit song song và các ngõ ra n bit song song tại mỗi bước. Chuỗi ngõ ra là

Và chuỗi được mã hóa là

Trong đó L là chiều dài của chuỗi tin ngõ vào và m là chiều dài lớn nhất của các thanh ghi dịch. Yêu cầu phải thêm vào đuôi của chuỗi mã hóa với m bit zero để cho bộ mã hóa tích chập trở về trạng thái tất cả zero. Yêu cầu bộ mã hóa phải bắt đầu và kết thúc tại trạng thái tất cả zero. Các chỉ số bên dưới là chỉ số thời gian và các chỉ số bên trên là bit chỉ ra khối k bit ngõ vào hay n bit ngõ ra riêng lẻ. Các chuỗi được ước đoán y

và chuỗi nhận được r có thể được mô tả tương tự.

Đối với giải mã ML, thuật toán Viterbi chọn y để P(r/y) lớn nhất. Giả thiết kênh là không nhớ, và vì vậy quá trình nhiễu ảnh hưởng lên bit nhận được độc lập với= quá

trình nhiễu ảnh hưởng lên tất cả các bit khác. Từ lý thuyết xác suất (xác suất liên kết), xác suất của tập hợp các sự kiện độc lập tương đương với tính xác suất của các sự kiện riêng lẻ. Vì vậy,

Biểu thức này được gọi là hàm có khả năng xảy ra của y với r nhận được. Việc ước đoán P(r/y) lớn nhất cũng là logP(r/y) lớn nhất bởi vì các hàm logarit là các hàm tăng đều. Vì vậy, một hàm log của khả năng xảy ra có thể được định nghĩa log log(/)

Vì thao tác trên các tổng dễ dàng hơn thao tác trên các hàm log nên một metric bit được định nghĩa như sau:

Trong đó a và b được chọn trước để cho metric bit là một số nguyên dương nhỏ nhất. Các giá trị a và b được định nghĩa cho kênh hệ thống nhị phân (BSC) hay giải mã quyết định cứng. Hình 22 trình bày một BSC

Hình 22. Kiểu kênh hệ thống nhị phân, trong đó p là xác suất chéo

Đối với BSC a và b có thể được chọn theo 2 cách phân biệt. Theo cách thông thường a và b được chọn như sau:

Kết quả metric bit là

Từ kiểu BSC, rõ ràng chỉ lấy giá trị p và 1-p. Bảng 8 trình bày kết quả metric bit Bảng 8. Các giá trị metric bit thông thường

Metric bit này biểu diễn ước lượng của các bit giải mã và các bit nhận. Ví dụ nếu bit được giải mã yi(j) = 0 và bit nhận được ri(j) = 0 thì ước lượng M(yi(j) | ri(j)) = 0. Tuy nhiên, nếu bit được giải mã yi(j) = 0 và bit nhận được ri(j) = 1 thì ước lượng M(yi(j) | ri(j)) = 1. Như vậy điều này liên quan đến khoảng cách Hamming và được biết như là metric của khoảng cách Hamming. Vì vậy, thuật toán Viterbi chọn chuỗi mã y qua trellis có ước lượng/khoảng cách Hamming nhỏ nhất liên quan đến chuỗi nhận được r.

Cách khác a và b có thể được chọn như sau:

Đối với trường hợp này thuật toán Viterbi chọn chuỗi mã hóa y qua trellis có ước lượng/khoảng cách Hamming lớn nhất đối với chuỗi nhận được r. Hơn nữa, đối với một kênh tùy ý(không nhất thiết là BSC), các giá trị a và b được tìm theo nguyên tắc thử- và – sai để lấy metric bit có thể chấp nhận được.

Từ metric bit, metric đường được định nghĩa là:

Và chỉ ra tổng ước lượng của việc ước đoán chuỗi bit nhận được r với chuỗi bit được mã hóa y trong sơ dồ trellis. Hơn nữa metric nhánh thứ K được định nghĩa như sau:

Và metric đường thành phần được định nghĩa như sau:

Do đó

Metric nhánh thứ k chỉ ra việc ước lượng chọn một nhánh từ biểu đồ trellis. Metric đường thứ k chỉ ra việc ước lượng chọn một chuỗi bit được mã hóa từng phần y tới chỉ số thời gian k.

Thuật toán Viterbi sử dụng biểu đồ trellis để tính các metric đường. Mỗi trạng thái (nút) trong biểu đồ trellis được gán một giá trị gọi là metric đường thành phần. Metric đường từng phần được xác định từ trạng thái s = 0 tại thời điểm t = 0 đến một trạng thái đặc biệt s = k tại thời điểm t >= 0. Tại mỗi trạng thái metric đường từng phần tốt nhất được chọn từ các đường kết thúc tại trạng thái đó. Metric đường từng phần tốt

nhất, có thể là metric lớn nhất hay nhỏ nhất phụ thuộc vào a và b được chọn theo cách thông thường hay chọn lựa khác. Metric được chọn diễn tả bằng đường tồn tại (survivor) và các metric còn lại được diễn tả bằng đường không phù hợp (nonsurvivor). Các đường tồn tại được lưu lại trong khi các đường không phù hợp bị loại bỏ trong sơ đồ trellis. Thuật toán Viterbi chọn đường tồn tại đơn giản đi từ cuối của tiến trình giống như đường ML. Sau đó truy ngược theo đường ML trong biểu đồ trellis sẽ tìm được chuỗi giải mã ML.

Thuật toán Viterbi quyết định cứng có thể được thực hiện như sau:

Sk,t là trạng thái trong biểu đồ trellis tương ứng với trạng thái Sk tại thời điểm t. Mỗi trạng thái trong Trellis được gán một giá trị là V(Sk,t).

1. (a) khởi tạo t = 0

(b) khởi tạo V(S0,0) = 0 và tất cả các V khác V(Sk,t) = + (adsbygoogle = window.adsbygoogle || []).push({});

2. (a) lấy t = t+1

(b) Tính các metric đường từng phần cho tất cả đường đi đến trạng thái Sk tại thời điểm t.

Đầu tiên, tìm metric nhánh thứ t

Metric này được tính từ khoảng cách Hamming

Thứ hai, tính metric đường thành phần thứ t

Metric này được tính từ V(Sk,t-1) + M(rt |yt)

3. a) Lấy V(Sk,t) đến metric đường từng phần tốt nhất là trạng thái Sk tại thời điểm t. Thông thường, metric đường từng phần tốt nhất là metric đường từng phần có giá trị nhỏ nhất

(b) Nếu có một nút TIE nằm trên metric đường từng phần tốt nhất, sau đó bất kì một metric đường từng phần có thể được chọn.

4. Lưu trữ metric đường từng phần và các và các đường trạng thái cùng với bit tồn tại liên kết của nó.

5. Nếu t < L+m-1, trở về bước 2. Kết quả của thuật toán Viterbi là một đường Trellis duy nhất tương ứng với từ mã ML.

Ví dụ: Biểu đồ chuyển tiếp trạng thái trình bày các bit tin và các bit mã hóa được ước đoán theo các nhánh (cần thiết cho quá trình giải mã ). Việc giải mã chọn đường ML thông qua trellis như được trình bày trong hình 23. Metric đường từng phần (được lưu trữ) được chọn cho ví dụ này là khoảng cách Hamming lớn nhất và được trình bày trong hình cho mỗi nút. Các metric đường từng phần đậm tương ứng với ML. Các đường tồn tại được biểu diễn bởi các đường liền nét đậm và các đường cạnh tranh được biểu diễn bởi các đường nét đứt.

Hình 23. Biểu diễn Viterbi theo ví dụ

Một phần của tài liệu Thuật toán viterbi tiểu luận môn mạng thông tin quang thế hệ mới (Trang 28 - 33)