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

Mã hóa kênh truyền

276

msg = randint(2*len,1); % Thông điệp nhị phân ngẫu nhiên: 2 bit mỗi ký hiệu

trel = poly2trellis([5 4],[23 35 0;0 5 13]); % Định nghĩa cấu trúc trellis

code = convenc(msg,trel) % Mã hoá thông điệp.

ncode = awgn(code,7,'measured',244); % Cộng nhiễu.

% Giải mã bằng phương pháp lấy ngưỡng cứng

hcode = (1+sign(ncode-0.5))/2; % Mức ngưỡng bằng 0.5

hdecoded = vitdec(hcode,trel,34,'cont','hard'); % Giải mã.

disp('Phuong phap lay nguong cung')

[hnumber,hratio] = biterr(hdecoded(68+1:end),msg(1:end-68))

% Giải mã bằng phương pháp lấy ngưỡng mềm

% Lượng tử hoá trước khi gỉai mã.

qcode = quantiz(ncode,[0.001,.1,.3,.5,.7,.9,.999]);

sdecoded = vitdec(qcode,trel,34,'cont','soft',3); % Giải mã.

disp('Phuong phap lay nguong mem')

[snumber,sratio] = biterr(sdecoded(68+1:end),msg(1:end-68))

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

Phuong phap lay nguong cung

hnumber =

168

hratio =

0.0870

Phuong phap lay nguong mem

snumber =

43

sratio =

0.0223

#

Bài tập 17-1.

Tạo một chuỗi dữ liệu ngẫu nhiên chiều dài N = 1000 bit. Mã hoá chuỗi dữ liệu bằng các
phương pháp liệt kê ở dưới. Dùng hàm randerr để tạo lỗi ngẫu nhiên và tác động vào chuỗi
dữ liệu trên. Giải mã chuỗi dữ liệu này và so với dữ liệu gốc. Tính số lỗi và tỷ lệ lỗi.

a. Mã BCH [15,11]

b. Mã vòng [15,11] với đa thức sinh 1 + X + X

4

c. Mã Hamming [15,11]
d. Mã khối tuyến tính [15,11]
e. Mã Reeds-Solomon [15,11]

#

Bài tập 17-2.

Khảo sát mã khối tuyến tính [7,4] với ma trận sinh sau đây:

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.