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

Mã hóa kênh truyền

263

c = bchenc(msgw,n,k); % Mã hoá dữ liệu.

noise = randerr(nw,n,t); % Mỗi hàng có t lỗi, nhiễu là ma trận nhị phân

cnoisy = c + noise % Cộng nhiễu vào các từ mã.

[dc,nerrs,corrcode] = bchdec(cnoisy,n,k) % Giải mã thông điệp.

% Kiểm tra hoạt động của bộ giải mã.

chk2 = isequal(dc,msgw) & isequal(corrcode,c)

nerrs % Số lỗi đã được sửa ứng với mỗi từ của thông điệp.

Kết quả thực hiện chương trình như sau (

msgw:

thông điệp gốc,

cnoisy

: thông điệp mã hoá

bị lỗi,

dc

: thông điệp sau khi giải mã):

msgw = GF(2) array.

Array elements =

1 1 1 0 1

1 0 1 1 1

0 1 1 0 0

1 1 1 0 0

cnoisy = GF(2) array.

Array elements =

Columns 1 through 13

1 0 1 0 0 0 1 1 0 0 1 0 1

1 0 1 0 1 1 0 0 0 1 1 1 0

0 1 1 0 0 1 0 0 0 1 0 1 1

1 1 1 0 0 1 0 1 0 1 0 0 0

Columns 14 through 15

0 1

0 1

1 0

1 1

dc = GF(2) array.

Array elements =

1 1 1 0 1

1 0 1 1 1

0 1 1 0 0

1 1 1 0 0

nerrs =

3 3 3 3

corrcode = GF(2) array.

Array elements =

Columns 1 through 13

1 1 1 0 1 0 1 1 0 0 1 0 0

1 0 1 1 1 0 0 0 0 1 0 1 0