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

Mã hóa kênh truyền

265

o Ma trận kiểm tra: để giải mã một thông điệp được mã hoá bằng mã khối tuyến tính [n,k],

ta dựa vào một ma trận kích thước (n-k) x n, gọi là ma trận kiểm tra H. Ma trận này thoả mãn
phương trình G.

T

H = 0 (mod 2), với G là đa thức sinh còn

T

H là ma trận chuyển vị của H.

Nếu G = [

k

I P] thì H = [-

T

P

k

n

I

]; tương tự, nếu G = [P

k

I ] thì H = [

k

n

I

-

T

P ]. Đối với mã

nhị phân thì dấu trừ trước

T

P không có ý nghĩa vì -1 = 1 (mod 2).

o Đa thức sinh (đối với mã vòng): mã vòng có một tính chất đại số đặc biệt, đó là: quá trình

mã hoá có thể được xác định hoàn toàn bởi một đa thức trong trường GF(2), gọi là đa thức
sinh. Đó là một đa thức bậc n – k và là ước của đa thức

n

X - 1.

Trong MATLAB, hàm cyclpoly được dùng để tạo ra các đa thức sinh cho mã vòng [n,k] :

>> pol = cyclpoly(n,k,opt)

Hàm này trả về một vector nhị phân gồm các hệ số của đa thức sinh liệt kê theo thứ tự tăng
dần. opt là một thông số phụ, có thể nhận các giá trị sau
Nếu

opt = ‘min’

: tạo đa thức sinh có trọng số (tức số các hệ số bằng 1) nhỏ nhất.

Nếu

opt = ‘max’

: tạo đa thức sinh có trọng số lớn nhất.

Nếu

opt = ‘all’

: tạo tất cả các đa thức sinh có thể, mỗi đa thức được biểu diễn trên một

hàng.

Nếu

opt = L

: tạo tất cả đa thức sinh có trọng số bằng L.

Nếu không có đa thức nào thoả điều kiện ràng buộc thì pol = [].
Ví dụ:

>> genpoly=cyclpoly(7,3,'all')

genpoly =

1 0 1 1 1

1 1 1 0 1

Lệnh trên tạo ra hai đa thức sinh:

4

3

2

1

X

X

X

+

+

+

4

2

1

X

X

X

+

+

+

. Ta có cùng kết quả

nếu dùng cyclpoly(7,3,4).
Ma trận sinh H và ma trận kiểm tra G được tạo bằng các hàm hammgen (mã Hamming) và
cyclgen

(mã vòng):

>> [H, G, k] = cyclgen (n, p, opt)

với p là đa thức sinh của mã vòng, opt là một thông số không bắt buộc cho biết ma trận kiểm
tra H có tính hệ thống (tức là có thể viết dưới dạng [

T

P

k

n

I

] hoặc [

k

n

I

T

P ])hay không.

Nếu opt = ‘system’ (đây là trường hợp mặc định) thì H có tính hệ thống, ngược lại nếu
opt = ‘nonsys’ thì H không có tính hệ thống.

>> [H, G, n, k] = hammgen (m)

>> [H, G, n, k] = hammgen (m, p)

trong đó m là số nguyên

≥ 3 và n =

m

2 -1, k =

m

2 - m – 1; p là một đa thức nguyên trong

GF(2).
Ví dụ:

>> [parmat,genmat] = hammgen(3)

parmat =

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.