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

Thiết kế modul mã hoá và giải mã mã chập

59 1,4K 4

Đ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

Định dạng
Số trang 59
Dung lượng 0,95 MB

Nội dung

Thiết kế modul mã hoá và giải mã mã chập

Trang 1

LỜI MỞ ĐẦU

Mã hoá và giải mã đã xuất hiện từ rất sớm đặc biệt là trong quân sự Các yêucầu với một loại mã là phải có tính bảo mật cao, khả năng phát hiện và sửa lỗi trongqua trình truyền Để tìm ra được một loại mã thực sự hiệu quả là không đơn giản.Trong các loại mã mã chập ra đời từ những năm 1955 cùng thời với nhiều loại mã như

mã vòng, mã BCH Mã chập là loại mã có khả năng khôi phục dữ liệu rất tốt, song khimới ra đời do chưa tìm được giải thuật giải mã khả thi nên ít được quan tâm Mãi đếnnăm 1967 Viterbi đã đưa ra một giải thuật giải mã tối ưu gọi là giải thuật Viterbi Vớigiải thuật Viterbi cùng với sự tiến bộ KHKT với công nghệ sản xuất các mạch tổ hợp

cỡ lớn và sự phát triển của công nghệ sản xuất bộ nhớ, mã chập ngày càng được ứngdụng rộng rãi trong công nghệ viễn thông

Mặc dù đã xuất hiện từ rất lâu song mã hoá vẫn là một môn học khá mới Vớimong muốn tạo một bộ thí nghiệm về mã hoá và giải mã phục vụ cho việc học tập, đề

tài : nghiên cứu “ Thiết Kế Modul Mã hoá và Giải mã Mã Chập“ Nội dung của đề

tài là nghiên cứu và hiện thực thuật toán mã hoá mã chập và giải thuật giải mã củaViterbi

Mặc dù có nhiều cố gắng, nhưng do kiến thức hạn chế và thời gian thực hiện đềtài không nhiều nên đề tài vẫn còn nhiều hạn chế và sai sót Em rất mong nhận được sựđánh giá nhận xét của các thầy giáo và các bạn

Nhân đây em muốn nói lời cảm ơn sâu sắc tới các thầy giáo trong khoa đặc biệt

là thầy giáo hướng dẫn Ths Nguyễn Phương Lâm đã nhiệt tình quan tâm và giúp đỡ emhoàn thành đồ án Đồng thời em cũng muốn gửi lời cảm ơn tới gia đình và các bạn đãđộng viên, giúp đỡ em trong quá trình hoàn thành đồ án tốt nghiệp

Hải Phòng, ngày 9 tháng 12 năm 2008

Sinh viên : Vũ Xuân Hiệp

Trang 2

Chương I TỔNG QUAN VỀ MÃ HOÁ I.1 CÁC KHÁI NIỆM CƠ BẢN VỀ MÃ HOÁ

I.1.1.Định nghĩa mã hoá

Mã hoá nguồn tin X theo bộ mã M là phép ánh xạ 1:1 biến đổi một tin xi Xthành một tổ hợp các kí hiệu của bộ mã M

Nguồn X = {x1,x2,x3, ,xn}

Bộ mã M = {m1,m2, ,mk}

Trong đó k là cơ số của bộ mã Nếu k=2 là mã nhị phân, k=10 là mã thập phân,k=8 là mã bát phân

Một tin xi được mã hoá thành xi mr1mr2 mrL

Trong đó L là số kí hiệu của bộ mã dùng để biểu diễn xi , đồng thời L cũng là độdài của từ mã

Chiều dài từ mã là số kí hiệu của bộ mã dùng để mã hoá cho từ mã đó Ví dụ: từ

mã 10101110 được mã hoá bằng 8 kí hiệu của bộ mã nhị phân nên có chiều dài là 8

Trang 3

Ví dụ: có 2 từ mã x1 = 01011011, x2 = 10101110

Quãng cách mã d(x1,x2) = 2

Quãng cách của một bộ mã được dịnh nghĩa là quãng cách mã tối thiểu của 2 từ mã bất

kì của bộ mã

I.2.MỤC ĐÍCH MÃ HOÁ VÀ CÁC ĐIỀU KIỆN KHI LẬP MÃ

Một số mục đích mà việc mã hoá nhằm tới ;

- Phối hợp nguồn tin và nơi nhận tin

- Tăng hiệu suất thông tin

- Tăng độ tin cậy truyền tin

- Bảo mật thông tin

Khi thiết lập một mã nào đơ ta cần tuân theo một số điều kiện sau:

a)Điều kiện chung.

Đảm vảo tính đơn trị, nghĩa là khi nhận được một dãy tín hiệu thì phải tách rađược thành từng từ mã một và phép tách này phải duy nhất

b) Điều kiện riêng.

Đối với phương pháp xây dựng mã thống kê tối ưu (mã nén) thì phải làm saocho độ dài trung bình của mã là nhỏ nhất, còn đối với mã có thể phát hiện và sửa sai thìphải cho phép phát hiện và sửa được lỗi càng nhiều càng tốt

I.3.CÁC CÁCH PHÂN LOẠI MÃ

Có nhiều cách để phân loại mã, dưới đây là một số phương pháp tiêu biểu [1]:

I.3.1 Phân loại theo trọng lượng của từ mã.

- Mã có trọng lượng không đổi

- Mã có trọng lượng thay đổi

I.3.2 Phân loại theo chiều dài của từ mã.

- Mã có chiều dài không đổi

- Mã có chiều dài thay đổi

Trang 4

I.3.3 Phân loại theo hiệu suất thông tin

- Mã tối ưu

- Mã chưa tối ưu

I.3.4 Phân loại theo độ tin cậy

-Mã có khả năng phát hiện và sửa sai

-Mã không có khả năng phát hiện và sửa sai

I.3.5 Phân loại theo cơ số của bộ mã

Có thể xây dựng bộ mã với cơ số bất kì, trong đó mã nhị phân là phổ biến nhất

I.3.6 Phân loại theo các cột số trong từ m ã

- Mã có trọng số: Thứ tự các cột số có ảnh hưởng đến nội dung từ mã

- Mã khôg có trọng số: Thứ tự các cột số không ảnh hưởng đến nội dung từ mã

I.3.7 Phân loại theo mục đích sử dụng m ã

- Mã số

- Mã kí tự

I.3.8 Phân loại theo quãng cách mã giữa hai từ mã kế cận

- d  const : mã vòng

- d = const : mã Gray, mã Johnson

I.3.8 Phân loại theo cách tạo mã.

Trong việc truyền tin có hai loại mã được sử dụng phổ biến là mã khối (BlockCode) và mã chập (Convolutional Code)

a) Mã khối

Bộ mã hoá của mã khối sẽ chia dòng thông tin thành những khối tin có k bit.Mỗi tin được biẻu diễn thành một khối k thành phần nhị phân u = {u1,u2, ,uk}, u đượcgọi là vector thông tin Có tổng cộng 2k vector thông tin khác nhau Bộ mã hoá sẽchuyển vector thông tin u thành một bộ n thành phần v = {v1,v2, ,vn}, v được gọi là từmã.Như vậy ứng với 2kvector thông tin sẽ có 2k từ mã khác nhau Tập hợp có 2k từ mã

Trang 5

Gọi R = k/n là tỉ số mã R chính là số bít thông tin đưa vào bộ giải mã trên số bítđược truyền Do n bít ra chỉ phụ thuộc vào k bit thông tin vào nên bộ mã hoá và giải

mã không có nhớ và có thể thực hiện được bằng mạch logic tổ hợp

b) Mã chập

Bộ mã hoá của mã chập giống như bộ mã hoá của mã khối, cũng nhận k bítthông tin u và tạo thành từ mã v là những khối n bít Nhưng n bít của từ mã v khôngchỉ phụ thuộc vào k bít thông tin mà còn phụ thuộc vào m bít thông tin trước đó Do đó

bộ mã hoá có bộ nhớ m bít Tập hợp dòng mã hoá n bit tạo bởi k bít thông tin và m bítnhớ được gọi là mã chập (n,k,m) Tỉ số R=k/n được gọi là tốc độ lập mã Do tính cónhớ của mã chập nên nó phải được thực hiện bằng mạch dãy

Trang 6

CHƯƠNG II MÃ HOÁ VÀ GIẢI MÃ MÃ CHẬP

Các bít thông tin được đưa lần lượt vào thanh ghi dịch, các bít mã hoá được tạobởi các bộ cộng modul 2 giữa bít vào và các bít lưu trong thanh ghi dịch Đường nốigiữa bộ cộng modul 2 và các bít trong thanh ghi dịch được cho bởi các đa thức sinh

II.1.2.Các tham số của bộ mã hoá mã chập

Một bộ mã hoá mã chập thường được xác định thông qua các tham số (n,k,m).trong đó :

n: số bít ra tại tại một thời điểm

Trang 7

Tốc độ lập mã:

k r n

Độ dài ràng buộc (Constrain Lenght) K Đây là một thông số rất quan trọng của

bộ mã chập Với bộ tạo mã, độ dài ràng buộc xác định có bao nhiêu bít tại các thờiđiểm trước có ảnh hưởng đến bít hiện tại Với bộ giải mã, độ dài ràng buộc xác địnhkhi nào có thể quyết định được bít giải mã Trong mã chập, độ dài ràng buộc càng lớnthì khả năng sửa lỗi càng tốt Độ dài ràng buộc được tính theo biểu thức:

K = m+1Ứng với tốc độ lập mã r=1/2 ta có một số đa thức sinh [3]:

4 1 + D + D3

1 + D + D2 + D3

0x0B0x0F

5 1 + D3+ D4

1 + D + D2 + D4

0x190x17

6 1 + D2+ D4+ D5

1 + D + D2 + D3 + D5

0x350x2F

7 1 + D2+ D3+ D5+ D6

1 + D + D2 + D3 + D6

0x6D0x4F

8 1 + D2+ D5+ D6+ D7

1 + D + D2 + D3 + D4 + D7

0XE50x9F

9 1 + D2+ D3+ D4+ D8

1 + D + D2+ D3 + D5 + D7 + D8

Trang 8

Với bộ mã hoá trong hình 2.1 ta có thể xác định các tham số: n = 3 , k = 2 , m = 3 Tốc

độ mã r = 2/3 Độ dài ràng buộc K = 4

II.2 CÁC PHƯƠNG PHÁP BIỂU DIỄN MÃ CHẬP

Bộ mã của mã chập có thể được biểu diễn bằng các phương pháp sau:

- Đồ hình trạng thái (state Diagram)

- Đồ hình cây (Tree Diagram)

- Đồ hình đồ hình lưới (Trellis Diagram)

Ví dụ ta có sơ đồ bộ mã hoá như sau:

Hình vẽ 2.2 Sơ đồ bộ mã hoá mã chập (2,1,2)

II.2.1 Đồ hình trạng thái

Đồ hình trạng thái của mã (2,1,2) cho trong hình 2.1 được biểu diễn như hình

vẽ dưới Các kí hiệu trong mỗi vòng tròn biểu diễn trạng thái hiện thời của thanh ghidịch, tại mỗi thời điểm bộ mã hoá sẽ ở một trong số các trạng thái đó Các đường nốibiểu diễn sự chuyển đổi trạng thái khi có một bít vào Các kí hiệu ghi trên các đườngnối biểu diễn bít vào/ các bít ra của bộ mã hoá, ví dụ: kí hiệu 0/10 ghi trên đường nối

từ trạng thái 10 đến trạng thái 01 nghĩa là khi có bít 0 vào bộ mã hoá và trạng tháithanh ghi dịch là 10 thì trạng thái của thanh ghi dịch sẽ chuyển sang 01 và cặp bít sau

Trang 9

Hình 2.3a.Đồ hình trạng thái của bộ mã (2,1,2)Thông thường, bộ mã hoá sẽ bắt đầu từ trạng thái 0 Lấy 1 ví dụ, khi dãy bít vào

bộ mã hoá là x = { 1011} (với trạng thái đầu của thanh ghi dịch là 0) thì dãy chuyểnđổi trạng thái là s = {00,10,01,10,11} và dãy bít sau mã hoá là c = {11,10,00,01} Hìnhdưới biểu diễn sự chuyển đổi trạng thái của bộ mã hoá với dãy bít vào cho trên (đường

Trang 10

Hình 2.4 Đồ hình cây của bộ mã hoá (2,1,2)Trong đồ hình cây, các đường nét liền biểu diễn nhánh khi có bít vào là 0, cácđương nét đứt biểu diễn nhành khi có bít 1 vào Và các bít sau mã hoá được biểu diễn ởtrên mỗi nhánh cây Với một chuỗi bít vào sẽ xác định một đường đi nhất định từ tráisang phải trên đồ hình Ví dụ với chuỗi bít vào x = {1011} (với trạng thái đầu củathanh ghi dịch là 0) Ta sẽ thực hiện việc dịch chuyển trên đồ hình như sau: đầu tiêntại nhánh 1 ta đi xuống, cặp bít mã hoá là 11 và trạng thái thanh ghi dịch l à 10 Tiếptheo ta thu được bít 0, do đó ta tiếp tục đi lên , cặp bít mã hoá là 10 và trạng thái thanhghi dịch là 01 Bít thu được tiếp theo là 1, ta đi xuống, cặp bít mã hoá là 00 và trạngthái thanh ghi dịch là 10 Cuối cùng ta thu được bít 1, ta đi xuống, cặp bít mã hoá là 00

và trạng thái thanh ghi dịch l à 10 Cuối cùng chuỗi thông tin ra là: c = {11,10,00,00}

II.2.3 Đồ hình lưới

Đồ hình lưới phức tạp hơn các dạng đồ hình khác, tuy nhiên nó lại được sử dụng

Trang 11

trục x là trục thời gian tăng dần, và trục y biểu diễn các trạng thái của bộ mã hoá Mỗikhi thu được một bít ta sẽ dịch chuyển đến một trạng thái mới theo chiều tăng dần củatrục thời gian Đồ hình lưới dưới đây biểu diễn cho bộ tạo mã trên hình 2.1 với 4 bitvào

Hình 2.5.a Đồ hình lưới của bộ tạo mã (2,1,2)Các kí hiệu trên các đường nối có dạng (x/c), ví dụ (1/01) nghĩa là sự chuyểntrạng thái đó khi có bít vào là 1 và cặp bít ra bộ mã hoá là 01

Việc tạo các bít mã hoá sử dụng đồ hình lưới rất đơn giản Tại mỗi thời điểm khi

có bít vào là 0 ta sẽ đi lên đến thời điểm tiếp, và khi thu được bít 1 ta sẽ đi xuống đếnthời điểm tiếp Giả sử có chuỗi bít vào x = {1011} ta có sự chuyển đổi trạng thái nhưtrong hình dưới Các đường nét đậm biểu diễn sự chuyển đổi trạng thái khi có bít vào

Hình 2.5.b.Đồ hình lưới của bộ tạo mã (2,1,2) với chuỗi bít vào 1011

Trang 12

II.3 CÁC PHƯƠNG PHÁP GIẢI MÃ MÃ CHẬP

Có một số phương pháp giải mã mã chập, chúng được gộp lại thành 2 phươngpháp chính:

- Giải mã theo từng chuỗi (Sequential Decoding) dựa vào giải thuật của Fano

- Giải mã dựa vào kết quả so sánh sự giống nhau giữa các từ mã (MaximmumLikely-hood Decoding), dựa vào giả thuật của Viterbi

Cả 2 phương pháp trên đều có chung 1 ý tưởng, được trình bày qua ví dụ sau:Giả sử ta gửi 3 bít qua bộ mã hoá với tốc độ mã ½, ta sẽ thu được 6 bít Sau khitruyền đi, tại phía thu ta thu được 6 bít nhưng ta chưa biết 6 bít đó có bị lỗi hay không.Nếu các bít thu được có lỗi ta sẽ nhận được tổ hợp của 6 bít Ta biết rằng với sự hoán

vị của 3 bít đầu vào bộ mã hoá ta sẽ được 8 khả năng của chuỗi đầu ra và mỗi mộttrong số đó lại có một bản đồ mã riêng (đường đi trong đồ hình lưới) Nhiệm vụ của bộgiải mã là phải xác định chuỗi nào đã được gửi đi

Giả sử ta thu được chuỗi 111100, bây giờ ta sẽ so sánh chuỗi thu được với cácchuỗi có thể được tạo ra bởi bộ mã hoá khi có 3 bit vào và xác định xem chúng khácnhau bao nhiêu bit (chính là khoảng cách Hamming giữa các từ mã)

Trang 13

Ta thấy rằng từ mã thu được không thuộc từ mã nào trong bảng trên Ta sẽxác định từ mã đúng như thế nào? Ta có 2 cách :

- Ta sẽ chọn 1 từ mã trong bảng trên có khoảng cách Hamming nhỏ nhất, hoặc

- Ta sẽ tìm tính tương quan giữa các từ mã có thể thu được với từ mã thu được

và chọn ra từ mã có tính tương quan lớn nhất là từ mã đúng

Trong thủ tục thứ nhất ta gọi là thủ tục giải mã quyết định cứng (hard decisiondecoding ), thủ tục thứ hai ta gọi là thủ tục giải mã quyết định mềm (soft decisiondecoding ) Nhưng nếu chỉ dựa vào số bít khác nhau (khoảng cách hamming) giữachuỗi thu được và chuỗi dự đoán ta cũng chưa thể có câu trả lời chính xác ngay từ mãnào là từ mã đúng, vì trong bảng trên ta thấy có đến 2 chuỗi có cùng khoảng cáchHamming là 1 Hơn nữa khi độ dài chuỗi bít tăng thì số lượng phép tính sẽ tăng rất lớn

vì thế phương pháp này sẽ không hiệu quả trong thực tế Ta cần có 1 phương phápkhác hiệu quả hơn và cho kết qủa chính xác hơn

Nếu ta thu được bản tin có độ dài s , số khả năng của chuỗi thu đúng là 2s Làmthế nào để xác định được bản tin đúng mà không cần phải kiểm tra 2s khả năng, đóchính là ý tưởng của thuật toán giải mã

II.3.1.Giải mã theo từng chuỗi (Sequential Decoding)

Đây là 1 trong những phương pháp giải mã chập Phương pháp này được đềxuất lần đầu bởi Wozencraft và được tối ưu bởi Fano

Phương pháp giải mã theo chuỗi được mô tả rõ nhất thông qua phương pháploại suy Tại mỗi thời điểm ta có nhiều nút để lựa chọn, và mỗi hướng triển khai sẽ cómột giới hạn (Landmark) Nhưng khi chọn một hướng ta lại thường khó nhận ra giớihạn của nó nên nhiều khi ta đã đi sai hướng Mỗi khi nhận thấy đã đi sai hướng ta sẽquay trở lại điểm (nút) mà tại đó ta nhận thấy giới hạn và lặp lại qui trình trên đến khitìm thấy hướng đi đúng Số lần lặp lại tuỳ thuộc vào độ chính xác của mỗi hướng điđược chọn Trong trường hợp số lỗi trong chuỗi thu ít, giải thuật này sẽ nhanh chóngcho ra chuỗi từ mã đúng Ta dễ dàng nhận thấy được nhược điểm của phương pháp này

Trang 14

là “làm thế nào để biết được giới hạn ?” Tuy nhiên đây lại là phương pháp khả thi tạithời điểm đó.

II.3.2 Thuật toán giải mã Viterbi (VA)

Thuật toán Viterbi giải mã mã chập dựa vào sự giống nhau nhất giữa các chuỗi(Maximum Likely-hood) Theo phương pháp n ày ta sẽ giới hạn số đường dẫn tại từngthời điểm Nguyên tắc để giới hạn số lựa chọn là :

- Các lỗi xuất hiện không có chu kì, và xác suất lỗi nhỏ

- Xác suất xuất hiện các lỗi cụm nhỏ hơn nhiều so với các lỗi đơn, các lỗi phân

được chọn gọi là Survivors path (đường dẫn còn lại).

Ta thấy với giải thuật Viterbi sẽ có một khoảng thời gian trễ để tạo ma trận cácđường dẫn, và cũng cần có một bộ nhớ khá lớn_điều n ày khó có thể đáp ứng được vàonhững năm 1967 khi m à Viterbi đưa giả giải thuật này Tuy nhiên điều đó sẽ tạo thuậntiện cho việc nhận ra ‘giới hạn’ của mỗi đường dẫn và thực hiện lại tại nút đó Do cónhững hạn chế về mặt kĩ thuật nh ư đã kể trên mà vào thời điểm đó giải thuật giải m ãcủa Viterbi khó có thể triển khai trên thực tế

Trang 15

CHƯƠNG III THUẬT TOÁN GIẢI MÃ VITERBI

III 1 CƠ SỞ TOÁN HỌC CỦA GIẢI THUẬT VITERBI

III.1.1.Thuật toán giải mã Viterbi quyết định cứng (Hard_Decison Viterbi Algorithm-HDVA)

Với mã hoá mã chập, dòng bít vào là x sẽ cho chuỗi thông tin ra l à c Chuỗi bít c

sẽ được phát đi qua kênh thông tin có nhiễu và khi đến phía giải mã sẽ thu được chuỗi

trong số những chuỗi giải mã có thể có Hình vẽ sau sẽ mô tả kiến trúc của hệ thống :

Hình 3.1.1 Sơ đồ hệ thống truyền tin sử dụng m ã chập

Với tốc độ mã r, số đầu vào bộ mã hoá tại một thời điểm là k bít, và đầu ra là nbít song song, chu ỗi bít vào sẽ được kí hiệu như sau:x={x0(1),x0(2), ,x0(k),x1(1), ,x1(k), ,xL+m-1(1), ,xL+m-1(k)} , chuỗi bít ra bộ mã hoá là:c={c0(1),c0(2), ,c0(n),c1(1), ,c1(n), ,cL+m-1(1), ,cL+m-1(n)}

Trang 16

trong đó L là độ dài chuỗi bít vào, m là độ dài lớn nhất của thanh ghi dịch Các chỉ sốdưới chỉ các điểm thời gian, các chỉ số tr ên chỉ số thứ tự của các bít vào- ra tại thờiđiểm đó.

Với điều kiện đầu là có m bít ở cuối chuỗi bít vào để đưa bộ mã hoá về trạngthái toàn 0, điều đó cho phép bộ mã hoá bắt đầu và kêt thúc đều ở trạng thái 0 chuỗithu được được mô tả như sau:

r={r0(1),r0(2), ,r0(n),r1(1), ,r1(n), ,rL+m-1(1), ,rL+m-1(n)} và chuỗi sau giải mã là:

y={y0(1),y0(2), ,y0(n),y1(1), ,y1(n), ,yL+m-1(1), ,yL+m-1(n)}

Trong giải thuật ML, thuật toán Viterbi sẽ lựa chọn y sao cho xác suất p(r|y) lớn

nhất Giả sử kêng không có nhớ, và nhiễu tác động độc lập với các bít khác nhau Theo

lí thuyết xác suất, xác suất của sự kiện độc lập sẽ b ằng tích của các sự kiện, do đó :

1 (1) (1) (2) (2) ( ) ( )

Biểu thức trên gọi là hàm Likelihood giữa chuỗi y với điều kiện thu được chuỗi

r Việc đánh giá giá trị lớn nhất của p(r|y) t ương đương với việc đánh giá giá trị l ớn

nhất của log(p(r|y) ), bởi v ì logarit là hàm đơn điệu tăng, do đó hàm Likelihood cònđược định nghĩa như sau:

Trang 17

Hình 3.1.2 Mô hình kênh BSCVới kênh BSC giá trị a,b được chọn theo 2 cách khác nhau Thôn g thường a,b đượcchọn như sau:

1log log(1 )

Ma trận bít cho ta biết giá trị (trọng số) của bít thu được và bít sau khi giải mã

Ví dụ, nếu bít giải mã là yi(j) = 0 và bít thu được là ri(j) = 0 thì giá trị sẽ là

j i

r

Bít thu vào

( ) 1

j i

y

Trang 18

do đó ma trận trên còn gọi là ma trận khoảng cách Hamming Thuật toán Viterbi s ẽ lựa

chọn chuỗi mã y trong đồ hình lưới với giá trị nhỏ nhất/khoảng cách Hamming quan h ệ với chuỗi thu được r.

Trong trường hợp khác a, b được định nghĩa như sau:

1log(1 ) log

bảng sau cho thấy ma trận bit theo cách chọn này:

Khi đó thuật toán Viterbi sẽ lựa chọn chuỗi y trong đồ hình lưới sao cho có giá trị khoảng cách Hamming lớn nhất với chuỗi r thu được.

Từ ma trận bit giá trị của đường dẫn của ma trận được định nghĩa như sau:

j i

r

Bít thu vào

( ) 1

j i

y

Trang 19

i i i

gọi là Survivor Path (đường dẫn còn lại) và các nhánh còn lại là Nonsurvivor Path Survivor Path sẽ được lưu trong khi Nonsurvivor Path sẽ bị loại bỏ trong đồ hình

lưới Thuật toán Viterbi sẽ chọn các nhánh riêng rẽ về phía bên trái (theo chiều tăng

của trục thời gian), kết thúc của thuật toán sẽ là ML Path (đường đi đúng) Đi ngược lại trong ML Path ta sẽ được chuỗi giải mã.

Tóm lại thuật toán giải mã Viterbi quyết định cứng (HDVA) thực hiện như sau:

Gọi Sk,t trong đồ hình lưới là trạng thái Sk tại thời điểm t Mỗi trạng thái trong

đồ hình lưới được gán một giá trị là V(Sk,t)

1.- Khởi tạo t = 0

- Khởi tạo V(S0,0) = 0 và các trạng thái khác V(Sk,t) = +

2.- Gán t = t +1

- Tính giá trị nhánh cục bộ cho tất cả các nhánh đi từ trạng thái Sk tại thời

điểm t đang xét Đầu tiên ta tìm nhánh ma tr ận thứ t ( ) ( )

Trang 20

được tính như với khoảng cách Hamming ( ) ( )

1

j j

t t j

4.Lưu giá trị “tốt nhất” của nhánh cục bộ đó, nó là 1 trong số các bít Survivor

5 Nếu t<L+m-1, quay trở lại bước 2

Kết quả của thuật toán Viterbi là toàn bộ đường đi giữa các trạng thái trong đồ hìnhlưới tương ứng với từ mã đúng nhất

III.1.2.Thuật toán giải mã Viterbi quyết định mềm (Soft_Decison Viterbi

- Phương pháp 1: ta sử dụng ma trận khoảng cách Euclidean (SDVA1)

- Phương pháp 2: ta sử dụng ma trận Correlation (tương quan)(SDVA2) a)Thuật toán giải mã Viterbi quyết định mềm_ phương pháp 1 (SDVA1)

Vởi thuật toán giải mã quyết định mềm ta không cần xác định rõ từng bít thuvào là 0 hay 1, mà ta thu vào từng khối nhiều bit (hữu hạn hoặc vô hạn) Ý tưởng của

thuật toán là, chuỗi thu vào r có nhiều bít (vô hạn) sẽ được đưa trực tiếp vào giải mã.

Phương pháp này c ũng giống với thuật toán giải mã quyết định cứng, nhưng nó sử

Trang 21

Gọi Sk,t là 1 nút trong đồ hình lưới tương ứng với trạng thái Sk tại thời điểm t.Tại mỗi nút trong đồ hình lưới ta sẽ xác định 1 giá trị V(Sk,t)

4.Lưu giá trị “tốt nhất” của nhánh cục bộ đó, nó là 1 trong số các bít survivor

5 Nếu t<L+m-1, quay trở lại bước 2

b) Thuật toán giải mã Viterbi quyết định mềm_ phương pháp 2 ( SDVA2)

Thuật toán SDVA2 được trình bày dưới đây Hàm Likelihood được tính bằnghàm mật độ phân bố xác suất Gaussian : ( ) ( ) ( ( ) ( ) ) /2 0

0

1( j | j ) r i j y i j E b N

Trong đó: Eb là năng lượng thu được trên các bít của từ mã

N0 là mật độ phổ của nhiễu đơn biên

Bít thu được là biến ngẫu nhiên Gaussian với giá trị trung bình ( )j

i b

y E và N0/2 Lấylog của hàm Likelihood được :

Trang 22

( ) ( ) 2 1

y = 1

1 ( ) ( )

M r yr y

Thuật toán SDVA2 được mô tả như sau:

Gọi Sk,t là 1 nút trong đồ hình lưới tương ứng với trạng thái Sk tại thời điểm t.Tại mỗi nút trong đồ hình lưới ta sẽ xác định 1 giá trị V(Sk,t)

M r y M r y

 Nó được tính từ công thức V S( k t,1) M r y( |i i)

Trang 23

3.-Gán giá trị V(Sk,t) bằng giá trị nhánh cục bộ “tốt nhất” khi đi từ trạng thái Sktại thời điểm t Thông thường giá trị “tốt nhất” của nhánh cục bộ là nhánh có giá trị nhỏnhất.

4.Lưu giá trị “tốt nhất” của nhánh cục bộ đó, nó là 1 trong số các bít survivor

5 Nếu t<L+m-1, quay trở lại bước 2

Một cách mô tả dễ hiểu nhất thuật toán giải mã Viterbi là sử dụng đồ hình lưới

Đồ hình lưới dưới đây cho ví dụ với sơ đồ mã hoá (2,1,2) cho trong hình 2.2, với bảntin vào có độ dài 15 bít:

Hình 3.2.1 Đồ hình lưới của bộ mã hoá (2,1,2) với 17 thời điểm

Trang 24

Bốn trạng thái có thể của bộ m ã hoá được biểu diễn theo chiều dọc Các cộtcho ta các trạng thái có thể của bộ m ã hoá Cột đầu cho thấy trạng thái khởi đầu của bộ

mã hoá, các cột tiếp theo biểu diễn trạng thái của bộ m ã hoá tại các thời điểm t Trongbản tin dài 15 bít ta cần thêm 2 bít để đưa bộ mã hoá trở về trạng thái đầu (flushingbit), dó đó bản tin đang xét sẽ có 17 b ít Trong đồ hình trên các đường nét liền biểudiễn sự chuyển đổi trạng thái khi có bít v ào là bít 1, các đường nét liền biểu diễn sựchuyển đổi trạng thái khi có bít v ào là bít 0

Bảng chuyển đổi trạng thái d ưới đây sẽ cho thấy sự t ương ứng giữa các đườngnối trên đồ hình lưới :

Bít vào / trạng thái tiếp theo

Trạng thái hiện tại

Bảng 3.2.1.Bảng trạng thái của bộ mã hoá trong hình 2.1

Trong bảng trên các dấu x chỉ ra rằng không có sự chuyển đổi trạng thái tương ứng

Ta luôn chú ý rằng tại thời điểm ban đầu, trạng thái khởi tạo của bộ mã hoá

là 0, cuối cùng có thêm 2 bít flushing để đưa bộ mã hoá về trạng thái đầu

Với bộ mã hoá trên ta giả sử chuỗi bít vào là x = {010111001010001002 } ,theo trên chuỗi mã ra là : c = {00 11 10 00 01 10 01 11 11 10 00 10 11 00 11 10 112 },haibít cuối là các bít flushing Biểu đồ dưới đây cho thấy sự chuyển đổi trạng thái trong đồ

Trang 25

Hình 3.2.2.Đường dẫn trong đồ hình lưới với chuỗi bít vào xCác bít vào và bít mã hoá được cho bên dưới của biểu đồ.

Bảng dưới đây sẽ cho thấy cặp b ít mã hoá khi có bit vào t ại một trạng thái của

bộ mã hoá:

Từ mã ra

Trạng thái hiện thời

Để thuận tiện hơn ta sử dụng đồ hình lưới tại 1 thời điểm như sau:

Hình 3.2.3 Đồ hình lưới tại một thời điểm

Trang 26

Trong đó các kí hiệu ghi trên mỗi đường nối cho thấy các bít ra khi chuyển trạngthái Các đường nét liền cho thấy sự chuyển trạng thái khi có bít vào là bít 1 Cácđường nét đứt cho thấy sự chuyển trạng thái khi có bít vào là bít 0.

Bây giờ ta sẽ xem thuật toán Viterbi hoạt động như thế nào? Để cho đơngiản ta xét thuật toán giải mã quyết định cứng Giả sử ta thu được chuỗi bít với 2 bít lỗiđược đánh dấu trong biểu đồ dưới đây, sau khi giải mã ta sẽ thấy khả năng khôi phục

dữ liệu của mã chập

Các bít lỗi được đánh dấu x ở dưới

Tại mỗi thời điểm ta thu được 1 cặp bít, ta sẽ tạo ma trận chứa khoảng cáchHamming giữa từ mã thu được và các từ mã có thể tạo bởi bộ mã hoá tại thời điểm đó,

gọi là ma trận tích luỹ lỗi (accumulated error metric ).

Ta biết rằng bộ mã hoá có trạng thái ban đầu là 00, do đó nó chỉ có thể đi đến 2trạng thái là 00 (khi có bit 0 vào) hoặc 11 (khi có bit 1 vào) Khoảng cách Hammingđược tính bằng cách đếm số bít khác nhau giữa 2 từ mã (phép xor), trong trường hợpnày khoảng cách Hamming chỉ có thể là 0,1 hoặc 2 Khoảng cách Hamming tính tạimỗi thời điểm trên đường nối từ trạng thái trước đó đến trạng thái hiện tại gọi là mộtnhánh của ma trận Tại thời điểm ban đầu ta sẽ lưu giá trị tính được ở trên vào ô nhớ

tương ứng trong accumulated error metric, tại các thời điểm tiếp ta tính giá trị lỗi

tích luỹ bằng cách cộng giá trị lỗi tích luỹ tại thời điểm trước đó với nhánh hiện thời

Trang 27

Tại thời điểm t = 1 ta thu được cặp bít 002 , và tại thời điểm này ta chỉ có thểthu được 1 trong 2 cặp bít 002 hoặc 112 Khoảng cách Hamming gi ữa 002 và 002 là 0,khoảng cách Hamming gi ữa 002 và 112 là 2 Do đó nhánh của ma trận với nhánh đi từ

002 đến

002 (bit vào là 0) là 0, và nhánh của ma trận với nhánh đi từ 002 đến 102 (bit vào

là 0) là 2 Do giá trị lỗi tích luỹ trước đó là 0 nên giá trị của ma trận accumulated error metric tại các trạng thái 00 và 10 bằng giá trị của nhánh ma trận Giá trị lỗi tích

luỹ tại 2 trạng thái còn lại chưa xác định Hình dưới cho thấy kết quả tính toán tại thờiđiểm t = 1:

Hình 3.2.4.a Đồ hình lưới tại thời điểm t =1

Ta thấy rằng đường nối trạng thái từ thời điểm t = 0 đến t =1 minh họa cho mốiquan hệ giữa các trạng thái ở thời điểm t = 0 v à t = 1 Thông tin này đư ợc biểu diễntrên hình vẽ, tại thời điểm t = 1 mối quan hệ đó đ ược biểu diễn bằng các con số Tacũng làm tương tự với các thời điểm tiếp, tại mỗi thời điểm ta sẽ l ưu các con số biểudiễn mối liên hệ giữa trạng thái hiện thời v à các trạng thái trước đó

Tại thời điểm t = 2 ta thu đ ược cặp bít 112 Các từ mã có thể thu được tàithời điểm này là 002 khi đi từ trạng thái 002 đến trạng thái 002, 112 khi đi từ trạng thái

002 đến trạng thái 102 , 102 khi đi từ trạng thái 102 đến trạng thái 012 , 012 khi đi từtrạng thái 102 đến trạng thái 112

Trang 28

Trạng thái

trước

Trạng thái hiệnthời

Từ mã ra Từ mã thu

được

Khoảng cáchHamming

Ta sẽ xác định giá trị của các nhánh ma trận theo giá trị của nhánh trước đó

mà ta đi đến trạng thái hiện thời Tại thời điểm t = 1 ta đang ở 1 trong 2 trạng thái 002hoặc 102 giá trị lỗi tích luỹ tương ứng với mỗi trạng thái n ày là 0 và 2 Hình vẽ dướiđây minh họa cho kết qủa tính toán tại thời điểm t = 2 :

Hình 3.2.4.b Đồ hình lưới tại thời điểm t = 2

Từ hình vẽ ta thấy mối qua hệ giữa các trạng thái được biểu diễn rất rõ ràngqua đồ hình mắt cáo

Tại thời điểm t = 3, bây giớ đã phức tạp hơn trước một chút, từ mỗi trạngthái tại thời điểm t = 2 đều đi đến được 2 trạng thái khác Ta sẽ làm như sau, tại mỗitrạng thái ta so sánh giá trị lỗi tích luỹ tại nhánh đó và loại bỏ giá trị lớn hơn Nếu giátrị lỗi tích luỹ tại 2 nhánh khác nhau bằng nhau ta sẽ lưu lại Tại mỗi trạng thái nhánhđược giữ lại là nhánh có giá trị lỗi tích luỹ tại đó nhỏ nhất (survives) Nếu có 2 nhánh

Trang 29

chọn nhánh có giá trị nhỏ hơn gọi là add-compare-select Hình vẽ dưới cho ta thấy kếtquả tính toán tại thời điểm t = 3 :

Hình 3.2.4.c Đồ hình lưới tại thời điểm t =3Đến đây ta cần chú ý rằng trong 3 cặp bít thu đ ược có 1 lỗi, và giá trị lỗi tíchluỹ là 1, có 2 trạng thái có cùng số lỗi như vậy, ta sẽ chọn ngẫu nhiên một nhánh, đồngthời lưu lại trạng thái 11 đã không chọn ta tiếp tục đi theo nhánh trên (trạng thái 01),nếu số lỗi tăng nhiều ta sẽ quay lại trạng thái 11 đã lưu

Tại thời điểm t = 4, ta cũng lăp lại các thao tác giống như trong thời điểm t

= 3 và thu được kết quả như hình vẽ sau :

Hình 3.2.4.d Đồ hình lưới tại thời điểm t =4

Chú ý rằng tại t = 4, đường đi (in đậm) trong đồ hình lưới chỉ ra các bít thực sự

đã phát đi (không có lỗi)

Ta xét tiếp tại thời điểm t = 5 Kết quả tính toán được cho trên hình vẽ sau :

Ngày đăng: 20/05/2014, 09:21

HÌNH ẢNH LIÊN QUAN

Hình 2.1.Sơ đồ bộ mã hoá mã chập (3,2,3) Trong sơ đồ trên các có kí hiệu D biểu thị một khâu trễ. - Thiết kế modul mã hoá và giải mã mã chập
Hình 2.1. Sơ đồ bộ mã hoá mã chập (3,2,3) Trong sơ đồ trên các có kí hiệu D biểu thị một khâu trễ (Trang 6)
Hình vẽ 2.2. Sơ đồ bộ mã hoá mã chập (2,1,2) - Thiết kế modul mã hoá và giải mã mã chập
Hình v ẽ 2.2. Sơ đồ bộ mã hoá mã chập (2,1,2) (Trang 8)
Hình 2.3b. Sự chuyển trạng thái với chuỗi bit vào x = { 1011} - Thiết kế modul mã hoá và giải mã mã chập
Hình 2.3b. Sự chuyển trạng thái với chuỗi bit vào x = { 1011} (Trang 9)
Hình 2.3a.Đồ hình trạng thái của bộ mã (2,1,2) Thông thường, bộ mã hoá sẽ bắt đầu từ trạng thái 0 - Thiết kế modul mã hoá và giải mã mã chập
Hình 2.3a. Đồ hình trạng thái của bộ mã (2,1,2) Thông thường, bộ mã hoá sẽ bắt đầu từ trạng thái 0 (Trang 9)
Hình 2.4. Đồ hình cây của bộ mã hoá (2,1,2) Trong đồ hình cây, các đường nét liền biểu diễn nhánh khi có bít vào là 0, các đương nét đứt biểu diễn nhành khi có bít 1 vào - Thiết kế modul mã hoá và giải mã mã chập
Hình 2.4. Đồ hình cây của bộ mã hoá (2,1,2) Trong đồ hình cây, các đường nét liền biểu diễn nhánh khi có bít vào là 0, các đương nét đứt biểu diễn nhành khi có bít 1 vào (Trang 10)
Hình 2.5.b.Đồ hình lưới của bộ tạo mã (2,1,2) với chuỗi bít vào 1011 - Thiết kế modul mã hoá và giải mã mã chập
Hình 2.5.b. Đồ hình lưới của bộ tạo mã (2,1,2) với chuỗi bít vào 1011 (Trang 11)
Hình 2.5.a. Đồ hình lưới của bộ tạo mã (2,1,2) Các  kí  hiệu  trên  các đường  nối  có  dạng  (x/c),  ví  dụ  (1/01)  nghĩa  là  sự  chuyển trạng thái đó khi có bít vào là 1 và cặp bít ra bộ mã hoá là 01. - Thiết kế modul mã hoá và giải mã mã chập
Hình 2.5.a. Đồ hình lưới của bộ tạo mã (2,1,2) Các kí hiệu trên các đường nối có dạng (x/c), ví dụ (1/01) nghĩa là sự chuyển trạng thái đó khi có bít vào là 1 và cặp bít ra bộ mã hoá là 01 (Trang 11)
Hình 3.1.1. Sơ đồ hệ thống truyền tin sử dụng m ã chập. - Thiết kế modul mã hoá và giải mã mã chập
Hình 3.1.1. Sơ đồ hệ thống truyền tin sử dụng m ã chập (Trang 15)
Hình 3.1.2. Mô hình kênh BSC Với  kênh  BSC  giá  tr ị  a,b  được  chọn  theo  2  cách  khác  nhau - Thiết kế modul mã hoá và giải mã mã chập
Hình 3.1.2. Mô hình kênh BSC Với kênh BSC giá tr ị a,b được chọn theo 2 cách khác nhau (Trang 17)
Hình lưới. - Thiết kế modul mã hoá và giải mã mã chập
Hình l ưới (Trang 18)
Bảng sau cho thấy ma trận bit theo cách chọn này: - Thiết kế modul mã hoá và giải mã mã chập
Bảng sau cho thấy ma trận bit theo cách chọn này: (Trang 18)
Hình 3.2.1. Đồ hình lưới của bộ mã hoá (2,1,2) với 17 thời điểm - Thiết kế modul mã hoá và giải mã mã chập
Hình 3.2.1. Đồ hình lưới của bộ mã hoá (2,1,2) với 17 thời điểm (Trang 23)
Bảng chuyển đổi trạng thái d ưới đây sẽ cho thấy sự t ương ứng giữa các đường nối trên đồ hình lưới : - Thiết kế modul mã hoá và giải mã mã chập
Bảng chuy ển đổi trạng thái d ưới đây sẽ cho thấy sự t ương ứng giữa các đường nối trên đồ hình lưới : (Trang 24)
Bảng dưới đây sẽ cho thấy cặp b ít mã hoá khi có bit vào t ại một trạng thái của - Thiết kế modul mã hoá và giải mã mã chập
Bảng d ưới đây sẽ cho thấy cặp b ít mã hoá khi có bit vào t ại một trạng thái của (Trang 25)
Hình 3.2.2.Đường dẫn trong đồ hình lưới với chuỗi bít vào x Các bít vào và bít mã hoá được cho bên dưới của biểu đồ. - Thiết kế modul mã hoá và giải mã mã chập
Hình 3.2.2. Đường dẫn trong đồ hình lưới với chuỗi bít vào x Các bít vào và bít mã hoá được cho bên dưới của biểu đồ (Trang 25)
Hình 3.2.4.b. Đồ hình lưới tại thời điểm t =  2 - Thiết kế modul mã hoá và giải mã mã chập
Hình 3.2.4.b. Đồ hình lưới tại thời điểm t = 2 (Trang 28)
Hình 3.2.4.c. Đồ hình lưới tại thời điểm t = 3 Đến đây ta cần chú ý rằng trong 3 cặp bít thu đ ược  có 1 lỗi, và giá trị lỗi tích luỹ là 1, có 2 trạng thái có cùng số lỗi như vậy, ta sẽ chọn ngẫu nhiên một nhánh, đồng thời lưu lại trạng thái 11 đã không c - Thiết kế modul mã hoá và giải mã mã chập
Hình 3.2.4.c. Đồ hình lưới tại thời điểm t = 3 Đến đây ta cần chú ý rằng trong 3 cặp bít thu đ ược có 1 lỗi, và giá trị lỗi tích luỹ là 1, có 2 trạng thái có cùng số lỗi như vậy, ta sẽ chọn ngẫu nhiên một nhánh, đồng thời lưu lại trạng thái 11 đã không c (Trang 29)
Hình 3.2.4.Đồ hình lưới biểu diễn Survivor Path Bảng  sau cho thấy đầy đủ ma trận tích luỹ lỗi accumulated error metric với - Thiết kế modul mã hoá và giải mã mã chập
Hình 3.2.4. Đồ hình lưới biểu diễn Survivor Path Bảng sau cho thấy đầy đủ ma trận tích luỹ lỗi accumulated error metric với (Trang 30)
Hình 3.2.3.e. Đồ hình lưới tại thời điểm t = 5 Qua  hình  vẽ  ta  thấy  quyết định  chọn đi  theo  nhánh  trên  tại  thời  điểm  t  =3  l à đúng, và giá trị lỗi tích luỹ tại thời điểm t =5 vẫn là nhỏ nhất - Thiết kế modul mã hoá và giải mã mã chập
Hình 3.2.3.e. Đồ hình lưới tại thời điểm t = 5 Qua hình vẽ ta thấy quyết định chọn đi theo nhánh trên tại thời điểm t =3 l à đúng, và giá trị lỗi tích luỹ tại thời điểm t =5 vẫn là nhỏ nhất (Trang 30)
Bảng 3.2.4. Dãy chuyển đổi trạng thái - Thiết kế modul mã hoá và giải mã mã chập
Bảng 3.2.4. Dãy chuyển đổi trạng thái (Trang 31)
Hình 4.1.Sơ đồ khối hệ thống. - Thiết kế modul mã hoá và giải mã mã chập
Hình 4.1. Sơ đồ khối hệ thống (Trang 33)
Hình 4.2. Thủ tục bắt tay giữa các mạch và máy tính - Thiết kế modul mã hoá và giải mã mã chập
Hình 4.2. Thủ tục bắt tay giữa các mạch và máy tính (Trang 34)
Hình 4.3. Mạch mã hoá Mạch mã hoá được thiết kế sử dụng vi điều khiển ATMega16, đây là 1 dòng vi điều khiển khá phổ biến hiện nay nhất là với sinh viên - Thiết kế modul mã hoá và giải mã mã chập
Hình 4.3. Mạch mã hoá Mạch mã hoá được thiết kế sử dụng vi điều khiển ATMega16, đây là 1 dòng vi điều khiển khá phổ biến hiện nay nhất là với sinh viên (Trang 35)
Sơ đồ khối của mạch như sau: - Thiết kế modul mã hoá và giải mã mã chập
Sơ đồ kh ối của mạch như sau: (Trang 36)
Hình 4.5.Mạch giải mã - Thiết kế modul mã hoá và giải mã mã chập
Hình 4.5. Mạch giải mã (Trang 39)
Sơ đồ khối mạch giải mã : - Thiết kế modul mã hoá và giải mã mã chập
Sơ đồ kh ối mạch giải mã : (Trang 39)
Sơ đồ chi tiết của mạch được cho trong phần phụ lục 3 cuối đồ án. - Thiết kế modul mã hoá và giải mã mã chập
Sơ đồ chi tiết của mạch được cho trong phần phụ lục 3 cuối đồ án (Trang 40)
Hình 5.1.Đồ hình sửa đổi của bộ mã (2,1,2) Phương trình trạng thái tính cho mỗi nút (trừ nút đầu) nh ư sau: - Thiết kế modul mã hoá và giải mã mã chập
Hình 5.1. Đồ hình sửa đổi của bộ mã (2,1,2) Phương trình trạng thái tính cho mỗi nút (trừ nút đầu) nh ư sau: (Trang 49)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w