1. Trang chủ
  2. » Luận Văn - Báo Cáo

THUẬT TOÁN VITERBI

41 3,1K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề THUẬT TOÁN VITERBI
Tác giả Lấ Hoài Việt, LƯƠNG HỒNG Quí, ĐINH VĂN HƯỜNG, ĐỖ HỮU TRỌNG, NGUYỄN HỮU MẠNH
Người hướng dẫn TS. BÙI VIỆT KHễI
Trường học TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Chuyên ngành MễN MẠNG THễNG TIN QUANG THẾ HỆ MỚI
Thể loại TIỂU LUẬN
Năm xuất bản 2012
Thành phố Hà Nội
Định dạng
Số trang 41
Dung lượng 1,57 MB

Nội dung

Mã hóa chập và thuật toán giải mã Viterbi được sử dụng trong khoảng hơn một tỉ điện thoại, có thể là lớn nhất trong các loại thuật toán được ứng dụng.. Mã hóa chập không kết nối các khối

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐÀO TẠO SAU ĐẠI HỌC

TIỂU LUẬN MÔN MẠNG THÔNG TIN QUANG THẾ HỆ MỚI

ĐỖ HỮU TRỌNG NGUYỄN HỮU MẠNH Lớp : BK01-KTTT1B

Trang 2

THUẬT TOÁN VITERBI

1 Khái niệm mã chập

Mã chập là một kỹ thuật mã hóa sửa sai Mã chập thuộc họ mã lưới (mã hóatheo Trellis) và được xây dựng dựa trên một đa thức sinh hoặc một sơ đồ chuyển trạngthá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ôngqua 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ínhchập giữa đa thức sinh mã và chuỗi tín hiệu được mã hóa

Mã hóa chập và thuật toán giải mã Viterbi được sử dụng trong khoảng hơn một

tỉ điện thoại, có thể là lớn nhất trong các loại thuật toán được ứng dụng Tuy nhiên,hiện tại thì thuật toán xử lý viterbi được ứng dụng nhiều nhất trong các thiết bị âmthanh và hình ảnh kỹ thuật số Ngày nay, chúng còn được sử dụng trong các thiết bịbluetooth

Mục đích của mã hóa kênh truyền là nhằm tăng dung lượng kênh truyền, bằngcách cộng thêm vào tín hiệu những dữ liệu dư thừa được thiết kế một cách cẩn thậntrước khi truyền lên kênh truyền Mã hóa chập và mã hóa khối là 2 dạng chính của mãhóa kênh truyền Mã hóa chập thì dựa trên dữ liệu nối tiếp, 2 hoặc một vài bit đượctruyền một lúc, còn mã hóa khối thì dựa trên một khối dữ liệu lớn tương quan (đặctrưng là khoảng vài trăm bytes) Ví dụ, mã Redsolomon là một mã hóa khối

Sự khác nhau cơ bản giữa mã hóa khối và mã hóa chập là mã hóa khối là mãhóa không nhớ Cho một chuỗi dữ liệu K bit, thì ngõ ra của bộ mã hóa khối là một khối

dữ liệu n bit duy nhất Mã hóa chập không kết nối các khối bit riêng vào trong mộtkhối từ mã, thay vào đó nó sẽ chấp nhận một chuỗi bit liên tục và taọ thành một chuỗingõ ra Hiệu quả hay tốc độ dữ liệu của mã hóa chập được đánh giá bằng tỉ lệ của số bitngõ vào k, và số bit ngõ ra n Trong mã hóa chập là có một vài bộ nhớ dùng để ghi nhớdòng bit vào Thông tin này được sử dụng để mã hóa các bit tiếp theo

2 Phân tích mã hóa dùng mã chập

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 trongthự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à

Trang 3

các đầu ra của bộ lọc được ghép xen kẽ Các mã chập là các mã đầu tiên được xâydựng các thuật toán giải mã quyết định mềm hiệu quả.

Mã khối từ các khối k dấu (hay ký hiệu) tạo ra các khối n dấu Với các mã chập(thường được xem là các mã dòng), bộ mã hóa hoạt động trên dòng liên tục các bit vàokhông được phân thành các khối tin rời rạc Tuy nhiên tốc độ mã được hiểu là cứ có kngõ vào ở mỗi bước thời gian sẽ tạo ra n ngõ ra Các phép tính số học sử dụng tronghình thức mã hóa này có thể được thực hiệntrên một trường tùy ý nhưng thông thườngvẫn là trên GF(2)

Ta biểu thị các dãy và các hàm truyền đạt như các chuỗi lũy thừa của biến x(đôikhi còn dùng ký hiệu D thay cho x) Dãy {…,m-2, m-1, m0, m1, m2, …} (với các phần

tử mi thuộc trường F) được xem như một chuỗi Laurent:

Tập tất cả các chuỗi Laurent trên F là một trường, ta ký hiệu trường này làF[[X]] như vậy

Đối với dòng nhiều bit vào ta dùng ký hiệu m(1)(x) biểu thị dòng đầu vào đầutiên, m(2)(x) biểu thị dòng đầu vào thứ hai Tập các dòng vào xem như một vectơ:

m(x)=[ m(1)(x) m(2)(x)]2

Bộ mã hóa cho mã chập thường được coi là một tập các bộ lọc số Hình 1 chỉ ra một ví

dụ về một bộ mã hóa

Hình 1 Bộ mã hóa cho mã chập tốc độ (các ô D biểu thị các ô nhớ một bít – các trigger D)

Dòng vào mk đi qua hai bộ lọc dùng chung các phần tử nhớ tạo ra hai dòng ra

Trang 4

Hai dòng ra này được đưa ra xen kẽ để tạo ra dòng được mã hóa Ck Như vậy

cứ mỗi bít vào lại có hai bít mã hóa được đưa ra, kết quả là ta có một mã có tốc độR=1/2

Thông thường ta coi trạng thái ban đầu của các phần tử nhớ là 0 Như vậy, vớidòng vào m = {1, 1, 0, 0, 1, 0, 1} các đầu ra sẽ là:

Dòng vào m = {1, 1, 0, 0, 1, 0, 1} có thể biểu thị như sau:

Trang 5

Vì có “1” ở cột đầu tiên nên dòng vào sẽ xuất hiện trực tiếp ở đầu ra đan xen,bởi vậy đây là một mã chập hệ thống Bộ mã hóa cho mã này được mô tả ở hình 2:

Hình 2: Bộ mã hóa hệ thống với R= ½

Với dòng vào: m (x) = 1+ x + x2 + x3+ x4 + x8 các đầu ra C(1)k và C(2)k có dạng:

Một bộ mã hóa chỉ có các hàng đa thức trong ma trận truyền được gọi là bộmãhóa có đáp ứng xung hữu hạn Một bộ mã hóa có các hàm hữu tỷ trong ma trậntruyềngọi là bộ mã hóa có đáp ứng xung vô hạn

Với mã có tốc độ k/n với k > 1 dãy tin tức đầu vào (ta coi như được tách ra từmột dãy tin tức thành k dòng), ta có:

m(x) = [m(1)( x), m(2)(x),…,m(k)(x)]

Dãy ra được biểu thị như sau:

C(X) = [C(1)(x), C(2)(x),…,C(n)(x)] = m(x)G(x)

Trang 6

Ma trận truyền G(x) được gọi là hệ thống nếu có thể xác định được một ma trậnđơn vị trong các phần tử của G(x) (chẳng hạn nếu bằng các phép hoán vị hàng và/hoặccột của G(x) có thể thu được một ma trận đơn vị).

Từ các ví dụ trên ta có định nghĩa sau cho mã chập

Định nghĩa: Mã chập tốc độ R = k/n trên trường các chuỗi Laurent hữu tỷ

F[[X]] trường F là ảnh của một ánh xạ tuyến tính đơn ánh của các chuỗi Laurent kchiều m(x)k vào các chuỗi Laurent C(x) n

3 Cấu trúc mã chập

Mã chập được tạo ra bằng cách cho chuỗi thông tin truyền qua hệ thống cácthanh ghi dịch tuyến tính có số trạng thái hữu hạn Cho số lượng thanh ghi dịch là m(cũng ký hiệu là N), bộ mã có k bit ngõ vào và đầu ra bộ mã chập có n bit ngõ ra (nhàm đại số tuyến tính hoặc n ngõ ra cộng modulo) Tốc độ mã là R = k/n, số ô nhớ của

bộ ghi dịch là m×k và tham số L gọi là chiều dài ràng buộc (Constraint length) của mãchập (với L=k(m-1))

Các thông số k,n có phạm vi giới hạn trong khoảng giá trị từ 1 đến 8, thông số

m trong khoảng từ 2 đến 10, và tốc độ mã R từ 1/8 đến 7/8 ngoại trừ các bộ mã hóađược sử dụng trong viễn thông vũ trụ có thể có tốc độ 1/100 hoặc thậm chí cao hơn

Trong một số tài liệu, khi nói đến mã chập, người ta còn đặc trưng cho bộ mãhóa chập bằng chiều dài ràng buộc K và tốc độ mã R Tốc độ mã, R=k/n, được hiểu là

tỉ số giữa số bit ngõ vào và số ký hiệu ngõ ra của bộ mã hóa Thông số chiều dài ràngbuộc, K, cho biết “chiều dài” của bộ mã hóa mã chập, ví dụ, có bao nhiêu trạng thái k-bit có thể đưa đến mạch logic tổ hợp để tạo ra ký hiệu ngõ ra Trong nội dung đề tàinày, chúng tôi sử dụng bộ mã với bộ dữ liệu bao gồm chiều dài ràng buộc K và tốc độ

bộ mã R như đã đề cập ở trên

Khi thực hiện với mã chập trong các ứng dụng thông thường, người ta thườngchỉ chọn số thanh ghi giới hạn, mỗi thanh ghi chỉ có 1 ô nhớ để đơn giản cho việc thiết

kế mà vẫn đảm bảo tính năng mã hóa tốt Tương ứng với mỗi tốc độ mã hóa (các bộ

mã đơn giản), người ta cũng đã thử nghiệm và chọn ra chỉ một số đa thức sinh cho hiệuquả mã hóa cao để sử dụng

Giả thiết, bộ mã chập làm việc với các chữ số nhị phân, thì tại mỗi lần dịch sẽ

có k bit thông tin đầu vào được dịch vào thanh ghi dịch thứ nhất và tương ứng có k bitthông tin trong thanh ghi dịch cuối cùng được đẩy ra ngoài mà không tham gia vào quátrình tạo chuỗi bit đầu ra Đầu ra nhận được chuỗi n bit mã từ n bộ cộng môđun-2 (xemhình 2.5) Như vậy, giá trị chuỗi đầu ra kênh không chỉ phụ thuộc vào k bit thông tin

Trang 7

đầu vào hiện tại mà còn phụ thuộc vào (m-1)k bit trước đó, và được gọi là mã chập(n,k,m).

Chuỗi thông tin

Đầu vào k bit

Hình 3 Sơ đồ tổng quát bộ mã chập

Giả sử u là véctơ đầu vào, x là véctơ tương ứng được mã hoá, bây giờ chúng ta

mô tả cách tạo ra x từ u Để mô tả bộ mã hoá chúng ta phải biết sự kết nối giữa thanhghi đầu vào vào đầu ra hình 2.5 Cách tiếp cận này có thể giúp chúng ta chỉ ra sự tương

tự và khác nhau cũng như là với mã khối Điều này có thể dẫn tới những ký hiệu phứctạp và nhằm nhấn mạnh cấu trúc đại số của mã chập Điều đó làm giảm đi tính quantâm cho mục đích giải mã của chúng ta Do vậy, chúng ta chỉ phác hoạ tiếp cận nàymột cách sơ lược Sau đó, mô tả mã hoá sẽ được đưa ra với những quan điểm khác

Để mô tả bộ mã hoá hình 2.5 chúng ta sử dụng N ma trận bổ sung G1,G2…,GNbao gồm k hàng và n cột Ma trận Gi mô tả sự kết nối giữa đoạn thứ i của k ô nhớ trongthanh ghi ngõ vào với n ô của thanh ghi ngõ ra N ngõ vào của hàng đầu tiên của Gi mô

tả kết nối của ô đầu tiên của đoạn thanh ghi đầu vào thứ i với n ô của thanh ghi ngõ ra.Kết quả là “1” trong Gi nghĩa là có kết nối, là “0” nghĩa là không kết nối Do đó chúng

ta có thể định nghĩa ma trận sinh của mã chập:

Và tất cả các các ngõ vào khác trong ma trận bằng 0 Do đó nếu ngõ vào làvéctơ u, tương ứng véctơ mã hoá là:

Trang 8

Bộ mã chập là hệ thống nếu trong mỗi đoạn của n chữ số đuợc tạo, k số đầu làmẫu của các chữ số đầu vào tương ứng Nó có thể xác định rằng điều kiện này tươngđương có các ma trận k×n theo sau:

Chúng ta xét một vài ví dụ minh hoạ sau đây:

Ví dụ : Xét mã (3,2,2) Bộ mã hoá được chỉ trong hình 2.6 Bây giờ mã được định

nghĩa thông qua 2 ma trận:

Bộ mã hoá là hệ thống, ma trận sinh được tạo ra:

Chuỗi thông tin u = ( 11011011…) được mã hóa thành chuỗi mã x =(111010100110…)

Trang 9

Hình 4.Bộ mã chập (3,2,2)Một cách tương tự ta cũng có thể biểu diễn ma trận sinh G = (G1,G2,…,GN).Như vậy ý nghĩa của ma trận sinh là nó chỉ ra phải sử dụng các hàm tương ứng nào đểtạo ra véc tơ dài n mỗi phần tử có một bộ cộng môđun-2, trên mỗi véc tơ có N×k tham

số biểu diễn có hay không các kết nối từ các trạng thái của bộ ghi dịch tới bộ cộngmôđun-2 đó Xét véc tơ thứ i (gi, n ≥ i ≥ 1), nếu tham số thứ j của gi (L×k ≥ j ≥1) cógiá trị “1” thì đầu ra thứ j tương ứng trong bộ ghi dịch được kết nối tới bộ cộng môđun-

2 thứ i và nếu có giá trị “0” thì đầu ra thứ j tương ứng trong bộ ghi dịch không được kếtnối tới bộ cộng môđun-2 thứ i

4 Biểu diễn mã chập

Có ba phương pháp để biểu diễn mã chập đó là: sơ đồ lưới, sơ đồ trạng thái, và

sơ đồ hình cây Để làm rõ phương pháp này ta tập trung phân tích dựa trên ví dụ hình 1với bộ mã (2,1,3), đa thức sinh (7,5)

Trang 10

thứ hai là chuỗi “10” Với cách mã hoá như vậy, ta có thể biểu diễn mã chập theo sơ đồ

có dạng hình cây (xem hình 5).Với hướng lên là hướng của bit 0 đi vào bộ mã, nhánh

đi xuống biểu hiện cho bit 1 được dịch vào Từ sơ đồ hình cây ta có thể thực hiện mãhoá bằng cách dựa vào các bit đầu vào và thực hiện lần theo các nhánh của cây, ta sẽnhận được tuyến mã, từ đó ta nhận được dãy các chuỗi đầu ra

Hình 5 Sơ đồ hình cây của bộ mã (2,1,3)

*Sơ đồ hình lưới:

Do đặc tính của bộ mã chập, cấu trúc vòng lặp được thực hiện như sau: chuỗi nbit đầu ra phụ thuộc vào chuỗi k bit đầu vào hiện hành và (N-1) chuỗi đầu vào trước đóhay (N-1) × k bit đầu vào trước đó Từ ví dụ hình 1 ta có chuỗi 2 bit đầu ra phụ thuộcvào 1 bit đầu vào là “1” hoặc “0” và 4 trạng thái có thể có của hai thanh ghi dịch, là

“00”; “01”; “10”; “11” Từ sơ đồ hình cây trên, ta thấy rằng tại tầng thứ 3, cứ mỗi trạngthái 00, 01, 10, 11 đều có 2 nhánh đến từ các trạng thái trước đó tùy thuộc vào bit đượcdịch vào bộ mã là bit 0 hay bit 1 Với tính chất đó ta có thể biểu diễn mã chập bằng sơ

đồ có dạng hình lưới gọn hơn, trong đó các đường liền nét được ký hiệu cho bit đầuvào là bit “1” và đường đứt nét được ký hiệu cho các bit đầu vào là bit “0” (xem hình6) Ta thấy rằng từ sau tầng thứ hai hoạt động của lưới ổn định, tại mỗi nút có hai

Trang 11

đường vào nút và hai đường ra khỏi nút Trong hai đường đi ra thì một ứng với bit đầuvào là bit “0” và đường còn lại ứng với bit đầu vào là bit “1”.

Kết quả ta thu được sơ đồ trạng thái trong hình 7 như sau:

Trang 12

Hình 7 Sơ đồ trạng thái của bộ mã chập (2,1,3)

Từ sơ đồ trạng thái hình 2.10, các đường liền nét được ký hiệu cho bit đầu vào

là bit “0” và đường đứt nét được ký hiệu cho các bit đầu vào là bit “1” So với sơ đồhình lưới và sơ đồ hình cây thì sơ đồ trạng thái là sơ đồ đơn giản nhất

5 Ưu nhược điểm của mã chập

5.1 Ưu điểm

Cũng như các mã sửa sai khác, mã chập cho phép chúng ta có thể sửa lại dữ liệu

đã bị sai lệch khi truyền qua kênh truyền để khôi phục chính xác tín hiệu gốc

Việc thực hiện mã hóa dùng mã chập tương đối đơn giản hơn các loại mã sửasai khác mà chất lượng mã hóa lại tốt

Việc thực hiện mã hóa dùng mã chập có thể được thực hiện bằng phần cứng vàphần mềm

Dựa trên hình thức mã hóa mã chập cùng thuật giải Viterbi cho nó, các bộ mãhóa sau này đều kế thừa những đặc tính ưu việt của nó

5.2 Nhược điểm

Việc mã hóa và giải mã liên quan đến mã chập chỉ giải quyết được các lỗi mộtbit còn đối với các kênh truyền xuất hiện nhiều bit liên tiếp thì thuật toán mã hóa vàgiải mã này sẽ không còn hoàn hảo nữa

Kênh truyền ở đây phải là kênh truyền ít nhiễu, vì nếu kênh truyền nhiễu quálớn, mã hóa chập sẽ không còn tốt nữa Khi đó ta phải cần tới trải phổ tín hiệu để đưatín hiệu xuống dưới mức nhiễu để giảm thiểu ảnh hưởng

Trang 13

6 Định nghĩa thuật toán Viterbi

Thuật toán Viterbi là một giải pháp được sử dụng phổ biến để giải mã chuỗi bitđược mã hóa bởi bộ mã hóa tích chập Chi tiết của một bộ giải mã riêng phụ thuộc vàomột bộ mã hóa tích chập tương ứng Thuật toán Viterbi không phải là một thuật toánđơn lẻ có thể dùng để giải mã những chuỗi bit mà được mã hóa bởi bất cứ một bộ mãhóa chập nào

Thuật toán Viterbi được khởi xướng bởi Andrew Viterbi năm 1967 như là mộtthuật toán giải mã cho mã chập qua các tuyến thông tin số có nhiễu Nó được sử dụngtrong cả hai hệ thống CDMA và GSM, các modem số, vệ tinh, thông tin vũ trụ, và các

hệ thống mạng cục bộ không dây Hiện nay còn được sử dụng phổ biến trong kỹ thuậtnhận dạng giọng nói, nhận dạng từ mã, ngôn ngữ học máy tính

Thuật toán giải mã Viterbi là một trong hai loại thuật toán giải mã được sử dụngvới bộ mã hóa mã chập- một loại khác đó là giải mã tuần tự Ưu điểm của giải mã tuần

tự so với Viterbi là nó có thể hoạt động tốt với các mã chập có chiều dài ràng buộc lớn,nhưng nó lại có thời gian giải mã biến đổi

Còn ưu điểm của thuật toán giải mã Viterbi là nó có thời gian giải mã ổn định.Điều đó rất tốt cho việc thực thi bộ giải mã bằng phần cứng Nhưng mà yêu cầu về sựtính toán của nó tăng theo hàm mũ như là một hàm của chiều dài ràng buộc, vì vậy,trong thực tế, người ta thường giới hạn chiều dài ràng buộc của nó K = 9 hoặc nhỏ hơn.Stanford Telecom tạo ra một bộ giải mã Viterbi K = 9 hoạt động ở tốc độ đến 96 kbps,

và một bộ giải mã với K = 7 hoạt động với tốc độ lên đến 45 Mbps Các kỹ thuật khôngdây nâng cao có thể tạo ra một bộ giải mã Viterbi với K = 9 hoạt động ở tốc độ lên đến

2 Mbps NTT tuyên bố rằng họ đã tạo được bộ giãi mã Viterbi hoạt động ở tốc độ 60Mbps, nhưng tính khả thi của nó vẫn chưa được kiểm chứng

7 Phân tích thuật giải Viterbi

Chúng ta sẽ lấy ví dụ về mã chập có tốc độ mã là

Hình 8 Bộ mã chập tốc độ ½

Trang 14

FF: thanh ghi dịch Tại mỗi xung clock, nội dung của thanh ghi dịch được dịch quaphải 1 bit Bit đầu tiên sẽ là ngõ vào, và bit cuối cùng sẽ là ngõ ra Một thanh ghi dịch

có thể sẽ xem xét việc cộng trễ vào ngõ vào Các thanh ghi dịch có thể được hiểu như

là bộ nhớ của bộ mã hóa Nó ghi nhớ những bit đầu của chuỗi

Thanh ghi dịch được khởi đầu với tất cả giá trị là 0

Thuật toán XOR:

Nếu chúng ta làm việc trên một chuỗi ngõ vào là 01011101, ngõ ra là 00 1110

00 01 10 01 002 Bộ mã hóa này cũng có thể được mô hình bởi một bảng trạng tháihữu hạn Mỗi một trạng thái được quy định bởi 2 bit nhị phân- trạng thái của 2 thanhghi dịch Mỗi một sự chuyển trạng thái được quy định bởi w/v1v2 với w đại diện chobit ngõ vào, và v1v2 là đại diện cho 2 bit ngõ ra, trong trường hợp này chúng ta luônluôn có w = v1

Bảng 1 Trạng thái ngõ vào và ngõ ra của bộ mã hóa tốc độ ½

Hình 9 Đồ hình trạng thái của mã chập ½

Trang 15

Bậy giờ chúng ta có thể mô tả thuật toán giải mã, phần chính là thuật toánViterbi Có lẽ, khái niệm quan trọng nhất để hỗ trợ cho việc hiểu được thuật toánViterbi đó là sơ đồ Trellis Hình bên dưới cho chúng ta thấy sơ đồ trellis cho ví dụ củachúng ta ở tốc độ ½, mã hóa chập với chiều dài ràng buộc K = 3 với bản tin 8 bit.

đồ trellis và đồ hình trạng thái đã nói ở trên

Hình vẽ bên dưới cho ta thấy trạng thái trellis cho toàn bộ 8 bit ngõ vào Các bitngõ vào bộ mã hóa và ký hiệu ngõ ra được thể hiện ở bên dưới của hình

Hình 11 Đường đi hoàn chỉnh khôi phục chính xác tín hiệu tại ngõ ra.Các bit ngõ vào và các ký hiệu ngõ ra của bộ mã thì có thể xem ở dưới cùng của hìnhtrên Chú ý sự phù hợp giữa các ký hiệu ngõ ra và bảng ngõ ra chúng ta đã đề cập ở

Trang 16

trên Hãy xem xét một cách chi tiết hơn, sử dụng phiên bản mở rộng của sự chuyển đổi

từ một trạng thái tức thời đến một trạng thái kế tiếp như hình bên dưới:

Giờ chúng ta sẽ xem xét cách thức giải mã của thuật toán Viterbi Bây giờchúng ta giả sử là chúng ta có một mẫu tin đã mã hóa (có thể có vài lỗi) và chúng tamuốn khôi phục lại tín hiệu gốc

Giả sử chúng ta nhận được mẫu tin đã mã hóa ở trên với 1 bit lỗi

Hình 12 Tín hiệu nhận có 1 bit sai tại t =2

Ở mỗi thời điểm chúng ta nhận được 2 bit trong ký hiệu Chúng ta sẽ tính toánthông số metric để đo “khoảng cách” giữa những gì mà chúng ta nhận được với tất cảcác cặp bit ký hiệu kênh truyền có thể mà chúng ta có thể nhận được Đi từ thời điểmt=0 đến t=1, chỉ có 2 trạng thái mà chúng ta có thể nhận được là 00 và 11 Đó là bởi vìchúng ta biết được bộ mã hóa tích chập bắt đầu với trạng thái tất cả đều là 0 và cho 1

Trang 17

bit vào là 0 hay 1 thì chỉ có 2 trạng thái mà chúng ta có thể đi đến và 2 ngõ ra của bộ

mã hóa Những ngõ ra này có trạng thái là 00 và 11

Thông số metric mà chúng ta sẽ sử dụng là khoảng cách Hamming giữa cặp bitcủa ký hiệu nhận được và cặp bit có thể của kênh truyền Khoảng cách Hamming đượctính một cách đơn giản bằng cách đếm có bao nhiêu bit khác giữa cặp bit nhận được từkênh truyền và cặp bit so sánh Kết quả chỉ có thể là 0, 1, 2 Giá trị của khoảng cáchHamming (hay thông số metric) mà chúng ta tính toán ở mỗi khoảng thời gian chođường dẫn của trạng thái tại thời điểm trước và trạng thái hiện tại được gọi là metricnhánh (branch metric) Ở thời điểm đầu tiên, chúng ta sẽ lưu những kết quả này như là

“thông số metric tích lũy”, được liên kết đến các trạng thái Ở thời điểm thứ 2, thông sốmetric tích lũy sẽ được tính toán bằng cách cộng thêm thông số metric tích lũy trước đóvào metric nhánh hiện tại

Ở thời điểm t=1, ta nhận được 2 bit “00” Chỉ có một cặp ký hiệu kênh truyền

mà chúng ta có khả năng nhận được là “00” và “11” Khoảng cách Hamming giữa “00”

và “00” là bằng 0 Khoảng cách Hamming giữa “00” và “11” là 2 Do đó, giá trị thông

số metric nhánh cho nhánh ứng với sự chuyển trạng thái từ “00” đến “00” là 0 và chonhánh từ “00” đến “10” là 2 Khi mà thông số metric tích lũy trước đó là 0 thì thông sốmetric tổng sẽ chính bằng thông số metric của nhánh vừa xét Tương tự ta tính đượcthông số metric cho 2 trạng thái kia Hình bên dưới minh họa kết quả tại thời điểm t= 1

Hình 13 Tại thời điểm t=1

Điều gì sẽ xảy ra ở thời điểm t=2, chúng ta nhận được một cặp kí hiệu kênhtruyền là “11”, trong khi đó cặp ký hiệu kênh truyền mà chúng ta có thể nhận được là

“00” nếu chuyển từ trạng thái “00” sang trạng thái “00” và “11” khi chuyển từ trạngthái “00” đến trạng thái “10”, “10” khi chuyển từ trạng thái “10” đến trạng thái “01”,

“01” khi chuyển từ trạng thái “10” đến trạng thái “11” Khoảng cách Hamming giữa 00

Trang 18

và 11 là 2, giữa 11 và 11 là 0, giữa 01 hoặc 10 với 11 là 1 Chúng ta cộng các thông sốmetric ở mỗi nhánh lại với nhau ở thời điểm t=1 thì trạng thái chỉ có thể là 00 hoặc 10,thông số metric tích lũy sẽ được cộng vào là 0 hoặc là 2 một cách tương ứng Hình bêndưới thể hiện sự tính toán thông số metric tích lũy ở thời điểm t=2.

Hình 14 Tại thời điểm t=2

Đó là tất cả sự tính toán cho thời điểm t=2 Đường nét đậm là metric nhánhđược lựa chọn vì theo các nhánh đó, thông số metric là nhỏ nhất Giờ chúng ta sẽ tínhthông số metric tích lũy cho mỗi trạng thái tại thời điểm t=3

Giờ chúng ta hãy nhìn vào hình minh họa cho thời điểm t=3 Chúng ta sẽ gặpphải một ít phức tạp hơn ở đây, tại mỗi trạng thái trong 4 trạng thái tại t=3 sẽ có 2đường đến từ 4 trạng thái của thời điểm t=2 Chúng ta sẽ xoay sở thế nào? Câu trả lời

là, chúng ta sẽ tính toán thông số metric tích lũy liên quan của mỗi nhánh, và chúng ta

sẽ bỏ đi giá trị metric lớn hơn, tức là sẽ loại bỏ nhánh đó đi Nếu cặp thông số metric ởmỗi trạng thái là bằng nhau thì chúng ta sẽ giữ lại cả 2 trạng thái Chúng ta sẽ kế thừanhững tính toán đã thực hiện ở thời điểm t=2 Thuật toán cộng thông số metric tích lũytrước đó vào nhánh mới, so sánh kết quả và chọn thông số metric nhỏ hơn (nhỏ nhất)

để tiếp tục dùng cho thời điểm kế tiếp, được gọi là thuật toán cộng-so sánh-chọn Hìnhbên dưới cho thấy kết quả của việc xử lý tại thời điểm t=3

Trang 19

Hình 15 Tại thời điểm t=3.

Chú ý là cặp ký hiệu kênh truyền thứ 3 mà chúng ta nhận được sẽ có một lỗi.Thông số metric nhỏ nhất hiện tại là 1

Chúng ta hãy xem điều gì xảy ra ở thời điểm t=4 Tiến trình xử lý cũng giốngnhư ở thời điểm t=3 Kết quả xem ở hình bên dưới

Hình 16 Tại thời điểm t=4

Chú ý là ở thời điểm t=4, đường trellis của tin tức thực sự truyền đi được xác định bằngđường in đậm, với thông số metric tích lũy là nhỏ nhất Hãy xem xét ở thời điểm t=5:

Trang 20

Hình 17 Tại thời điểm t=5.

Ở thời điểm t=10, sơ đồ trellis sẽ như thế này, các nhánh ko được chọn đã được

bỏ đi:

Hình 18: Tất cả dữ liệu đã được giải mã và sửa sai chính xác

Kết quả ở đây cho thấy chúng ta đã giải mã đúng chuỗi dữ liệu gốc Nếu chúng

ta nhìn lại con đường để chúng ta tìm ra dữ liệu gốc là bằng cách so sánh dữ liệu nhậnđược với dữ liệu so sánh của bộ giải mã có được từ bảng trạng thái Điều này cho thấychúng ta đang sử dụng thuật toán giải mã dựa trên sự giống nhau lớn nhất

Ngày đăng: 28/12/2015, 12:11

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5] Nguyễn Minh Khánh Ngọc, Luận văn cao học “Thiết kế và thực hiện giải thuật Viterbi trên FPGA”, 2009 Sách, tạp chí
Tiêu đề: Thiết kế và thực hiện giải thuậtViterbi trên FPGA
[1] John Proakis, Digital Communications (Chapter 8-Block and Convolutional Channel Codes), McGraw-Hill Science/ Engineering/ Math, 4th, 2000 Khác
[2] Fu Hua Huang, Evaluation of Soft Output Decoding for Turbo Codes(chapter 2_convolution codes), Master's Thesis, 1997 Khác
[3] Mr. Chip Fleming, Tutorial on Convolutional Coding with Viterbi Decoding, Spectrum Applications, 2006 Khác
[4] Wei Chen, RTL implementation of Viterbi decoder, Master’s thesis performed in Computer Engineering, 2006 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w