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

Thiết kế mạch giải mã reed solomon trên fpga

130 104 3

Đ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 130
Dung lượng 1,46 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Luận văn “Thiết kế mạch giải mã Reed-Solomon trên FPGA” bao gồm 6 chương với các nội dung chính như sau: Chương 1: Giới thiệu về lịch sử của mã hóa Reed Solomon, cái nhìn tổng quát về m

Trang 1

Đại Học Quốc Gia Tp Hồ Chí Minh

TRƯỜNG ĐẠI HỌC BÁCH KHOA

-

HOÀNG ĐĂNG HOÀI

THIẾT KẾ MẠCH GIẢI MÃ REED

SOLOMON TRÊN FPGA

Chuyên ngành : KỸ THUẬT ĐIỆN TỬ

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 10 năm 2010

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Cán bộ hướng dẫn khoa học : ThS HỒ TRUNG MỸ

Trang 3

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM KHOA ……… Độc Lập - Tự Do - Hạnh Phúc

- -oOo -

Tp HCM, ngày tháng năm

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ và tên học viên: Hoàng Đăng Hoài Phái: Nam

Ngày, tháng, năm sinh: 04/10/1982 Nơi sinh: Quảng Trị

Chuyên ngành: Kỹ thuật điện tử

MSHV: 01408369

1- TÊN ĐỀ TÀI:

THIẾT KẾ MẠCH GIẢI MÃ REED - SOLOMON TRÊN FPGA

2- NHIỆM VỤ LUẬN VĂN:

• Tìm hiểu cơ sở lý thuyết thuật toán giải mã Reed Solomon

• Tìm hiểu FPGA và ngôn ngữ mô tả phần cứng VHDL

• Thiết kế và đánh giá mã Reed Solomon trên môi trường C++

• Thiết kế và mô phỏng lõi giải mã Reed Solomon quyết định mềm trên FPGA

• Kiểm tra thiết kế trên môi trường FPGA và đánh giá kết quả

3- NGÀY GIAO NHIỆM VỤ :

4- NGÀY HOÀN THÀNH NHIỆM VỤ : 15/10/2010

5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN (Ghi đầy đủ học hàm, học vị ):

ThS HỒ TRUNG MỸ

Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua

QUẢN LÝ CHUYÊN NGÀNH

KHOA QL CHUYÊN NGÀNH

(Họ tên và chữ ký) (Họ tên và chữ ký) (Họ tên và chữ ký)

Trang 4

LỜI CẢM ƠN

Tôi xin gởi lời cảm ơn trân trọng nhất đến thầy Th.S Hồ Trung Mỹ, người đã tận tình quan tâm, hướng dẫn, giúp đỡ và tạo mọi điều kiện thuận lợi cho tôi thực hiện hoàn thành đề tài tốt nghiệp

Tôi cũng cảm ơn các thầy cô giáo giảng dạy chương trình Cao học, chuyên ngành Kỹ thuật điện tử trường Đại Học Bách Khoa TP.HCM, đã truyền đạt nhiều kiến thức quý báu trong suốt khoảng thời gian học tập và nghiên cứu

Xin gởi lời cảm ơn chân thành đến bạn bè và đồng nghiệp, những người

đã luôn bên cạnh giúp đỡ, trao đổi thông tin, kiến thức cũng như động viên tinh thần để tôi vượt qua những khó khăn và thử thách trong quá trình học tập cũng như thực hiện luận văn

Cuối cùng xin gửi đến gia đình và người thân lời cảm ơn chân thành nhất

vì đã tạo mọi điều kiện thuận lợi và giúp đỡ về vật chất, tinh thần trong suốt quá trình học tập và làm luận văn

Tp.Hồ Chí Minh, ngày 15 tháng 10 năm 2010

HOÀNG ĐĂNG HOÀI

Trang 5

LỜI CAM ĐOAN

Luận văn này là kết quả của quá trình tự nghiên cứu của bản thân từ các tài liệu, sách báo trên mạng, từ các sách và công trình đã được đề cập trong phần tài liệu tham khảo Những kết quả có được từ luận văn này là thành quả của cá nhân với sự giúp đỡ của trước hết là giáo viên trực tiếp hướng dẫn ThS Hồ Trung Mỹ, sau đó là các bạn bè, đồng nghiệp, và các bạn học viên cao học khóa

kỹ thuật điện tử 2008 Tác giả xin cam đoan luận văn này hoàn toàn không phải

là tài liệu sao chép lại bất kì một công trình nào đã có từ trước, cũng như được công bố ở bất cứ đâu

Trang 6

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Tóm Tắt Luận Văn

Nội dung luận văn bao gồm việc nghiên cứu các kiến thức về giải mã Reed Solomon đồng thời tạo đặc tả để hiện thực giải mã Reed Solomon quyết định mềm Sau đó luận văn hiện thực mã RTL cho các đặc tả giải mã Reed Solomon quyết định mềm bằng ngôn ngữ VHDL

Luận văn “Thiết kế mạch giải mã Reed-Solomon trên FPGA” bao gồm 6 chương với các nội dung chính như sau:

Chương 1: Giới thiệu về lịch sử của mã hóa Reed Solomon, cái nhìn tổng quát về

mã Reed Solomon và vấn đề nhắm đến của luận văn

Chương 2: Trình bày những kiến thức cơ bản liên quan và phương pháp để giải mã

Reed Solomon

Chương 3: Trình bày chi tiết về giải mã Reed Solomon quyết định mềm

Chương 4 : Quá trình thiết kế giải mã Reed Solomon quyết định mềm bằng ngôn

ngữ C++ và VHDL

Chương 5 : Kiểm chứng thiết kế trên FPGA

Chương 6 : Kết luận và Hướng phát triển của đề tài

Trang 7

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

……… Cán bộ hướng dẫn

(ký & ghi rõ họ tên)

Trang 8

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

MỤC LỤC

CHƯƠNG 1 ĐẶT VẤN ĐỀ 8

1.1 Giới thiệu 8

1.2 Nội dung nghiên cứu 9

1.3 Ý nghĩa đề tài 9

CHƯƠNG 2 LÝ THUYẾT THUẬT TOÁN REED-SOLOMON 10

2.1 Vị trí và vai trò của mã hóa kênh 10

2.2 Mã Reed-Solomon 11

2.2.1 Giới thiệu về trường Galois: 11

2.2.2 Những tính chất cơ bản của mã Reed-Solomon 13

2.2.3 Mã Reed-Solomon 14

CHƯƠNG 3 GIẢI MÃ REED-SOLOMON 15

3.1 Giải mã quyết định cứng và quyết định mềm 15

3.2 Thuật toán giải mã Reed-Solomon quyết định mềm 16

3.3 Thuật toán Guruswami-Sudan 19

CHƯƠNG 4 QUÁ TRÌNH THIẾT KẾ VÀ HIỆN THỰC 29

4.1 Khái quát quá trình thiết kế 29

4.1.1 Sơ đồ khối 29

4.2 Khối mã hóa Reed-Solomon 31

4.3 Giải mã Reed-Solomon quyết định mềm 32

4.3.1 Sơ đồ khối bộ giải mã Reed Solomon quyết định mềm trên FPGA 32

4.3.2 Bước gán ma trận hệ số nhân 33

4.3.2 Bước nội suy dùng thuật toán Koetter Vardy 36

4.3.2.1 Hiện thực thuật toán nội suy bằng ngôn ngữ C++ 36

4.3.2.2 Hiện thực bằng ngôn ngữ VHDL 39

Trang 9

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

4.3.3 Bước phân tích nhân tử 42

4.3.3.1 Hiện thực bằng ngôn ngữ C++ 42

4.3.3.2 Hiện thực bằng ngôn ngữ VHDL 43

CHƯƠNG 5 THIẾT KẾ MẠCH GIẢI MÃ REED-SOLOMON TRÊN FPGA 47

5.1 Lưu đồ thiết kế trên FPGA 47

5.2 Kiến trúc và công cụ phát triển FPGA của Altera 49

5.2.1 Kiến trúc FPGA của Altera 49

5.2.2 Các công cụ phát triển của Altera 52

5.3 Kiểm chứng thiết kế trên FPGA 55

5.3.1 Mô phỏng bằng Modelsim với thời gian thực 55

5.3.2 Mô phỏng bằng phần mềm SignalTap Logic Analyzer trên board DE2 57

5.3.2.1 Tổng quan về board DE2 57

5.3.2.2 Sơ lược chức năng của SignalTap Logic Analyzer 58

5.3.2.3 Mô phỏng bằng SignalTap Logic Analyzer: 60

CHƯƠNG 6 ĐÁNH GIÁ VÀ NHẬN XÉT 63

6.1 So sánh kết quả 63

6.2 Đánh giá kết quả 64

6.3 Hứơng phát triển của đề tài 65

BẢNG TÀI NGUYÊN SỬ DỤNG 65

TÀI LIỆU THAM KHẢO 66

Trang 10

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Thuật ngữ tiếng anh và từ viết tắt

BCH code A code by Bose, Chaudhuri, and Hocquenghem

Trang 11

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

DANH MỤC HÌNH

Hình 2.1: Sơ đồ khối tổng quát của một hệ thống thông tin số 10

Hình 2.2: Đa thức đặc trưng trong trường Galois 12

Hình 3-1: Cấu trúc hệ thống dùng thuật toán giải mã cứng và mềm 15

Hình 3-2: Cấu trúc thuật toán giã mã rs quyết định mềm 17

Hình 3-3: So sánh các loại giải mã DB, ML, List-decoding 20

Hình 3-4: Sơ đồ thuật toán Koetter-Vardy 21

Hình 4-1: Sơ đồ khối quá trình mã hóa và giải mã reed-solomon 29

Hình 4-2: Sơ đồ khối quá trình mã hóa và giải mã RS(7,5) 30

Hình 4-3: Kết quả mô phỏng mã hóa RS(7,5) trên C++ 31

Hình 4-4: Sơ đồ tổng quát khối giải mã Reed Solomon quyết định mềm 32

Hình 4-5: Sơ đồ chân khối giải mã Reed Solomon quyết định mềm 32

Hình 4-6: Lưu đồ máy trạng thái quá trình gán ma trận hệ số nhân 34

Hình 4-7: Kết quả mô phỏng quá trình gán ma trận hệ số nhân bằng ngôn ngữ VHDL 35

Hình 4-8: Bắt đầu quá trình nội suy RS(7,5) bằng ngôn ngữ C++ 37

Hình 4-9: Kết quả quá trình nội suy RS(7,5) bằng ngôn ngữ C++ 38

Hình 4-10: Máy trạng thái quá trình nội suy dùng thuật toán Koetter-Vardy 39

Hình 4-11: Kết quả mô phỏng quá trình nội suy 41

Hình 4-12: Quá trình phân tích nhân tử thực hiện bằng ngôn ngữ C++ 42

Hình 4-13: Lưu đồ máy trạng thái quá trình phân tích nhân tử 43

Hình 4-14: Kết quả mô phỏng ngõ ra của quá trình phân tích nhân tử 45

Hình 5-1: Lưu đồ thiết kế trên FPGA 47

Hình 5-2: Lưu đồ thiết kế trên Quartus II 49

Hình 5-3: Cấu trúc một Logic Array Block 50

Hình 5-4: Cấu trúc một phần tử logic của Altera (Logic Element ) 51

Hình 5-5: Quy trình thiết kế FPGA của Altera 52

Hình 5-6: Các kiểu nhập thiết kế 53

Hình 5-7: Pin planner 53

Hình 5-8: Quartus II programmer 54

Hình 5-9: Tín hiệu ngõ vào của mô phỏng thời gian thực 55

Hình 5-10: Tín hiệu ngõ ra của mô phỏng thời gian thực 56

Hình 5-11: Board DE2 của Altera 57

Hình 5-12: Sơ đồ các khối chức năng trên board DE2 58

Hình 5-13: Kết nối SignalTap vào FPGA để hiển thị kết quả thiết kế 59

Hình 5-14: Sơ đồ khối bên trong SignalTap 60

Hình 5-15: Sơ đồ khối nhúng trong FPGA 60

Hình 5-16: Kết quả ngõ vào hiển thị trên SignalTap 61

Hình 5-17: Kết quả ngõ vào hiển thị trên SignalTap 62

Trang 12

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

DANH MỤC BẢNG

Bảng 4-1: Mô tả các tín hiệu ngõ vào và ngõ ra khối giải mã Reed Solomon 33 Bảng 4-2: Các trạng thái quá trình nội suy dùng thuật toán Koetter-Vardy 40 Bảng 6-1: So sánh khả năng sửa sai của các thuật toán giải mã RS 64

Trang 13

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

THIẾT KẾ MẠCH GIẢI MÃ REED-SOLOMON TRÊN FPGA CHƯƠNG 1 ĐẶT VẤN ĐỀ

1.1 Giới thiệu

Vào năm 1960, Irving S Reed và Gustave Solomon công bố một bài báo trên

tạp chí “Journal of the Society for Industrial and Applied Mathematics” Bài báo này

đã mô tả một loại mã hóa sửa sai mới mà ngày nay gọi là mã Reed-Solomon Mã hóa này là một loại mã sửa sai rất mạnh và tiện ích Ứng dụng đầu tiên của mã Reed-Solomon (RS) vào năm 1982, nó được dùng trong sản xuất hàng loạt sản phẩm đĩa nhỏ gọn với thuật toán giải mã RS hiệu quả được phát triển bởi Elwyn Berlekamp và James Massey năm 1969 Ngày nay mã Reed-Solomon (RS) là mã khối sửa sai phổ biến với một loạt các ứng dụng như trong hệ thống lưu trữ (CD, DVD) và trong hệ thống giao tiếp kỹ thuật số, từ phương tiện truyền thông kỹ thuật số đến wireless, truyền thông vệ tinh và vũ trụ [1],[2]

Mã RS (n, k) truyền thống với thuật toán quyết định cứng, chẳng hạn như thuật toán Berlekamp - Massey, và các thuật toán Euclid chỉ có thể sửa lỗi đến t = [dmin / 2 ], trong đó dmin = n - k + 1 là khoảng cách Hamming tối thiểu của mã Gần đây, Guruswami- Sudan (GS) đã đạt được một bước đột phá trong giải mã RS quyết định cứng bằng cách sử dụng một kỹ thuật đại số nội suy Thuật toán GS có thể sửa n -

n

k 1)

( − lỗi Sau đó, thuật toán đại số GS đã được mở rộng để thành thuật toán giải mã quyết định mềm (ASD) bằng cách kết hợp các thông tin xác suất từ kênh truyền vào và quá trình nội suy Với thuật toán ASD có thể đạt được độ lợi tốt hơn thuật toán giải mã quyết định cứng

Trang 14

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

So với giải mã quyết định cứng, giải mã quyết định mềm cung cấp khả năng sửa lỗi cao hơn Trong số các thuật toán giải mã quyết định mềm, Thuật toán Koetter-Vardy (KV) có thể đạt được độ lợi và tốc độ bit truyền cao hơn Theo [3] thì độ lợi của thuật toán giải mã RS quyết định mềm cao hơn từ 2 dB đến 6 dB với nhiễu Gauss trên

kênh truyền fading Rayleigh

Trong luận văn này, người thực hiện sẽ tập trung nghiên cứu và hiện thực thuật toán giải mã Reed-Solomon quyết định mềm trên FPGA

1.2 Nội dung nghiên cứu

ƒ Tìm hiểu lý thuyết thuật toán Reed-Solomon

ƒ Mô phỏng giải mã trên C++

ƒ Thiết kế mạch giải mã Reed-Solomon quyết định mềm trên FPGA

ƒ Viết testbench kiểm tra mạch giải mã Reed-Solomon

ƒ Hiện thực thiết kế trên kit DE2 của Altera

ƒ So sánh kết quả mô phỏng trên C++ và thực hiện trên FPGA, nhận xét và đánh giá kết quả

1.3 Ý nghĩa đề tài

Đề tài đi theo hướng ứng dụng thuật toán Reed-Solomon, từ đó thiết kế lõi IP giải mã Reed-Solomon quyết định mềm và cài đặt trên FPGA Kết quả của đề tài có thể được ứng dụng rộng rải trong thương mại như dùng cho NAND flash, đĩa Blu-ray, trong kỹ thuật truyền thông như DSL và WiMAX …

Trang 15

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

CHƯƠNG 2 LÝ THUYẾT THUẬT TOÁN REED-SOLOMON 2.1 Vị trí và vai trò của mã hóa kênh

Hình 2.1 Trình bày sơ đồ khối tổng quát của một hệ thống thông tin số

Hình 2.1: Sơ đồ khối tổng quát của một hệ thống thông tin số

Từ Hình 2.1 ta có thể thấy được vị trí của mã hóa kênh (channel coding) trong

hệ thống thông tin số Mã hóa có nhiều loại: mã hóa nguồn, mã hóa bảo mật và mã hóa kênh

ƒ Mã hóa nguồn (source coding): mục đích là để làm giảm thiểu độ dư của tin, nghĩa là loại bỏ những thông tin không cần thiết để truyền tin nhanh và phía thu

dễ nhận

ƒ Mã hóa bảo mật (encrypt): cũng như tên gọi, mục đích là để chống lại sự ăn cắp hay làm nhiễu, làm sai lệch thông tin của các yếu tố bên ngoài tại bất kỳ một vị trí trên đường truyền

Source

Format Source

encode Encrypt

plex Modu-late

Multi- quency spread

Fre-Multiple access

mitter

Trans-Format Source

decode Decrypt

quency despread

Fre-Channel encode

Channel decode

Demulti -plex

Demodu -late

Multiple access

ceiver Sink

Trang 16

Re-Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

ƒ Mã hóa kênh: mục đích là làm giảm thiểu xác suất sai thông tin khi truyền qua kênh truyền

Việc giảm thiểu xác suất sai dựa vào việc phát hiện sai và sửa sai có thể dẫn đến việc giảm tỉ số tín hiệu trên nhiễu (SNR) cần thiết, nhờ đó giảm được công suất, tiết kiệm năng lượng Việc sửa sai hữu hiệu với tỉ số SNR nhỏ sẽ làm thuận lợi cho việc bảo mật, trải phổ và tăng độ chính xác của thông tin nhận đó mục đích quan trọng của truyền thông

2.2 Mã Reed-Solomon

2.2.1 Giới thiệu về trường Galois:

Mã Reed-Solomon dựa trên một lĩnh vực đặc biệt của toán được biết đến là trường hoặc là các trường hữu hạn Một trường hữu hạn có thuộc tính là các phép tính

số học (+,-, x, / ) giữa các phần tử của trường luôn có một kết quả trong trường đó Bộ

mã hoá Reed-Solomon hoặc bộ giải mã cần phải thực hiện các phép tính số học Các hoạt động này đòi hỏi đặc biệt về phần cứng hay phần mềm chức năng để thực hiện

Trong trường Galois tương ứng với mỗi độ rộng của trường thì có một đa thức đặc trưng mặc định

Trang 17

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Độ rộng của trường Đa thức mặc định Biểu diễn dạng thập phân

Hình 2.2: Đa thức đặc trưng trong trường Galois

Các phép tính trong trường Galois sẽ dựa vào các đa thức đặc trưng Ví dụ với m=3, thì đa thức đặc trưng sẽ là f(x) = 1 + x + x3, từ đa thức đặc trưng trong trường GF(23) ta sẽ có x3= 1 + x Chúng ta sẽ tính được các phần tử khác trong trường GF(23) và biểu diễn ở các dạng khác nhau như sau:

Trang 18

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

2.2.2 Những tính chất cơ bản của mã Reed-Solomon

Có nhiều cách định nghĩa mã Reed-Solomon Định nghĩa ban đầu về mã Reed-Solomon tập trung vào việc tính toán đa thức trên trường hữu hạn Có cách khác tốt hơn để khảo sát mã Reed-Solomon là phép biến đổi Fourier trên trường Galois Cuối cùng, mã Reed-Solomon có thể xem như là một mã mở rộng của mã BCH

Trang 19

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

2.2.3 Mã Reed-Solomon

Theo [4] mã Reed-Solomon RS(n,k) mã hóa k ký tự của tin nhắn trong trường hữu hạn q phần tử, GF(q), tạo thành một từ mã của n ≤ q ký tự tin trong trường GF(q)

Mã hóa này là một ánh xạ tích chập của một đa thức tin

f(x) = f0 + f1 + f2x2 +…+ fk−1xk− 1, Trong đó fi là k phần tử của tin nhắn Kết hợp đa thức tin f(x) và n phần tử riêng {α , 1 α , , 2 α } của trường GF(q), thì từ mã của n

RS được tạo thành như sau: C = (f(α1), f(α2), , f(α )) n

Thông thường, n = q-1 và các phần tử tích chập là q-1 phần tử khác 0 thuộc GF(q)

Ví dụ 2.2 : Theo [5, p.347], RS(15,7) là mã hóa trên trường GF(24) Với tin nhắn là f(x)= α +x +α x3 2+ α x4 3+α x5 4+α x6 5+α x7 6 được mã hóa với các phần tử thiết lập

Trang 20

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

CHƯƠNG 3 GIẢI MÃ REED-SOLOMON

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

Những phương pháp truyền thống được biết đến như là phương pháp giải mã cứng (Hard decision) Phương pháp sử dụng thông tin trợ giúp gọi là giải mã mềm (Soft decision) Chuỗi tin truyền sau khi qua kênh truyền và được giải điều chế (demodulate) thì sẽ đến bộ giải mã Tín hiệu tại ngõ ra của bộ giải điều chế và ngõ vào của bộ giải mã sẽ quyết định quá trình giải mã là “cứng” hay “mềm” Theo [4] cấu trúc

hệ thống giải mã Reed-Solomon như sau:

Hình 3-1: Cấu trúc hệ thống dùng thuật toán giải mã cứng và mềm

Nếu tín hiệu đến bộ giải điều chế và được bộ giải điều chế ra quyết định từng bit

là bit 0 hay bit 1 thì gọi là quyết định cứng Hãy xét một hệ thống sử dụng tín hiệu

đường dây là bipolar NRZ với biên độ là ± 1V Nếu giá trị nhận được là 0.8 V hoặc 0.03 V thì đều được quyết định là bit 1 Còn nếu giá trị nhận được là -0.7 V hoặc -0.02

V thì đều được quyết định là bit 0 Như vậy ta nhận thấy mặt trái của phương pháp quyết định cứng đó là dù là 0.8V hay 0.03V thì bộ giải mã cũng nhận được bit 1 dù giá trị 0.8V có xác suất đúng là bit 1 cao hơn nhiều so với 0.03V Như vậy, bộ giải mã sẽ

không có một thông tin nào về “độ chính xác” của quyết định từ bộ giải điều chế Việc

này sẽ làm cho chất lượng của việc giải mã không chỉ phụ thuộc vào bộ giải mã mà còn

Trang 21

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ phụ thuộc vào bộ giải điều chế và chất lượng cũng khó cao Tuy nhiên quyết định cứng

sẽ làm cho việc giải mã dễ dàng hơn rất nhiều

Nếu bộ giải điều chế không tự quyết định xem giá trị lấy mẫu nhận được là bit 0 hay bit 1 mà đưa thẳng cho bộ giải mã để bộ giải mã có đầy đủ thông tin về bit sau khi

đã qua kênh truyền thì với cấu trúc phù hợp bộ giải mã sẽ cho các quyết định chính xác hơn, tức là chất lượng cao hơn Bộ giải mã sẽ tính toán các giá trị để xét độ tin cậy của từng giá trị và cuối cùng mới quyết định Điều này làm giảm khả năng có thể xảy ra lỗi

và độ lợi mã tổng cộng có thể tăng so với giải mã cứng đối với các môi trường có SNR thấp Tuy nhiên, bộ giải mã mềm sẽ có độ phức tạp cao hơn rất nhiều so với bộ giải mã cứng

Với khả năng tính toán của các chip vi xử lý hay các chip DSP cùng với khối lượng bộ nhớ đồ sộ có thể sử dụng ngày nay thì sự phức tạp của giải mã mềm không còn là vấn đề lớn Vì thế xu hướng hiện nay trên thế giới là sử dụng bộ giải mã mềm, thậm chí người ta còn đặt vấn đề là giải mã lại cho các loại mã khối và mã tích chập truyền thống bằng phương pháp giải mã mềm

Giải mã Reed-Solomon quyết định cứng có nhiều thuật toán như: thuật toán Berlekamp - Massey, và các thuật toán Euclid chỉ có thể sửa lỗi đến t = [dmin / 2 ], trong đó dmin = n - k + 1 là khoảng cách Hamming tối thiểu của mã Gần đây, có một thuật toán giải mã Reed-Solomon quyết định mềm đó là thuật toán Koetter-Vardy[3]

3.2 Thuật toán giải mã Reed-Solomon quyết định mềm

Vào năm 1996, Sudan giới thiệu một loại thuật toán mới cho giải mã Reed Solomon quyết định cứng Trước đó, các thuật toán giải mã dựa trên phân tích tổ hợp đặc trưng (syndrome) Điều này dẫn đến một thuật toán mới cung cấp danh sách các giải mã ngoài bán kính sửa lỗi của (n-k)/2 cho các tỷ lệ mã RS thấp Một vài năm sau

đó, Sudan và Guruswami mở rộng thuật toán và cung cấp một khả năng sửa lỗi tốt hơn

Trang 22

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ với các tỷ lệ mã khác nhau Sau đó Koetter và Vardy tổng quát nó một bước xa hơn để tận dụng lợi thế các thông tin mềm từ kênh truyền Đó là thuật toán đại số giải mã Reed-Solomon quyết định mềm sẽ trình bày ở đây Thuật toán có hai phần chính bao gồm quá trình nội suy và phân tích nhân tử của đa thức hai chiều (Trên trường hữu hạn)

Thuật toán giải mã quyết định mềm Koetter-Vardy được phát triển từ thuật toán Guruswami-Sudan quyết định cứng Theo [1],[4], thuật toán quyết định mềm

gồm có các bước sau: gán thông số cho ma trận hệ số nhân, quá trình nội suy, phân tích nhân tử và chọn từ mã ngõ ra

Hình 3-2: Cấu trúc thuật toán giã mã RS quyết định mềm

Bước gán ma trận hệ số nhân: dùng để tính theo thông tin tin cậy từ kênh

truyền Những thông tin đáng tin cậy như là một ma trận Π với độ tin cậy 2q x n Mỗi phần tử π của i, j Π có xác suất truyền ký tự là σ và xác suất nhận ký tự là i θ : j

Trang 23

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

M = [λ Π]

Bước nội suy: Tính đa thức nội suy 2 biến Q(x,y) theo thông số mi, j từ ma trận

M, tại điểm nội suy (xj,yj) với hệ số nhân mi, j ≠0 thì đa thức Q(x,y) = 0 Bậc của đa thức Q(x,y) nằm trong khoảng (1, k-1)

Bước phân tích nhân tử: Xác định tất cả các nhân tử của đa thức Q(x,y) ở dạng

(y- f(x)) với bậc của f(x) < k Mỗi đa thức f(x) tương ứng với một đa thức tin trong danh sách

Thuật toán phân tích nhân tử:

Bắt đầu: i = 0 Tái tạo (Q(x,y),i) {

Tìm số tự nhiên không âm v, sao cho xv được chia bởi Q(x,y) F1: Q(x,y) = Q(x,y)/ xv

Trang 24

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Gọi là tái cấu trúc (Q^ (x, y), i + 1) }

Trong thuật toán trên, mỗi k bit ngõ ra của vector Φ = (Φ[0], Φ[1],…,Φ k[ −1]) hình thành bậc của đa thức k – 1 Bậc tối đa y của Q(x,y) là t, thuật toán này sẽ tính t

và những vector Φ Những vector Φ tương ứng với t đa thức mà nó chứa tất cả các đa thức tin trong một tập hợp

Bước chọn từ mã ngõ ra: chọn từ mã ngõ ra bằng cách dùng thông tin mi, j từ

ma hệ số nhân hoặc dùng khoảng cách Hamming từ từ mã của thuật toán quyết định cứng

Thuật toán giải mã Reed Solomon quyết định mềm được xây dựng dựa trên

thuật toán Guruswami-Sudan nên trước tiên chúng ta tìm hiểu cơ bản về thuật toán

này

3.3 Thuật toán Guruswami-Sudan

Trước đây, các loại giải mã dựa trên sự phân tích của syndrome Cách tiếp cận mới Sudan bằng cách giải quyết vấn đề dựa trên giải thích bằng hình học Phương pháp này không chỉ mở ra cách thức mới để xem xét vấn đề giải mã Reed- Solomon, mà còn cung cấp một phương pháp giải mã rất mạnh là danh sách giải mã (list-decoding)

Theo [5], Thuật toán danh sách giải mã (list-decoding) cung cấp một danh sách của tất cả các từ mã với khoảng cách tm của các từ thu được có khoảng cách r Trong khi với loại giải mã khoảng cách giới hạn (Bounded Distance (DB) decoding) và thuật toán khả năng giải mã lơn nhất (Maximum likelihood (ML) decoding) có thể sửa được với t = (n – k + 1)/2 lỗi, thuật toán Guruswami-Sudan có thể sửa được với khoảng cách

tGS = n - n(k−1)lỗi Như vậy thuật toán GS có khả năng sửa lỗi tốt hơn cho các loại

tỷ lệ mã khác nhau

Trang 25

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Hình 3-3: So sánh các loại giải mã DB, ML, List-decoding

Gỉa sử từ mã thu được từ mã hóa RS truyền qua kênh truyền là (β1,β2,…,β ) nvới các từ mã thiết lập là (α1,α2,…,α ) Theo [2], thuật toán Guruswami-Sudan gồm n

có hai bước chính để thực hiện giải mã:

- Bước nội suy: Dùng để tạo thành một đa thức giải mã nội suy 2 biến Q(x,y) trong trường F[x,y]:

j

ij x y q

,

Q(x,y) bằng 0 ở các hệ số nhân m tại (α ,i β ) với i = 1, 2,…n với bậc trọng số nằm itrong giới hạn (1, k-1)

- Bước phân tích nhân tử: là tìm tất cả các nhân tử của Q(x,y) có dạng (y -

fk(x)) và đưa vào danh sách từ mã ngõ ra

Trang 26

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

3.4 Thuật toán Koetter-Vardy:

Thuật toán quyết giải mã RS định mềm Koetter-Vardy là thuật toán mở rộng của thuật toán Guruswami Sudan cho mã Reed Solomon

Theo [4], Phía thu sẽ nhận được thông tin mềm từ kênh truyền của ma trận độ tin cậy Π có kích thước q x n Mổi phần tử (xi, y j) trong ma trận Π sẽ đáp ứng một xác suất cho phần tử y j truyền đi trong thời gian đáp ứng của phần tử cho trước xi

Do đó ma trận Π sẽ hiển thị xác suất của tất cả các điểm Các bước của thuật toán Koetter-Vardy như sau:

Hình 3-4: Sơ đồ thuật toán Koetter-Vardy

1 Bước quyết định mềm cuối cùng (soft decision front end): Sử dụng thông tin

độ tin cậy mềm để xác định được số nguyên dương cho mỗi điểm Như vậy, các trọng số nguyên dương là tỉ lệ với xác suất tại mỗi điểm Từ đó tạo thành ma trận hệ số nhân M = [λ Π]

2 Bước nội suy: Tìm đa thức nội suy 2 biến Q(x,y) nhỏ nhất mà nó thỏa tất cả các

điểm trong ma trận hệ số nhân Với bậc của các biến x, y nằm trong khoảng (1, k-1)

3 Bước phân tích nhân tử: Phân tích đa thức nội suy Q(x,y) thành các nhân tử có

dạng (y - fk(x)), với bậc của fk(x) < k Ngõ ra của thuật toán là danh sách các từ

mã f(x) là nhân tử của Sau đó dùng thông tin mềm từ ma trận M sẽ chọn lựa từ

mã ngõ ra

Trang 27

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Trong số ba thành phần chính của thuật toán, các tính toán nhiều nhất là bước nội suy đa thức 2 biến Q(x,y) Và phần này sẽ được áp dụng trong đề tài Theo [5,p324], bước phân tích thành nhân tử thì thuật toán Roth-Ruckenstein sẽ thực hiện tốt hơn so với thuật toán Koetter-Vardy

3.4.1 Bước nội suy đa thức Q(x,y) của thuật toán Koetter-Vardy:

Theo [3], thuật toán thực hiện như sau:

2

1

, ,

)1(8)1(

−+

−+

k

k C k

H

,

là công thức tính dạo hàm của Hasse:

Đặt J1 là tập hợp các phần tử của l khác 0 Tất cả các phần tử l∉ J1 thì đa thức cập nhật là không thay đổi

Trang 28

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Qc+1,l(x,y) = Qc,l(x,y)

Cho l∈ J1 chúng ta tính đa thức có bậc nhỏ nhất:

lmin = arg min { Q c,l (x,y): l∈ J1}

δ min = δ c ,lmin

Qmin (x,y) = Qc ,lmin(x,y)

Nếu l lmin thì đa thức cập nhật được tính như sau:

Qc+1,l(x,y) = δ min Qc,l(x,y) + δ c,l Qmin (x,y)

Nếu l = lmin thì đa thức cập nhật được tính như sau:

Qc+1 l,min(x,y) = δ minx Qmin (x,y) - Du c + c1v+ 1

H [x Qmin (x,y)]|(αc+1,βc+1) Qmin (x,y) Kết thúc quá trình nội suy tại những điểm mi, j ≠ 0, sẽ chọn đa thức có bậc nhỏ nhất

Q(x,y) = min {QC,l(x,y) : 0 ≤ l ≤ L}

VD 3.1: Theo VD 7.20 của [5,p346] về thuật toán Koetter-Vardy như sau:

(α ,5 α ,2 α ,0 α ,4 α ,3 α ,2 α ) 1

Cho các cặp điểm (1, α ), (3 α ,1 α ), (4 α ,2 α ), (5 α ,3 α ) và (7 α ,4 α ) hoạt động trên 8

trường GF(24) với 1 + α + 1 α = 0 Dùng thuật toán Koetter-Vardy tìm đa thức nội 4

suy Q(x,y) với hệ số nhân m =1 và số đa thức nội suy L = 4

Đầu tiên khởi tạo giá trị ban đầu cho các đa thức nội suy:

G0: g0(x,y) = 1, g1(x,y) = y, g2(x,y) = y2, g3(x,y) = y3, g4(x,y) = y4

Bước nội suy 1:

Trang 29

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Trang 30

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ G4: g0 = (α + 2 α x + 7 α x9 2 + α x14 3) + α y, g1 = (3 α x + 10 α x7 2) + (α + 7 α x)y, g2 4

Cuối cùng ta có đa thức nội suy ngõ ra 2 biến là:

Q0(x,y) = g1(x,y) = (α + 9 α x + 8 α x9 2 + α x6 3) + (α + x)y 12

3.5 Thuật toán Roth-Ruckenstein:

Thuật toán Roth-Ruckenstein là một phương pháp nhanh để phân tích nhân tử từ

đa thức nội suy Q(x,y) với bậc của f(x) < k Thuật toán sẽ trình bày dựa theo [7]

Chúng ta bắt đầu với đa thức f(x):

f(x) = f0 + f1x + f2x2 +…

Chúng ta gọi f(x) là y-root của Q(x,y) nếu thỏa điều kiện Q(x,f(x)) = 0

Thay x bằng 0 ta có: f(0) = f0 và Q(0, f0) = 0 Có nghĩa f0 là y-root của Q(x,y) Gọi <<Q(x,y)>> là đa thức chuẩn hóa của Q(x,y) thì ta có:

<<Q(x,y)>> = Q(x,y) / xm,

Với m là số tự nhiên sao cho xm là nhân tử của Q(x,y), ký hiệu là xm|Q(x,y)

Trang 31

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Hệ số đầu tiên f0 cũng là y-root của <<Q(0,y)>>:

(y - f0) | Q(0,y) ⇔ (y - f0) | xm<<Q(0,y)>> ⇔ (y - f0) | <<Q(0,y)>>

Để tìm f1 thì chúng ta thực hiện tiếp như sau Ta có :

Quá trình tìm kiếm theo hình cây, nên kết quả tìm kiếm sẽ có nhiều hàm f(x)

Và các đa thức f(x) sẽ đưa vào danh sách từ mã ngõ ra

£ = {f1(x), f2(x), …, fL(x)}

Đa thức f(x) nào đi qua nhiều điểm mi, j ≠ 0 của ma trận M nhất thì sẽ chọn là

từ mã ngõ ra Và cũng là kết thúc thuật toán giải mã Reed Solomon quyết định mềm

VD 3.2: Theo VD 7.24 của [5,p354] về thuật toán phân tích nhân tử của

Roth-Ruckenstein như sau:

Cho đa thức 2 biến :

Q(x,y) = ( 4 + 4x2+ 2x3+3x4+ x5 + 3x6+ 4x7) + ( 1 +2x + 2x2+ 3x4+ 3x6)y + (1 +x + 2x2+ x3+ x4)y2+ (4 +2x)y3

Trên trường GF(5) với độ sâu tìm kiếm là D = 2

- Tại nút 1:

Q(0,y) = 4 +y + y2+ y3

Có gốc là: {1,4}, là nghiệm của đa thức Q(0,y)

Chọn gốc là 1, thì đa thức tại nút 2 là:

Trang 32

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

- Tại nút 5, đa thức Q(x,0) ≠ 0, mà bậc của cây tìm kiếm là 3 lớn hơn D=2 Do

đó ngõ ra nhánh này không có đa thức p(x)

Trở lại nút 1, gốc lựa chọn là 4 và nút 6 có đa thức là:

Trang 33

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Trang 34

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

CHƯƠNG 4 QUÁ TRÌNH THIẾT KẾ VÀ HIỆN THỰC

4.1 Khái quát quá trình thiết kế

4.1.1 Sơ đồ khối

Hình 4-1: Sơ đồ khối quá trình mã hóa và giải mã Reed-Solomon

Sơ đồ hệ thống được biểu diễn như hình Dữ liệu sẽ được mã hóa bằng khối mã hóa Reed-Solomon encoder Các bit sau khi được mã hóa (codes bits) sẽ tuần tự đi qua kênh truyền có nhiễu Khối Reed-Solomon decoder sẽ giải mã các bit thu được đồng thời sửa lỗi Các bit sau khi được giải mã sẽ gần giống nhất có thể với tín hiệu gốc ban đầu

Trong đề tài này sẽ giới thiệu về quá trình thiết kế mạch giải mã RS(7,5) trên trường GF(23) Với tin nhắn ngõ vào f = (1,7,0,7,6) tương ứng là hàm số f(x) =

Trang 35

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Ta chọn hệ số nhân là λ = 2.99 thì giá trị lớn nhất của m j = 2 Từ ma trận M,

dùng thuật toán Koetter Vardy để nội suy (interpolation) ra hàm số 2 biến Q(x,y) Sau

đó dùng thuật toán Roth-Ruckenstein để phân tích hàm Q(x,y) thành nhân tử

(Factorization) có dạng y – f(x) Từ đó sẽ tìm ra f(x) lúc đầu Quá trình được mô tả qua hình sau:

Hình 4-2: Sơ đồ khối quá trình mã hóa và giải mã RS(7,5)

Trang 36

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

4.2 Khối mã hóa Reed-Solomon

Quá trình mã hóa RS(7,5) trên trường GF(23) như sau: giả sử tín hiệu vào là m

= (1, 7, 0, 7, 6) thì sẽ tạo thành đa thức tin f(x) = α +0 α x +5 α x7 2+ α x5 3+α x4 4 kết hợp với tập hợp thiết lập cho trước là {1, α ,α ,2 α , 3 α ,4 α ,5 α } thì từ mã C sẽ tạo 6

Kết quả mô phỏng bằng C++ như sau:

Hình 4-3: Kết quả mô phỏng mã hóa RS(7,5) trên C++

Trang 37

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

4.3 Giải mã Reed-Solomon quyết định mềm

4.3.1 Sơ đồ khối bộ giải mã Reed Solomon quyết định mềm trên FPGA

Hình 4-4: Sơ đồ tổng quát khối giải mã Reed Solomon quyết định mềm

Các tín hiệu ngõ vào và ngõ ra:

Hình 4-5: Sơ đồ chân khối giải mã Reed Solomon quyết định mềm

Trang 38

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

o_data_en Dữ liệu ra hợp lệ Output

Bảng 4-1: Mô tả các tín hiệu ngõ vào và ngõ ra khối giải mã Reed Solomon 4.3.2 Bước gán ma trận hệ số nhân

Phía thu sẽ nhận từ mã C = {f(x1), f(x2), f(xn)} và sai số trên kênh truyền e(r)

để gán vào ma trận M Tại vị trí sai số sẽ gán với xác suất thu là 1, các vị trí khác là 2 Trong trường hợp này : C ={α ,5 α ,2 α ,0 α ,4 α ,3 α ,2 α }, e(r) = {1 α ,0,0,0,0, 3 α ,0} 4

Đổi qua số tự nhiên C = (7,4,1,6,3,4,2), e(r) = (3,0,0,0,0,6,0)

Từ C và e(r) tạo thành ma trận M (p x q) như hình dưới, với giá trị:

Cột thứ 1: m(0,4) = 1 là vị trí thứ 0 của e(r) là α , m(0,6) = 1 do gán vị trí thứ 1 của 3

Trang 39

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ

Cột thứ 7: m(6,2) = 2 do gán vị trí thứ 6 của C là α 1

Kết quả là ma trận M như sau:

4.3.2.1 Hiện thực bằng ngôn ngữ VHDL

Lưu đồ máy trạng thái quá trình gán ma trận hệ số nhân:

Hình 4-6: Lưu đồ máy trạng thái quá trình gán ma trận hệ số nhân

Trang 40

Thiết kế mạch giải mã Reed-Solomon trên FPGA GVHD: ThS Hồ Trung Mỹ Bước gán ma trận hệ số nhân gồm có 2 trạng thái, là trạng thái:

RS_idle_st : Trạng thái chờ

RS_assign_M_st : Trạng thái gán thông số cho ma trận M

Lúc đầu mạch giải mã RS ở trạng thái chờ RS_idle_st, nếu tín hiệu i_rst_n =

‘1’ và i_ce = '1' thì lõi bắt đầu ghi dữ liệu ở ngõ vào i_data và sai số i_error vào thanh ghi dữ liệu reg_c và thanh ghi sai số reg_e theo tín hiệu đồng bộ i_load Khi quá trình ghi dữ liệu vào thanh ghi kết thúc thì tín hiệu RS_assign_en = '1' và máy trạng thái bắt đầu chuyển từ trạng thái chờ RS_idle_st sang trạng thái RS_assign_M_st để gán thông số từ thanh ghi dữ liệu reg_c và thanh ghi sai số reg_e cho ma trận M Nếu tín hiệu i_rst_n = ‘0’, thì ở bất kỳ trạng thái nào của lõi cũng sẽ chuyển về trạng thái chờ

RS_idle_st

Kết quả mô phỏng ngôn ngữ VHDL bằng Modelsim như sau:

Hình 4-7 : Kết quả mô phỏng quá trình gán ma trận hệ số nhân bằng ngôn ngữ VHDL

Ngày đăng: 15/02/2021, 07:37

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w