Kênh truyền và đánh giá chất lượng kênh truyền
240
Nếu muốn mô phỏng kênh truyền đảo bit nhị phân với các tính chất thống kê liên quan đến số
bit lỗi trong một từ mã, ta có thể dùng hàm randerr. Hàm này tạo ra một ma trận gồm các
phần tử 0 hoặc 1. Nếu ta xem mỗi hàng của ma trận ứng với một từ mã thì số phần tử 1 trong
mỗi hàng sẽ biểu diễn số bit lỗi trong mỗi từ mã. Ta có thể quy định số bit lỗi trong một từ mã
với một xác suất cho trước. Ví dụ để tạo ma trận nhị phân 5x4 (5 từ mã 4 bit) sao cho số
lượng bit 1 trong mỗi hàng sẽ bằng 1 với xác suất bằng 0.3 và bằng 2 với xác suất bằng 0.7:
>> f=randerr(3,4,[1,2;0.3,0.7])
f =
f =
0 0 0 1
0 1 1 0
0 1 0 1
Ví dụ 16-5. Khảo sát mã chập bằng cách sử dụng mô hình kênh truyền đảo bit nhị phân
với xác suất đảo bit là 0.01.
t = poly2trellis([4 3],[4 5 17;7 4 2]); % Mã hoá Trellis
msg = ones(10000,1); % Dữ liệu mã hóa
code = convenc(ones(10000,1),t); % Mã hóa bằng mã chập.
[ncode,err] = bsc(code,.01); % Tạo các lỗii bit.
numchanerrs = sum(sum(err)) % Tổng số lỗi của kênh truyền
dcode = vitdec(ncode,t,2,'trunc','hard'); % Giải mã.
[numsyserrs,ber] = biterr(dcode,msg) % Số lỗi sau khi giải mã
Kết quả:
numchanerrs =
144
numsyserrs =
28
ber =
0.0028
16.4. ÑAÙNH GIAÙ CHAÁT LÖÔÏNG THOÂNG QUA MOÂ PHOÛNG (PHÖÔNG PHAÙP MONTE
CARLO)
Phương pháp cơ bản để tính tỷ lệ lỗi bit hoặc tỷ lệ lỗi ký hiệu trong một hệ thống thông tin số
là mô phỏng việc truyền một số lượng lớn các bit hoặc ký hiệu qua kênh truyền, sau đó so
sánh toàn bộ dữ liệu nhận được với toàn bộ dữ liệu trước khi truyền. Trong lý thuyết xác suất
thống kê, phương pháp tính xác suất dựa vào các phép thử như trên được gọi là phương pháp
Monte Carlo.
Các hàm biterr và symerr trong MATLAB sẽ so sánh hai tập dữ liệu cho trước và trả về số
bit lỗi hoặc số ký hiệu lỗi. Một sự khác nhau giữa hai phần tử tương ứng của hai tập dữ liệu
(có thể là bit hoặc ký hiệu) được tính là một lỗi. Thông thường, hai tập dữ liệu khảo sát là tập
dữ liệu trước khi mã hoá ở máy phát và tập dữ liệu ở máy thu sau khi giải mã.
Kết quả mô phỏng sẽ càng chính xác nếu số lượng dữ liệu mô phỏng càng nhiều. Cụ thể, ta
nên chọn tập dữ liệu đủ lớn sao cho có ít nhất 100 lỗi xảy ra.