Bài tập lớn thông tin di động Thiết kế và giải mã reed solomon trong hệ thống thông tin di động

51 5 0
Bài tập lớn thông tin di động  Thiết kế và giải mã reed solomon trong hệ thống thông tin di động

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG BÀI TẬP LỚN Đề tài Thiết kế và giải mã reed solomon trong hệ thống thông tin di động Gv hướng dẫn Nguyễn Văn Đức Sinh viên thực hiện Họ và tên M.

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ-VIỄN THÔNG BÀI TẬP LỚN Đề tài : Thiết kế giải mã reed solomon hệ thống thông tin di động Gv hướng dẫn : Nguyễn Văn Đức Sinh viên thực : Họ tên : Mssv Đỗ Đình Tuấn 20172896 Trịnh Ngọc Đông 20172474 Lê Thị Thanh Thảo 20172830 Mục lục Danh sách hình ảnh CHƯƠNG ĐẶT VẤN ĐỀ Vào năm 1960, Irving S Reed Gustave Solomon cơng bố báo tạp chí “Journal of the Society for Industrial and Applied Mathematics” Bài báo mơ tả loại mã hóa sửa sai mà ngày gọi mã Reed-Solomon Mã hóa loại mã sửa sai mạnh tiện ích Ứng dụng mã ReedSolomon (RS) vào năm 1982, dùng 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 phát triển Elwyn Berlekamp James Massey năm 1969 Ngày mã Reed-Solomon (RS) mã khối sửa sai phổ biến với loạt ứng dụng hệ thống lưu trữ (CD, DVD) 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ũ trụ [1],[2] Mã RS (n, k) truyền thống với thuật toán định cứng, chẳng hạn thuật toán Berlekamp - Massey, thuật tốn Euclid sửa lỗi đến t = [d / ], d = n - k + khoảng cách Hamming tối thiểu mã Gần đây, Guruswami- Sudan (GS) đạt bước đột phá giải mã RS định cứng cách sử dụng kỹ thuật đại số nội suy Thuật tốn GS sửa n - lỗi (k  1)n Sau đó, thuật tốn đại số GS mở rộng để thành thuật toán giải mã định mềm (ASD) cách kết hợp thông tin xác suất từ kênh truyền vào q trình nội suy Với thuật tốn ASD đạt độ lợi tốt thuật toán giải mã định cứng So với giải mã định cứng, giải mã định mềm cung cấp khả sửa lỗi cao Trong số thuật toán giải mã định mềm, Thuật tốn KoetterVardy (KV) đạt độ lợi tốc độ bit truyền cao Theo [3] độ lợi thuật tốn giải mã RS định mềm cao từ dB đến dB với nhiễu Gauss kênh truyền fading Rayleigh Trong đề tài này, nhóm tập trung nghiên cứu thực thuật toán giải mã Reed-Solomon định mềm 1.1 Nội dung nghiên cứu  Tìm hiểu lý thuyết thuật tốn Reed-Solomon  Mơ giải mã C++  Thiết kế mạch giải mã Reed-Solomon định mềm  Nhận xét đánh giá kết CHƯƠNG LÝ THUYẾT THUẬT TOÁN REED-SOLOMON 2.1 Vị trí vai trị mã hóa kênh Hình 2.1 Trình bày sơ đồ khối tổng quát hệ thống thơng tin số Trans- mitter Re- ceiver Hình : Sơ đồ khối tổng quát hệ thống thơng tin số Từ Hình 2.1 ta thấy vị trí mã hóa kênh (channel coding) 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 mã hóa kênh  Mã hóa nguồn (source coding): mục đích để làm giảm thiểu độ dư tin, nghĩa loại bỏ thông tin không cần thiết để truyền tin nhanh phía thu dễ nhận  Mã hóa bảo mật (encrypt): tên gọi, mục đích để chống lại ăn cắp hay làm nhiễu,làm sai lệch thông tin yếu tố bên ngồi  Mã hóa kênh: mục đích làm giảm thiểu xác suất sai thông tin 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 sai sửa sai dẫn đến việc giảm tỉ số tín hiệu nhiễu (SNR) cần thiết, nhờ giảm cơng suất, tiết kiệm lượng Việc sửa sai hữu hiệu với tỉ số SNR nhỏ làm thuận lợi cho việc bảo mật, trải phổ tăng độ xác thơng tin nhận mục đích quan trọng truyền thơng 2.2 Mã Reed-Solomon 2.2.1 Giới thiệu trường Galois: Mã Reed-Solomon dựa lĩnh vực đặc biệt toán biết đến trường trường hữu hạn Một trường hữu hạn có thuộc tính phép tính số học (+,-, x, / ) phần tử trường ln có kết trường Bộ mã hố Reed-Solomon giải mã cần phải thực phép tính số học Các hoạt động đòi hỏi đặc biệt phần cứng hay phần mềm chức để thực Trong trường Galois tương ứng với độ rộng trường có đa thức đặc trưng mặc định Hình 2 : Đa thức đặc trưng trường Galois Các phép tính trường Galois dựa vào đa thức đặc trưng Ví dụ với m=3, đa thức đặc trưng f(x) = + x + x , từ đa thức đặc trưng trường GF( 23 ) ta có x = + x Chúng ta tính phần tử khác trường GF( 23 ) biểu diễn dạng khác sau: Trường Galois Số nhị phân Số thập phân ⇔ 000 ⇔ ⇔ 100 ⇔ α ⇔ 010 ⇔ α2 ⇔ 001 ⇔ α = +1 α ⇔ 110 ⇔ α = +α α ⇔ 011 ⇔ α = +α +1 α ⇔ 111 ⇔ α = +1 α ⇔ 101 ⇔ …α = Từ có phần tử trường GF( 23 ) : {0,1, α ,α ,α , α ,α ,α } 2.2.2 Những tính chất mã Reed-Solomon Có nhiều cách định nghĩa mã Reed-Solomon Định nghĩa ban đầu mã Reed-Solomon tập trung vào việc tính tốn đa thức trường hữu hạn Có cách khác tốt để khảo sát mã Reed-Solomon phép biến đổi Fourier trường Galois Cuối cùng, mã Reed-Solomon xem mã mở rộng mã BCH 2.2.3 Mã Reed-Solomon Theo [4] mã Reed-Solomon RS(n,k) mã hóa k ký tự tin nhắn trường hữu hạn q phần tử, GF(q), tạo thành từ mã n ≤ q ký tự tin trường GF(q) Mã hóa ánh xạ tích chập đa thức tin f(x) = f + f 1+ f 2x +…+ f k x −1 k −1 , Trong f i k phần tử tin nhắn Kết hợp đa thức tin f(x) n phần tử riêng {α , α , , α n } trường GF(q), từ mã RS tạo thành sau: C = (f(α1 ), f(α ), , f(α n )) Thông thường, n = q-1 phần tử tích chập q-1 phần tử khác thuộc GF(q) Ví dụ 2.2 : Theo [5, p.347], RS(15,7) mã hóa trường GF(2 ) Với tin nhắn f(x)= α +x + α x + α x + α x +α x +α x mã hóa với phần tử thiết lập (1, α ,…, α 14 ) Từ tạo thành từ mã: C = (f(1), f(α ),…, f(α 14 )) Đa thức mã hóa là: C(x) = α + α 11 x + x + 12 10 14 12 13 14 α x +α x +x + x α x 3+ x + α 14 x + α x + α 11 x + α x + x + 4.3 Giải mã Reed-Solomon định mềm 4.3.1 Sơ đồ khối giải mã Reed Solomon định mềm Hình :Sơ đồ tổng quát khối giải mã Reed Solomon định mềm Các tín hiệu ngõ vào ngõ ra: Hình 4 : Sơ đồ chân khối giải mã Reed Solomon định mềm Pin Mô tả Input/Output i_clk Clock cho core hoạt động Input i_rst_n Tín hiệu reset Core Input i_ce Cho phép core hoạt động Input i_load Đồng liệu vào Input i_data Dữ liệu vào Input i_error Sai số vào Input o_data_en Dữ liệu hợp lệ Output o_data Dữ liệu Output 4.3.2 Bước gán ma trận hệ số nhân Phía thu nhận từ mã C = {f(x1 ), f(x ), f(x n )} sai số kênh truyền e(r) để gán vào ma trận M Tại vị trí sai số gán với xác suất thu 1, vị trí khác Trong trường hợp : C ={α ,α ,α ,α ,α ,α ,α }, e(r) = {α ,0,0,0,0, α ,0} Đổ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 e(r) tạo thành ma trận M (p x q) hình dưới, với giá trị: Cột thứ 1: m(0,4) = vị trí thứ e(r) α , m(0,6) = gán vị trí thứ C α Cột thứ 2: m(1,3) = gán vị trí thứ C α Cột thứ 3: m(2,1) = gán vị trí thứ C α Cột thứ 4: m(3,5) = gán vị trí thứ C α Cột thứ 5: m(4,4) = gán vị trí thứ C α Cột thứ 6: m(5,3) = gán vị trí thứ C e(r) α α , m(5,3) = gán vị trí thứ Cột thứ 7: m(6,2) = gán vị trí thứ C α Kết ma trận M sau: 4.3.2.1 Hiện thực ngôn ngữ VHDL Lưu đồ máy trạng thái trình gán ma trận hệ số nhân: Hình : Lưu đồ máy trạng thái trình gán ma trận hệ số nhân Bước gán ma trận hệ số nhân gồm có trạng thái, 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, tín hiệu i_rst_n = ‘1’ i_ce = '1' lõi bắt đầu ghi liệu ngõ vào i_data sai số i_error vào ghi liệu reg_c ghi sai số reg_e theo tín hiệu đồng i_load Khi q trình ghi liệu vào ghi kết thúc tín hiệu RS_assign_en = '1' 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ừ ghi liệu reg_c ghi sai số reg_e cho ma trận M Nếu tín hiệu i_rst_n = ‘0’, trạng thái lõi chuyển trạng thái chờ RS_idle_st Kết mô ngôn ngữ VHDL Modelsim sau: Hình : Kết mơ trình gán ma trận hệ số nhân ngơn ngữ VHDL Theo Hình 4-6 cho thấy với liệu ngõ vào i_data = [7,4,1,6,3,4,2] sai số i_error = [3,0,0,0,6,0] kết ma trận matrix_m dạng sóng mơ trùng khớp với ma trận M tính tốn 4.3.2 Bước nội suy dùng thuật tốn Koetter Vardy Q trình nội suy từ ma trận M dùng thuật toán Koetter-Vardy để thực Thuật toán Koetter-Vardy bước đột phá để giải mã Reed-Solomon từ định cứng (Hard decision) sang định mềm (Soft decision) Áp dụng thuật toán Koetter-Vardy cho trình nội suy RS(7,5) thực ngơn ngữ C++: 4.3.2.1 Hiện thực thuật tốn nội suy ngơn ngữ C++ Trước tiên tính số đa thức ngõ q trình nội suy: Tính giá trị Cost ma trận M Cost (M) = ∑m i, j i, j i, *(m j + 1) = Ω= * (k  1) * cos t(M ) (3(1 x 2) + (2 x 3) ) = 18 - = * *18 -1 = 11 L = [ Ω/(k-1)] = [11/4] = Thuật toán bắt đầu với L+1 đa thức biến Q(x,y) sau: Q (x,y) = Q1 (x,y) = y Q (x,y) = y Tiếp theo tính nội suy giá trị khác ma trận M Hình sau mơ tả q trình nội suy điểm khác ma trận M thực ngôn ngữ C++ Hình : Bắt đầu trình nội suy RS(7,5) ngơn ngữ C++ Hình 4-7 mơ tả bước trình nội suy điểm khác ma trận M ngôn ngữ C++ Bước nội suy 1: Thực điểm M(2,0) = (Tính theo số mũ λ0 = D 0,0 λ1 = D 0,0 λ2 = D 0,0 Q | (2,0) = Q1 | (2,0) = Q | (2,0) = Lowest = Cập nhật đa thức: Q (x,y) = Q (x,y) = α2 + α + α0x α0y ), với u = 0, v = Q (x,y) = α0 + α y Bước nội suy 2: Thực điểm M(2,0) = (Tính theo số mũ ), với u = 0, v = λ0 = D 0,1 Q | (2,0) = -1 λ1 = D 0,1 Q1 | (2,0) = λ2 = D 0,1 Q | (2,0) = -1 Lowest = Q (x,y) = α + Q1 (x,y) = Q (x,y) = α2 + α0 + α0x α y + α x + α xy α y Kết cuối đa thức nội suy: Hình 8: Kết q trình nội suy RS(7,5) ngơn ngữ C++ Hình 4-8 cho thấy đa thức Q(x,y) có bậc nhỏ ngõ trình nội suy Q(x,y) = α + α x + α x + α x + α x + α x + α6 x 7+ α x 8+ α x + α y + α xy+ α x y + x 3y + α x 4y + α x 5y α + α y + α xy Biểu diễn hệ số trường Galois GF(2 ) qua số tự nhiên ta có đa thức nội suy sau: Q(x,y) = + 4x + 6x + 5x + 1x + 1x + x + x + x + 4y + xy+ 7x y + x y + x y + x y + y + 7xy 4.3.2.2 Hiện thực ngôn ngữ VHDL Lưu đồ máy trạng thái trình nội suy sau: Hình 9: Máy trạng thái q trình nội suy dùng thuật tốn Koetter-Vardy Từ Hình 4-9 cho ta thấy trạng thái điều kiện chuyển trạng thái trình nội suy dùng thuật tốn Koetter-Vardy Q trình nội suy gồm có trạng thái sau: Trạng thái RS_omega_st RS_init_st RS_detecting_st Mô tả trạng thái Trạng thái dùng để tính omega, từ tính số L đa thức nội suy Tạo giá trị khởi đầu cho đa thức nội suy RS_interation_st Trạng thái nhận biết giá trị khác ma trận M , để từ tính nội suy điểm Q trình tính nội suy điểm khác ma trận M RS_lambda_st Trạng thái tính giá trị cập nhật lambda cho đa thức nội suy RS_computeQ_st Trạng thái tính cập nhật cho đa thức nội suy RS_QlowestL_st Trạng thái tính cập nhật cho đa thức nội suy có bậc nhỏ RS_selectQ_st Trạng thái lựa chọn đa thức nội suy ngõ Kết mô ngôn ngữ VHDL Modelsim sau: Hình 10 : Kết mơ ngơn ngữ VHDL Modelsim sau: Như Hình 4-11, Kết ngõ trình nội suy ma trận qm ma trận chứa số đa thức nội suy ngõ Q(x,y) Trong ma trận qm, hàng ngang tương ứng với số mủ x, hàng dọc tương ứng với số mủ y đa thức nội suy Q(x,y) Từ mô C++ ta có đa thức nội suy: Q(x,y) = + 4x + 6x + 5x + 1x + 1x + x + x + x + 4y + xy+ 7x y + x y + x y + x y + y + 7xy So sánh hệ số ma trận qm với đa thức Q(x,y) thấy trùng với Như kết trình nội suy thực ngơn ngữ C++ VHDL giống với ví dụ giải mã RS(7,5) phần trước Tiếp theo, q trình phân tích đa thức nội suy Q(x,y) thành nhân tử KẾT LUẬN Phương pháp giải mã với thuật toán định cứng, chẳng hạn thuật toán Berlekamp - Massey, thuật tốn Euclid sửa lỗi đến t = [d / ], d = n - k + khoảng cách Hamming tối thiểu mã Giải mã Reed Solomon định mềm ứng dụng thuật toán Koetter-Vardy Roth-Ruckenstein phát triển từ thuật toán Guruswami-Sudan Theo [5,p322], thuật tốn Guruswami-Sudan sửa sai với RS(n,k) t GS = n - n(k  1) lỗi Theo [3],[6] thuật toán giải mã RS định mềm có khả sửa lỗi cao thuật tốn GS, độ lợi cao từ 2dB-3dB với kênh truyền nhiễu Gauss 10 dB kênh truyền fading Rayleigh Như giải mã RS(7,5), với kênh truyền có nhiễu trung bình, nghĩa xác suất thu tin gửi sai số 50%, RS(7,5) sửa sai bit bit truyền Cịn mơi trường nhiễu cao, nghĩa có sai số, xác suất nhận tin gần 0% nhận sai số gần 100% RS(7,5) sửa sai bit bit truyền Đó ưu điểm lớn thuật toán giải mã RS định mềm mà thuật tốn khác khơng có Kết hợp cơng thức tính khả sửa sai thuật toán định cứng Berlekamp – Massey, Guruswami-Sudan kết mô mạch giải mã định mềm dùng thuật toán Koetter-Vardy ta có bảng so sánh sau: RS(n,k) Số bit sửa sai Số bit sửa sai Số bit sửa sai với môi Số bit sửa sai môi (Berlekamp - (Guruswami- trường nhiễu trung bình trường nhiễu cao Massey) Sudan) (Koetter-Vardy) (Koetter-Vardy) RS(7,6) 1 RS(7,5) 1 RS(7,4) 2 RS(7,3) Bảng 6-1: So sánh khả sửa sai tối đa thuật toán giải mã RS Từ bảng 6-1 cho thấy khả sửa sai tối đa thuật toán Koetter-Vardy cho giải mã Reed Solomon định mềm cao với thuật toán định cứng Berlekamp – Massey Guruswami-Sudan Đặc biệt môi trường nhiễu trung bình khả sửa sai nhiều, gấp lần Đó ưu điểm thuật toán giải mã định mềm Tuy nhiên nhược điểm thuật toán KoetterVardy phức tạp khả thực phần cứng khó tốn nhiều tài nguyên TÀI LIỆU THAM KHẢO [1] X Zhang and K K Parhi, “Fast factorization architecture in soft-decision ReedSolomon decoding,” IEEE Transactions on VLSI System, vol 13, no 4, pp 413–426, 2005 [2] Anand Sarwate, “Soft Decision Decoding of Reed-Solomon Product Codes”, EECS 229B Final Project Report, May, 2005 [3] W J Gross, F R Kschischang, R Koetter, and P Gulak, “Simulation results for algebraic soft-decision decoding of Reed-Solomon codes,” in Proceedings of the 21’st Biennial Symposium on Communications, (Queen’s UniveRSity, Kingston, Ontario, Canada), pp 356–360, June 2-5 2002 [4] Warren J Gross, Frank R Kschischang, P Glenn Gulak, “Architecture and Implementation of an Interpolation Processor for Soft-Decision Reed–Solomon Decoding”, IEEE vol 15, no 3, march 2007 [5] Todd K Moon “Error Correction Coding Mathematical Methods and Algorithms”, Wiley InteRScience, 2005 ... TRÌNH THIẾT KẾ VÀ HIỆN THỰC 4.1 Khái quát trình thiết kế 4.1.1 Sơ đồ khối Hình : Sơ đồ khối q trình mã hóa giải mã Reed- Solomon Sơ đồ hệ thống biểu di? ??n hình Dữ liệu mã hóa khối mã hóa Reed- Solomon. .. tạp giải mã mềm khơng cịn vấn đề lớn Vì xu hướng giới sử dụng giải mã mềm, chí người ta đặt vấn đề giải mã lại cho loại mã khối mã tích chập truyền thống phương pháp giải mã mềm Giải mã Reed- Solomon. .. Chuỗi tin truyền sau qua kênh truyền giải điều chế (demodulate) đến giải mã Tín hiệu ngõ giải điều chế ngõ vào giải mã định trình giải mã “cứng” hay “mềm” Theo [4] cấu trúc hệ thống giải mã Reed- Solomon

Ngày đăng: 08/12/2022, 21:23

Tài liệu cùng người dùng

Tài liệu liên quan