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

KHỐI PHẦN MỀM THỰC THI MÃ HÓA REED – SOLOMON VÀ CHƯƠNG TRÌNH MÔ PHỎNG

36 925 12

Đ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 36
Dung lượng 3,06 MB

Nội dung

Hình 1.1 thể hiện sơ đồ khối khái quát một hệ thống truyền dẫn: Hình 1.1 Sơ đồ khối khái quát một hệ thống truyền dẫn Ý tưởng của việc mã hóa có thể khái quát lại như sau: Giả sử chúng t

Trang 1

thông vận tải có điều kiện thực hiện nghiên cứu khoa học Năm học 2011-2012 cũng không phải ngoại lệ, nhờ vậy sinh viên khóa 49 chúng em có cơ hội tham gia sân chơi

bổ ích này Được sự giúp đỡ của các thầy cô trong khoa Điện – Điện tử và bộ môn Kỹ thuật viễn thông, nhóm chúng em đăng kí tham gia với mục tiêu học hỏi thêm những kiến thức mới mà chúng em khó có cơ hội tiếp cận trên giảng đường Những gì chúng

em thu được trong hoạt động nghiên cứu lần này sẽ góp phần không nhỏ vào hành trang của chúng em khi bước vào thực tế công việc sau khi tốt nghiệp.

Vì vậy, chúng em xin dành trang đầu của báo cáo để gửi lời cảm ơn chân thành tới ban giám hiệu Trường đại học giao thông vận tải, các thầy cô trong Khoa Điện – Điện tử nói chung và các thầy cô trong bộ môn Kỹ thuật viễn thông nói riêng đã mở ra sân chơi này và hỗ trợ chúng em cả về kiến thức, kỹ năng cũng như kinh nghiệm trong hoạt động nghiên cứu khoa học Đặc biệt, chúng em xin chân thành cảm ơn thầy Lê Minh Tuấn là người đã trực tiếp hướng dẫn chúng em thực hiện đề tài này.

Vì thời gian và điều kiện có hạn nên đề tài của chúng em không khỏi những thiếu sót Vì vậy kính mong quý thầy cô, ban giám khảo cùng toàn thể các bạn tham gia góp ý cho chúng em để nghiên cứu được hoàn hảo hơn Về phần mình, chúng em cũng

sẽ hết sức nỗ lực để hoàn thiện đề tài.

Trang 2

PHẦN 1 - TỔNG QUAN VỀ MÃ HÓA 1

1.1 Mã hóa – một biện pháp chống nhiễu trong truyền dẫn số 1

1.2 Các loại mã 2

PHẦN 2 - CƠ SỞ TOÁN HỌC CỦA MÃ 3 2.1 Trường 3

2.1.1 Sơ lược về trường 3

2.1.2 Trị riêng của một trường 4

2.1.3 Chu kỳ của một phần tử 4

2.2 Trường GF(2) và GF(2m) 5

2.2.1 Trường GF(2) và đa thức trên trường GF(2) 5

2.2.2 Xây dựng trường GF(2m) từ GF(2) 6

PHẦN 3 - TỔNG QUAN VỀ MÃ KHỐI TUYẾN TÍNH 8 3.1 Mã khối tuyến tính 8

3.1.1 Ma trận sinh và cách mã hóa 8

3.1.2 Khả năng phát hiện và sửa sai 9

3.1.3 Cách phát hiện sai của mã khối tuyến tính 10

3.1.4 Cách sửa sai và thuật toán giải mã 11

3.2 Mã vòng 13

3.2.1 Định nghĩa và các tính chất cơ bản của mã vòng 13

3.2.2 Cách mã hóa của mã vòng 14

3.2.3 Mã BCH nhị phân 14

3.2.4 Mã BCH không nhị phân 15

PHẦN 4 - MÃ REED – SOLOMON 16 4.1 Đa thức sinh và cách mã hóa 16

4.2 Mã Reed – Solomon hiệu quả đối với lỗi chùm 18

Trang 3

4.3.3 Xác định giá trị lỗi 22

4.3.4 Ví dụ 22

PHẦN 5 – KHỐI PHẦN MỀM THỰC THI MÃ HÓA REED – SOLOMON VÀ CHƯƠNG TRÌNH MÔ PHỎNG 24 5.1 Khối phần mềm thực thi mã hóa Reed – Solomon 24

5.2 Chương trình mô phỏng mã hóa Reed – Solomon 24

5.2.1 Giao diện phần mềm mô phỏng 25

5.2.2 Sơ đồ khối mô tả hoạt động của chương trình 29

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 30

TÀI LIỆU THAM KHẢO 31

Trang 4

PHẦN 1 - TỔNG QUAN VỀ MÃ HÓA

1.1 Mã hóa – một biện pháp chống nhiễu trong truyền dẫn số

Vài thập kỉ gần đây, nhu cầu về những hệ thống truyền dẫn số với độ tin cậy vàhiệu quả cao tăng mạnh do đòi hỏi về những mạng số liệu có quy mô lớn, tốc độ caocho trao đổi, xử lý và lưu trữ thông tin số phục vụ cho quân sự, chính trị, kinh tế - tàichính và những nhu cầu trao đổi thông tin khác của con người Vì thế sự kết hợp giữatruyền thông và công nghệ thông tin là bắt buộc để có thể tạo nên những hệ thống này

mà mục tiêu chính là kiểm soát được lỗi trong quá trình truyền dẫn, giúp cho phía thunhận được chính xác thông tin mà phía phát đã phát đi

Năm 1948, Claude Elwood Shannon đã chứng minh rằng chỉ cần mã hóa thôngtin theo cách thích hợp thì khả năng xảy ra lỗi do nhiễu tác động lên kênh truyền có thểđược giảm tới mức mong muốn mà không phải đánh đổi bởi tốc độ truyền dẫn haykhông gian lưu trữ Đây là tiền đề cho rất nhiều những nỗ lực sau này nhằm tìm kiếmmột phương thức mã hóa cũng như giải mã hiệu quả để kiểm soát lỗi xảy ra trongtruyền dẫn trên những môi trường nhiễu cao Và ngày nay, việc sử dụng mã hóa kiểmsoát lỗi đã trở thành một phần tất yếu trong các hệ thống truyền thông và máy tính số

Hình 1.1 thể hiện sơ đồ khối khái quát một hệ thống truyền dẫn:

Hình 1.1 Sơ đồ khối khái quát một hệ thống truyền dẫn

Ý tưởng của việc mã hóa có thể khái quát lại như sau:

Giả sử chúng ta có nguồn phát là một nguồn nhị phân đối xứng phát đi tín hiệu 0

và 1 Ở đầu nhận ta quy ước cơ chế giải mã là nếu nhận được tín hiệu 0 thì đoán bênphát đã phát đi tín hiệu 0, nếu nhận được tín hiệu 1 thì đoán bên phát đã phát đi tín hiệu

1 Với cơ chế giải mã như thế này, xác suất xảy ra lỗi khá cao

Trang 5

Có một hướng để làm giảm xác xuất giải mã lỗi: để gửi tín hiệu 0 thì thay vì gửi

đi một, chúng ta gửi một chuỗi 3 tín hiệu 0 và tương tự với tín hiệu 1 Ở đầu nhận, taquy ước cơ chế giải mã là nếu chuỗi nhận có nhiều tín hiệu nào hơn thì giải mã thànhtín hiệu đó Ví dụ nếu chuỗi nhận được là 010 thì giải mã thành 0, nếu nhận được 110thì giải mã thành 1 Cơ chế này hiển nhiên đã làm giảm xác suất giải mã lỗi nhưng lạinảy sinh vấn đề khác đó là làm giảm hiệu suất truyền thông tin đi 3 lần

Nếu mã hóa tín hiệu 0 thành một chuỗi 2n + 1 tín hiệu 0 và 2n + 1 tín hiệu 1 mã

hóa cho tín hiệu 1 thì xác suất giải mã sai tiến tới 0 khi n tiến tới ∞ Đổi lại, hiệu suất

truyền thông tin sẽ giảm đi 2n + 1 lần.

Chúng ta có thể giảm xác suất giải mã xuống gần bằng 0 nhưng không giảmhiệu suất truyền thông tin xuống gần bằng 0 mà chỉ nhỏ hơn một ngưỡng nào đó chấpnhận được Ý tưởng của phương án này cũng khai thác ý tưởng của phương án phíatrên ở chỗ: thay vì gửi đi 0 và 1 – khác biệt ở 1 bit thì chúng ta sẽ mã hóa chúng thành

000 và 111 – khác biệt ở 3 bit làm giảm xác suất giải mã lỗi

1.2 Các loại mã

Ngày nay, có 2 loại mã được sử dụng rộng rãi là mã khối và mã chập

Đối với mã khối, bộ mã hóa sẽ chia nhỏ chuỗi thông tin thành các bản tin có độ

dài k bit và được thêm vào n – k bit dư để tạo thành một từ mã có độ dài n bit n – k bit

dư này có được nhờ đưa k bit thông tin qua một thuật toán đặc biệt, giúp cho mã có khả năng phát hiện và sửa lỗi Vì đầu vào có k bit bản tin nên tương ứng sẽ có 2 k từ mã

độ dài n bit ở đầu ra bộ mã hóa, tập hợp 2 k từ mã này tạo thành một mã khối (n, k).

Hiển nhiên là nếu số lượng bit dư càng lớn thì khả năng phát hiện và sửa lỗi của

mã càng lớn nhưng hiệu suất truyền tin của mã càng nhỏ Để tăng khả năng phát hiện

và sửa lỗi mà không làm giảm hiệu suất truyền tin của mã, chúng ta có thể tăng lượngbit dư đồng thời tăng độ dài từ mã

Bộ mã hóa của mã chập cũng tạo ra từ mã độ dài n với k bit bản tin và n – k bit

dư Tuy nhiên từ mã của mã chập không chỉ phụ thuộc vào k bit bản tin hiện tại mà còn phụ thuộc vào m bản tin trước đó nhờ một bộ nhớ bậc m.

Trong khuôn khổ đề tài nghiên cứu khoa học này, nhóm chúng em xin không đềcập tới mã chập

Trang 6

PHẦN 2 - CƠ SỞ TOÁN HỌC CỦA MÃ

2.1 Trường

2.1.1 Sơ lược về trường

Nhìn chung trường là một tập hợp các phần tử mà trong tập hợp đó chúng ta cóthể cộng, trừ nhân chia mà kết quả vẫn nằm trong tập hợp Phép cộng và nhân phải cótính giao hoán, kết hợp và phân phối

Gọi F là một tập hợp mà trên đó tồn tại 2 phép toán nhị phân cộng và nhân Tập

F cùng 2 phép toán cộng và nhân là một trường nếu thỏa mãn điều kiện:

- F là một nhóm giao hoán với phép cộng, phần tử đơn vị đối với phép cộng gọi làphần tử không và kí hiệu là 0

- Tập hợp các phần tử khác 0 trong F là một nhóm giao hoán với phép nhân Phần

tử đơn vị đối với phép nhân gọi là đơn vị hoặc đơn vị nhân của F và kí hiệu là 1.

- Phép nhân có tính chất phân phối với phép cộng, với mọi 3 phần tử a,b,c ∈ F:

a.(b + c) = a.b + a.c Phép trừ a cho b trong một trường là phép cộng của a với –b Nếu b ≠ 0, phép chia a cho b là phép nhân của a với b -1

Một số tính chất cơ bản của trường:

- Với mọi phần tử a trong một trường: a.0 = 0.a =0

- Với 2 phần tử a, b ≠ 0 bất kỳ trong một trường: a.b ≠ 0

- a.b = 0 và a ≠ 0  b = 0

- Với mọi a, b thuộc trường: -(a.b) = (-a).b = a.(-b)

- Với a ≠ 0, a.b = a.c => b = c

Tập hợp {0,1} với phép cộng và phép nhân modul 2 được cho trong bảng 2.1 vàbảng 2.2 tạo thành một trường có 2 phần tử, thường được gọi là trường nhị phân Mộttrường có số phần tử xác định được gọi là trường hữu hạn hoặc trường Galois Do đó,trường nhị phân còn được kí hiệu là GF(2) Trường nhị phân GF(2) có vai trò quantrọng trong lý thuyết mã hóa mà được sử dụng rộng rãi trong máy tính số và truyền dẫn

số (hoặc lưu trữ)

Trang 7

2.1.2 Trị riêng của một trường Xét một trường GF(q) Xét các dãy tổng của các phần tử đơn vị

Vì trường đóng với phép cộng nên kết quả của những tổng này cũng là các phần

tử của trường Vì k có thể nhận vô hạn giá trị mà trường chỉ có q phần tử nên tồn tại hai giá trị k1 và k2 khác nhau (giả sử k1 > k2 ) sao cho:

Từ đây suy ra:

Đến đây chúng ta dẫn ra khái niệm trị riêng của một trường

Trị riêng của một trường là số nguyên dương nhỏ nhất λ sao cho

2.1.3 Chu kỳ của một phần tử Xét một phần tử a bất kỳ khác 0 của trường GF(q) Xét các luỹ thừa a k của a với k = 1, 2, 3, … Vì trường đóng với phép nhân nên các a k cũng là các phần tử của

trường Vì k có thể nhận vô hạn giá trị mà trường chỉ có q phần tử nên tồn tại hai giá trị k1 và k2 khác nhau (giả sử k1 > k2 ) sao cho:

Bảng 2.1 Phép cộng modul 2 Bảng 2.2 Phép nhân modul 2

Trang 8

Từ đây suy ra:

= 1

Đến đây chúng ta dẫn ra khái niệm chu kỳ của một phần tử của trường

Chu kỳ của một phần tử a của một trường GF(q) là số nguyên dương nhỏ nhất n sao cho a n = 1

2.2 Trường GF(2) và GF(2 m )

2.2.1 Trường GF(2) và đa thức trên trường GF(2) Nhìn chung, chúng ta có thể xây dựng mã với các kí tự từ bất kỳ trường GF(q) nào, trong đó q là số nguyên tố hoặc lũy thừa của số nguyên tố Tuy nhiên, mã với kí tự

từ trường nhị phân GF(2) hay trường mở rộng của nó GF(2 m ) được sử dụng rộng rãi

trong truyền dẫn số và các hệ thống lưu trữ bởi thông tin trên các hệ thống số thườngđược mã hóa ở dạng nhị phân

Trong số học nhị phân, ta dùng phép cộng modul 2 và phép nhân modul 2 Hầuhết đều giống như toán học thông thường chỉ trừ việc ta coi 2 = 1 + 1 = 0 Chú ý rằng 1+ 1 = 0 => 1 = -1

Một đa thức trên trường GF(2), chẳng hạn kí hiệu là f(X), là đa thức có dạng

f(X) = a 0 + a 1 X + a 2 X 2 + … + a n X n trong đó các hệ số ai ∈ GF(2) GF(2) có 2 phần tử là 0 và 1.

Đa thức trên GF(2) có thể cộng, trừ, nhân, chia theo cách thông thường Phép cộng và nhân đối với các hệ số là phép cộng và nhân modul 2 Các đa thức trên GF(2)

luôn thỏa mãn các tính chất giao hoán, kết hợp và phân phối

Một đa thức bậc m trên GF(2) được gọi là tối giản nếu nó không thể được phân tích thành tích của các đa thức có bậc nhỏ hơn m và lớn hơn 0.

Ví dụ:

Trang 9

X 2 + X không phải đa thức tối giản nhưng X 2 + X + 1 là đa thức tối giản

Ngoài ra, đa thức trên trường GF(2) còn có một tính chất rất đáng chú ý Gọif(X) là một đa thức trên GF(2), ta có:

 Đa thức nguyên thủy

Cho p(X) là một đa thức tối giản bậc m trên GF(2) và một số nguyên dương n Nếu n là số nguyên dương nhỏ nhất đồng thời thỏa mãn 2 điều kiện sau:

n = 2 m + 1

X n + 1 chia hết cho p(X)

Trang 10

thì p(X) được gọi là đa thức nguyên thủy.

Ví dụ:

p(X) = X 3 + X + 1

Ta thấy với n = 1, 2, , 6 thì X n +1 không chia hết cho p(X) nhưng với n = 2 3 – 1 = 7 thì:

X 7 + 1 = (X 3 + X + 1) (X 4 + X 2 + X + 1) nên p(X) = X 3 + X + 1 là một đa thức nguyên thủy.

 Xây dựng trường GF(2 m ) từ đa thức nguyên thủy

Việc xây dựng trường GF(2 m ) từ một đa thức nguyên thủy bậc m khá đơn giản.

Chúng em xin được đưa ra một ví dụ minh họa, việc chứng minh phương pháp nàythầy cô và các bạn có thể xem trong tài liệu tham khảo

Giả sử ta cần xây dựng trường GF(2 3 ) từ đa thức p(X) = X 3 + X + 1

Cho p(α) = α3 + α+ 1 = 0 suy ra:

Trang 11

PHẦN 3 - TỔNG QUAN VỀ MÃ KHỐI TUYẾN TÍNH

Như đã nói ở trên, mã khối tuyến tính là một loại mã được dùng phổ biến trongviệc chống nhiễu Gọi là mã tuyến tính vì loại mã này được xây dựng dựa trên lý thuyếtcủa đại số tuyến tính Ở phần tổng quan này, chúng em xin chỉ xin đề cập tới mã nhịphân Lớp mã không nhị phân cũng có đặc điểm tương tự chỉ khác một điều là các kí tự

mã của mã không nhị phân được lấy từ trường mở rộng của GF(2).

3.1 Mã khối tuyến tính

3.1.1 Ma trận sinh và cách mã hóa Nói một cách ngắn gọn nhất, một mã khối có chiều dài n gồm 2 k từ mã được gọi

là mã tuyến tính C(n, k) nếu và chỉ nếu 2 k từ mã hình thành một không gian véc-tơ con

k chiều của không gian véc-tơ n chiều gồm tất cả các véc-tơ n thành phần trên trường GF(2) Do vậy có thể tìm được k từ mã độc lập tuyến tính trong C, chẳng hạn (g 0, g1, ,

g k-1) sao cho mỗi từ mã trong C là một tổ hợp tuyến tính của k từ mã này:

v = a 0 g 0 + a 1 g 1 + + a k-1 g k-1 với ai ∈ {0, 1} với mọi i = 0, 1, , k-1.

Đặt k từ mã độc lập tuyến tính này thành những hàng chúng ta có được một ma trận cấp k × n như sau:

với gi = (gi0, gi1, …, gi(n-1)), với i = 0, 1, …, k-1.

Ma trận G gọi là ma trận sinh của bộ mã vì mọi từ mã đều có thể được tạo rathông qua ma trận này

Trang 12

Tuy nhiên, nếu theo phương pháp trên sẽ khó cho việc xây dựng bộ mã Vì vậy,chúng ta xét một khái niệm mới đó là mã tuyến tính hệ thống:

Một mã tuyến tính C(n, k) gọi là mã tuyến tính hệ thống nếu mỗi từ mã có

k bit thông tin tách biệt với n – k bit dư.

k bit thông tin n – k bit dư

Hoặc

n – k bit dư k bit thông tin

Từ đó, ma trận sinh G của bộ mã có dạng như sau:

Có được ma trận sinh, để mã hóa thông tin u = (a0, a1, a2, …, ak-1) ta chỉ cần lấy

u nhân với G sẽ được từ mã v(v 0, v1, v2, …, vn-1)

3.1.2 Khả năng phát hiện và sửa sai Trọng số Hamming và khoảng cách Hamming

Năm 1950, Richard Wesley Hamming đã đưa ra 2 khái niệm vô cùng quan trọngtrong lý thuyết mã hóa là khoảng cách Hamming và trọng số Hamming như sau:

 Trọng số Hamming của một chuỗi kí hiệu v = a1 a 2…a n trong đó ai ∈ {0, 1,

…, m – 1} là số kí hiệu khác 0 của chuỗi, kí hiệu là w(v)

Ví dụ

Trọng số Hamming của 11101là 4

Trọng số Hamming của 00000000 là 0

 Khoảng cách Hamming của 2 chuỗi kí hiệu v1, v2 với chiều dài bằng nhau là số

vị trí khác nhau của 2 chuỗi, kí hiệu là d(v1, v2)

Trang 13

Ví dụ

Khoảng cách Hamming giữa 1011101 và 1001001 là 2.

Khoảng cách Hamming giữa 2143896 và 2233796 là 3.

 Khoảng cách Hamming của bộ mã A với điều kiện A là mã đều là khoảng

cách Hamming nhỏ nhất giữa 2 từ mã bất kì thuộc A

Bổ đề:

d(v 1 , v 2 ) = w(v 1 + v 2 ) d(v 1 , v 2 ) + d(v 2 , v 3 ) ≥ d(v 1 , v 3 )

Từ những định nghĩa trên có thể rút ra kết luận sau:

Một bộ mã nhị phân có khoảng cách Hamming d có thể:

- Phát hiện được t bit sai nếu d ≥ t + 1

- Sửa được t bit sai nếu d ≥ 2t + 1

Chứng minh:

Gọi v i là từ mã phát, r i là dãy nhận được tương ứng Để chứng minh ý thứ nhất

chúng ta thấy rằng nếu sai tối đa t > 0 bit thì khoảng cách Hamming giữa từ mã phát

và tổ hợp nhận sẽ không vượt quá t Do đó tổ hợp nhận sẽ không thể trùng với bất kỳ từ

mã nào vì khoảng cách Hamming giữa hai từ mã bất kỳ là ≥ t + 1 Vì vậy bên nhận có

thể phát hiện được sai.

Tương tự trong trường hợp thứ hai chúng ta sẽ có d(v i , r i ) ≤ t Mặt khác, ta có d(v i , v j ) ≥ 2t + 1, với v j là một từ mã bất kỳ khác v i nên theo bất đẳng thức tam giác về

khoảng cách Hamming chúng ta có d(v j , r i ) ≥ t + 1 với mọi từ mã v j ≠ v i Vì vậy bên

nhận có thể giải mã đúng v i thành r i dựa trên sự khác biệt về khoảng cách Hamming này.

3.1.3 Cách phát hiện sai của mã khối tuyến tính

Cách đơn giản nhất để phát hiện một từ mã nhận được có bị lỗi hay không là sotrùng nó với các từ mã có thể có của bộ mã Tuy nhiên, cách làm thủ công này sẽ khiếnchúng ta tốn số bước bằng tổng số từ mã của bộ mã và nếu đem ứng dụng trong thực tế

Trang 14

thì chúng ta phải đánh đổi quá nhiều chỉ cho việc kiểm tra lỗi (thời gian, tài nguyên hệthống) Vì vậy cần tìm một phương pháp khác hiệu quả hơn.

Cho S là một không gian con k chiều của không gian n chiều V Nếu S d là tập hợp tất cả các vec-tơ trong V sao cho: ∀ u ∈ S, v ∈ S d , u.v = 0 (phép nhân ở đây là phép nhân vô hướng của 2 véc-tơ) thì S d là một không gian con của V và có

số chiều là n – k S d gọi là không gian bù trực giao của S và ngược lại.

Dựa trên kết quả này chúng ta suy ra rằng luôn tồn tại ma trận H(n – k) × n với n – k hàng độc lập tuyến tính sao cho G × H T = 0 với H T là ma trận chuyển vị của H Nói cách khác, các véc-tơ hàng của H đều trực giao với các véc-tơ hàng của G Từ đây ta

có một cách nhận biết từ mã sai như sau:

Nếu v là một từ mã được sinh ra từ ma trận sinh G có ma trận trực giao tương ứng là H thì do v là một tổ hợp tuyến tính của các véc-tơ hàng của G nên

Trang 15

0110010 còn véc-tơ nhận là r = 0010011 thì véc-tơ lỗi là e = v + r = 0100001 có nghĩa là đã

có lỗi xảy ra ở các vị trí số 2 và số 7

 Tập giải mã coset

Chúng ta sẽ xây dựng một ma trận kích trước 2 n – k × 2 k của mã C(n, k) theo quy

tắc như sau:

 Hàng đầu tiên gồm 2 k từ mã của bộ mã, bắt đầu bằng từ mã v1 = (0, 0, …, 0)

 Trong số 2 n – 2 k véc-tơ (r0 , r 1 , r 2 , …r n-1 ) còn lại, chọn 1 véc-tơ e 2 bất kì, các phần tử trong hàng thứ 2 của ma trận được xây dựng bằng cách cộng e2 với

phần tử ở cột tương ứng

 Tiếp tục chọn 1 véc-tơ e3 bất kì trong số 2 n – 2 k+1 véc-tơ (r0 , r 1 , r 2 , …r n-1 ) còn

lại và xây dựng hàng thứ 3 theo quy tắc như trên

 Lặp đi lặp lại các bước trên tới khi toàn bộ 2 n tổ hợp n bit được điền vào matrận

Và ta được một ma trận có dạng:

Mỗi hàng trong ma trận trên được gọi là một coset Phần tử đầu tiên trong hàng

gọi là coset leader Các phần tử của một tập coset có cùng một syndrome và các coset khác nhau có syndrome khác nhau.

Trang 16

Mặt khác, giả sử u và v thuộc 2 coset khác nhau và s(u) = s(v), suy ra

u × H T = v × H T → (u + v ) × H T = 0 → u + v = w i (w i là một từ mã) → u = v + w i

Tức là u và v cùng thuộc 1 coset (mâu thuẫn).

 Rút ra thuật toán giải mã

 Bộ giải mã lưu trữ một bảng quy chiếu giữa syndrome và coset leader được

xây dựng sẵn (coset leader ở đây là véc-tơ lỗi e)

 Với mỗi véc-tơ nhận r, bộ giải mã sẽ tính syndrome s = r × H T

 Nếu s = 0 thì véc-tơ nhận chính là từ mã được phát đi

 Nếu s ≠ 0 thì bộ giải mã sẽ tra bảng để tìm véc-tơ lỗi tương ứng và giải

mã ra từ mã được phát đi là v = r + e

3.2 Mã vòng

Mã vòng là một lớp con quan trọng của mã khối tuyến tính Việc mã hóa và tínhsyndrome cho mã vòng có thể được thực hiện dễ dàng với các thanh ghi dịch có hồitiếp Hơn nữa, do mã vòng kế thừa các nghiên cứu từ đại số tuyến tính nên có thể tìmnhiều phương pháp giải mã

3.2.1 Định nghĩa và các tính chất cơ bản của mã vòng Một mã tuyến tính C(n, k) được gọi là mã vòng nếu v = v0 v 1 …v n-2 v n-1 là một từ

- Một đa thức v(X) trên trường GF(2) có bậc ≤ n - 1 là đa thức mã nếu và chỉ nếu

nó là một bội số của g(X) Tức là nó có thể viết v(X) = q(X)*g(X) g(X) đượcgọi là đa thức sinh của mã

- Đa thức sinh của một mã vòng C(n, k) có bậc r = n – k

- Đa thức sinh của một mã vòng C(n, k) là một ước số của Xn + 1

Trang 17

3.2.2 Cách mã hóa của mã vòng

Mã vòng có một phương pháp mã hóa khá đơn giản mà không cần sử dụng ma

trận sinh như sau: gọi u(X) là đa thức tương ứng với bản tin u Do đó, bậc của u(X) không quá k - 1 Chia X n – k u(X) cho g(X) ta được:

Với mọi số nguyên dương m (m ≥ 3) và t (t < 2m -1) luôn tồn tại một mã BCH nhịphân với những đặc tính sau:

Số lượng các bit kiểm tra (parity): n – k ≤ mtKhoảng cách tối thiểu: dmin ≥ 2t + 1

 Đa thức sinh và cách mã hóa

Mã BCH độ dài từ mã 2 m – 1 với khả năng sửa t lỗi có đa thức sinh g(X) là đa thức có bậc nhỏ nhất trên GF(2) có α, α 2 , α 3 , …,, α 2t là nghiệm Nếu gọi Фi (X) là đa thức tối thiểu của αi trên trường GF(2) thì g(X) phải là bội chung nhỏ nhất của các đa thức Ф1 (X), Ф 2 (X), …, Ф 2t (X) Nếu i là một số chẵn, i có thể được biểu diễn dưới dạng

Trang 18

i = i’ 2L trong đó i’ là một số lẻ và L ≥ 1 Suy ra αi = (αi’ Vì vậy mà α i và α i’ cóchung đa thức tối thiểu do một tính chất của đa thức trên trường GF(2) đã nêu ở trênnhư sau: =

Vậy g(X) = Bội chung nhỏ nhất của { Ф1 (X), Ф 3 (X), …, Ф 2t - 1 (X)}

Có g(X), việc mã hóa diễn ra như đã nói ở mục 3.2.2

 Thuật toán giải mã

Thuật toán giải mã mã BCH có 4 bước như sau

a Tính syndrome

b Xác định đa thức định vị lỗi

c Tìm nghiệm cho đa thức định vị lỗi

d Xác định giá trị lỗi (sửa lỗi)

3.2.4 Mã BCH không nhị phân

Nếu p là một số nguyên tố và q là lũy thừa của p, chúng ta sẽ có các mã với kí tựtrong trường GF(q), các mã này gọi là mã q-phân Các khái niệm và tính chất đượctriển khai cho mã nhị phân trong các phần trước được áp dụng cho mã q-phân với mộtchút sửa đổi Một mã tuyến tính (n, k) với kí tự trong GF(q) là một không gian con kchiều của không gian vectơ của tất cả tổ hợp n bit trên GF(q) Một mã vòng q-phân (n,k) được tạo bởi một đa thức có bậc n – k với hệ số từ GF(q) là một ước số của Xn - 1 Mãhóa và giải mã đối với mã q-phân tương tự như mã nhị phân

Đối với bất kỳ số nguyên dương s và t, tồn tại một mã BCH q-phân có độ dài

n = q S - 1, có khả năng sửa chữa ít hơn t lỗi tổ hợp bất kỳ trong khi chỉ cần không quá 2st số kí tự kiểm tra Gọi α là một phần tử trong GF(qS) Đa thức sinh g(X) của mã

BCHq-phân sửa chữa t lỗi là đa thức có bậc thấp nhất với hệ số từ GF(q) mà α, α2, ,

α 2t là nghiệm Gọi Φi (X) là đa thức tối giản của α i:

g(X) = LCM{Φ 1 (X), Φ 2 (X), …, Φ 2t (X)}

Bậc của mỗi đa thức tối giản nhỏ hơn s g(X) có bậc lớn nhất là 2st, do đó số kí

tự kiểm tra của mã tạo ra bởi g(X) không quá 2st

Ngày đăng: 14/01/2016, 18:11

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w