Tải bản đầy đủ (.pdf) (130 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.46 MB, 130 trang )

Đạ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


CƠNG TRÌNH ĐƯỢC HỒ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Ỹ

Cán bộ chấm nhận xét 1 :...................................................................................
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)

Cán bộ chấm nhận xét 2 :...................................................................................
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)

Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN
THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày . . . . . tháng . . . . năm . . . . .




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
Ngày, tháng, năm sinh: 04/10/1982

Phái: Nam
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 tố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.
CÁN BỘ HƯỚNG DẪN

CHỦ NHIỆM BỘ MÔN

KHOA QL CHUYÊN NGÀNH

QUẢN LÝ CHUYÊN NGÀNH
(Họ tên và chữ ký)

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

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


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 hồ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
HỒNG ĐĂNG HOÀI


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.


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 qt 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

Luận văn thạc sĩ

Trang 1

HVTH: Hoàng Đăng Hoài


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)

Luận văn thạc sĩ

Trang 2

HVTH: Hoàng Đăng Hoài


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 tốn Guruswami-Sudan ........................................................................................ 19
CHƯƠNG 4. Q 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 tố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

Luận văn thạc sĩ

Trang 3

HVTH: Hoàng Đăng Hoài



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

Luận văn thạc sĩ

Trang 4


HVTH: Hoàng Đăng Hoài


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
ASD

Algebraic Soft-decision Decoding

BCH code

A code by Bose, Chaudhuri, and Hocquenghem

FPGA

Field Programmable Gate Array

DB

Bounded Distance

DSL

Digital Subscriber Line

GF


Galois Field

GS

Guruswami Sudan

IP

Intellectual Property

KV

Koetter-Vardy

ML

Maximum likelihood

RTL

Register Transfer Level

RS

Reed Solomon

STLA

SignalTap Logic Analyzer


Luận văn thạc sĩ

Trang 5

HVTH: Hoàng Đăng Hoài


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 qt 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 tố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 tốn Koetter-Vardy.............................................................................. 21
Hình 4-1: Sơ đồ khối q trình mã hóa và giải mã reed-solomon .......................................... 29
Hình 4-2: Sơ đồ khối q 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 q 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 q trình nội suy RS(7,5) bằng ngơn ngữ C++ ......................................... 37
Hình 4-9: Kết quả q 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 tốn Koetter-Vardy. ....................... 39
Hình 4-11: Kết quả mơ phỏng q trình nội suy .................................................................... 41

Hình 4-12: Q 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 q 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

Luận văn thạc sĩ

Trang 6

HVTH: Hoàng Đăng Hoài


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

Luận văn thạc sĩ

Trang 7

HVTH: Hoàng Đăng Hoài


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ã ReedSolomon (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 tốn Euclid chỉ có thể sửa lỗi đến t = [d min / 2 ],
trong đó d min = 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 tốn GS có thể sửa n (k − 1)n lỗi. Sau đó, thuật tố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 tốn ASD có thể đạt được độ lợi tốt hơn thuật toán giải mã
quyết định cứng.

Luận văn thạc sĩ

Trang 8

HVTH: Hoàng Đăng Hoài


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 tốn KoetterVardy (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 tố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 tố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 …

Luận văn thạc sĩ

Trang 9

HVTH: Hoàng Đăng Hoài


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 TỐ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ố.

Source


Sink

Format

Source
encode

Format

Source
decode

Encrypt

Channel
encode

Multiplex

Modulate

Frequency
spread

Decrypt

Channel
decode

Demulti

-plex

Demodu
-late

Frequency
despread

Multiple
access

Multiple
access

Transmitter

Receiver

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 ngồi tại bất kỳ một vị
trí trên đường truyền.
Luận văn thạc sĩ


Trang 10

HVTH: Hoàng Đăng Hoài


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 ln 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.

Luận văn thạc sĩ

Trang 11


HVTH: Hoàng Đăng Hoài


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

3

x3 + x + 1

11

4

x4 + x + 1

19

5

x5 + x2 + 1


37

6

x6 + x + 1

67

7

x7 + x3 + 1

137

8

x8+ x4 + x3 + x2 + 1

258

9

x9 + x4 + 1

529

10

x 10 + x 3 + 1


1033

11

x 11 + x 2 + 1

2053

12

x 12 + x 6 + x 4 + 1

4179

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 + x 3 , từ đa thức đặc trưng trong
trường GF( 2 3 ) ta sẽ có x 3 = 1 + x. Chúng ta sẽ tính được các phần tử khác trong
trường GF( 2 3 ) và biểu diễn ở các dạng khác nhau như sau:

Luận văn thạc sĩ

Trang 12

HVTH: Hoàng Đăng Hoài


Thiết kế mạch giải mã Reed-Solomon trên FPGA

Trường Galois


GVHD: ThS. Hồ Trung Mỹ

Số nhị phân

Số thập phân

0



000



0

1



100



1

α




010



2

α2



001



4

α 3 = α +1



110



3

α 4 = α 2 +α




011



6

α 5 = α 2 + α +1



111



7

α 6 = α 2 +1



101



5

…α 7 = 1
Từ đó chúng ta sẽ có 8 phần tử cơ bản của trường GF( 2 3 ) là :
{0,1, α , α 2 , α 3 , α 4 , α 5 , α 6 }

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 tố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.

Luận văn thạc sĩ

Trang 13

HVTH: Hoàng Đăng Hoài


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) = f 0 + f 1 + f 2 x 2 +…+ f k −1 x k −1 , Trong đó f i 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 ,..., α n } của trường GF(q), thì từ mã của
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(2 4 ). Với tin nhắn là
f(x)= α +x + α 3 x 2 + α 4 x 3 + α 5 x 4 + α 6 x 5 + α 7 x 6 được mã hóa với các phần tử thiết lập
là (1, α ,…, α 14 ). Từ đó sẽ tạo thành từ mã: C = (f(1), f( α ),…, f( α 14 )).
Đa thức mã hóa là:
C(x) = α 6 + α 11 x + x 2 + α 6 x 3 + α x 4 + α 14 x 5 + α 8 x 6 + α 11 x 7 + α 8 x 8 + α x 9 +
α 12 x 10 + α 14 x 12 + x 13 + α x 14

Luận văn thạc sĩ

Trang 14

HVTH: Hoàng Đăng Hoài


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

Luận văn thạc sĩ

Trang 15

HVTH: Hồng Đăng Hoài


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 tố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 tố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 tố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 = [d min / 2 ],
trong đó d min = n - k + 1 là khoảng cách Hamming tối thiểu của mã. Gần đây, có một
thuật tốn giải mã Reed-Solomon quyết định mềm đó là thuật tốn Koetter-Vardy[3].

3.2 Thuật tố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 tố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ã ngồ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
Luận văn thạc sĩ

Trang 16

HVTH: Hoàng Đăng Hoài


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 tốn đại số giải mã
Reed-Solomon quyết định mềm sẽ trình bày ở đây. Thuật tốn có hai phần chính bao
gồm q 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 tố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 2 q x n. Mỗi
phần tử π i, j của Π có xác suất truyền ký tự là σ i và xác suất nhận ký tự là θ j :
π i, j = Pr ( σ i sent | θ j received)

Trong đó 0 ≤ i ≤ 2 q - 1 và 0 ≤ j ≤ n – 1. { σ 0 , σ 1 , … , σ 2 −1 } là một tập hợp
q

mà nó bao gồm tất cả các khả năng có thể có của các ký tự trong GF (2 q ). Có nghĩa là
mỗi θ j là sự kết hợp giữa nhiễu và đa thức tin f(x) tại điểm x j . Mổi phần tử π i, j trong
ma trận độ tin cậy có thể được kết hợp với một phần tử nội suy (x j , σ j ). Tuy nhiên,
thuật tốn này có độ trễ dài, hệ số của ma trận độ tin cậy có thể nhân mổi phần tử của
ma trận độ tin cậy với một số dương λ . Từ đó ma trận M được tính như sau:
Luận văn thạc sĩ

Trang 17

HVTH: Hoàng Đăng Hoài


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ố m i, j từ ma trận
M, tại điểm nội suy (x j ,y j ) với hệ số nhân m i, 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 tố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 x v được chia bởi Q(x,y)
F1: Q (x,y) = Q(x,y)/ x v
F2: Tìm tất cả phần tử gốc Q(0,y) trong GF (2 q ).
Với mỗi phần tử γ của Q (0,y) do
Φ[i ] = γ

Nếu i = k – 1
Ngõ ra Φ = ( Φ[0] , Φ[1] ,…, Φ[k − 1] )
Hoặc
~

Q (x,y) = Q (x,y + γ )

F3:
^

~


F4

Q (x,y) = Q (x, xy)

Luận văn thạc sĩ

Trang 18

HVTH: Hoàng Đăng Hoài


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 tố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 m i, 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 t m 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
t GS = 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.
Luận văn thạc sĩ

Trang 19

HVTH: Hoàng Đăng Hoài


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 ,…, β n )
với các từ mã thiết lập là ( α 1 , α 2 ,…, α n ). Theo [2], thuật tốn Guruswami-Sudan gồm
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]:
Q(x,y) =

∑q

ij

xi y j

i, j

Q(x,y) bằng 0 ở các hệ số nhân m tại ( α i , β i ) với i = 1, 2,…n với bậc trọng số nằm
trong 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 f k (x)) và đưa vào danh sách từ mã ngõ ra.
£ = {f 1 (x), f 2 (x), …, f L (x)}
Với bậc f i (x) < k, i = 1, 2,…L.
Thuật toán Koetter-Vardy ứng dụng cho q trình nội suy của thuật tốn GS, và

thuật tốn Roth_Ruckenstein ứng dụng cho q trình phân tích nhân tử của thuật tốn
GS.

Luận văn thạc sĩ

Trang 20


HVTH: Hồng Đăng Hoài


×