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

Mã hóa kênh truyền

260

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

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

genpoly = rsgenpoly(n,k); % Tạo đa thức sinh

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

noise = (1+randint(nw,n,2^m-1)).*randerr(nw,n,t); % t lỗi trên mỗi hàng

cnoisy = c + noise; % Công nhiễu vào mã.

[dc,nerrs,corrcode] = rsdec(cnoisy,n,k,genpoly); % Giải mã.

% Kiểm tra xem bộ giải mã có hoạt động tốt không.

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

nerrs % Số lỗi đã được sửa.

msgw % Thông điệp ban đầu

cnoisy % Thông điệp mã hoá đã bị lỗi

corrcode % Thông điệp mã hoá đúng

dc % Thông điệp giải mã

Kết quả xuất hiện trên cửa sổ lệnh của MATLAB như sau:

ans =

1

nerrs =

2

2

2

2

msgw = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)

Array elements =

7 7 6

1 6 3

4 3 4

3 0 6

cnoisy = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)

Array elements =

0 7 6 4 4 5 4

1 1 0 6 4 3 1

4 3 4 5 2 6 2

3 0 6 5 5 5 3

corrcode = GF(2^3) array. Primitive polynomial = D^3+D+1 (11 decimal)

Array elements =

7 7 6 4 6 5 4

1 6 3 6 4 3 1

4 3 4 5 3 2 2

3 0 6 0 5 6 3

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.