MATLAB ỨNG DỤNG TRONG VIỄN THÔNG - Trang 293

Mã hóa kênh truyền

262

6 2 2 7 6 7 3

5 7 2 5 6 0 6

Hàng thứ 3 bị sai: hàng thứ 3 của dec chính là 3 phần tử đầu của hàng thứ 3 của code, hàng
thứ 3 của ccode cũng là hàng thứ 3 của code.

17.1.3. MAÕ BCH
ƒ Biểu diễn thông điệp và từ mã đối với mã BCH:
Muốn mã hoá một thông điệp bằng mã BCH thì trước hết thông điệp phải được biểu diễn
bằng một dãy Galois nhị phân (trường GF(2)) gồm k cột. Tương ứng với thông điệp này là từ
mã được biểu diễn bằng một dãy Galois nhị phân n cột. Mỗi một dòng của dãy Galois này
ứng với một từ của thông điệp.

Đối với mã BCH, n phải là một số nguyên có dạng 1

2

m

, với m là một số nguyên lớn hơn 2;

k là một số nguyên nhỏ hơn n, và với mỗi n, k chỉ có thể nhận một vài giá trị. Các giá trị cho
phép của k tuỳ theo n được trình bày trong bảng sau với các giá trị n < 1000.

Bảng 17.3.

Các giá trị của n và k đối với mã BCH

Giá trị của n

Các giá trị cho phép của k

7 4

15 5,

7,

11

31

6, 11, 16, 21, 26

63

7, 10, 16, 18, 24, 30, 36, 39, 45, 51, 57

127

8, 15, 22, 29, 36, 43, 50, 57, 64, 71, 78, 85, 92, 99

255

9, 13, 21, 29, 37, 45, 47, 55, 63, 71, 79, 87, 91, 99, 107, 115, 123, 131, 139, 147, 155, 163,
171, 179, 187

511

10, 19, 28, 31, 40, 49, 58, 67, 76, 85, 94, 103, 112, 121, 130, 139, 148, 157, 166, 175, 184,
193, 202, 211, 220, 229, 238, 241, 250, 259, 268, 277, 286, 295, 304, 313, 322, 331, 340,
349, 358, 367, 376, 385, 394, 403, 412, 421, 430, 439, 448, 457, 466, 475, 484, 493, 502

ƒ Mã hoá và giải mã BCH:
Để mã hoá và giải mã thông điệp dùng mã BCH ta sử dụng hai hàm bchencbchdec với cú
pháp tương tự như các hàm mã hoá và giải mã Reed-Solomon, chỉ khác ở chỗ các thông điệp
và từ mã là các dãy Galois trong trường GF(2) thay vì GF(

m

2 ).

>> code = bchenc(msg,n,k)

>> [decoded,cnumerr,ccode] = bchdec(code,n,k,paritypos)

Hàm bchgenpoly tạo ra đa thức sinh cho mã BCH [n,k] đồng thời trả về khả năng sửa lỗi t
của bộ mã.

>> [genpoly,t] = bchgenpoly (n,k,prim_poly)
Ví dụ 17-4. Làm lại ví dụ 17-2 với phương pháp mã hoá được sử dụng là BCH [15,5].

n = 15; k = 5; % Chiều dài từ mã và thông điệp

[gp,t] = bchgenpoly(n,k); % t là khả năng sửa lỗi.

nw = 4; % Tổng số từ của thông điệp

msgw = gf(randint(nw,k)) % Tạo thông điệp ngẫu nhiên

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.