Mã hóa nguồn
203
Chương 14
14.
MAÕ HOÙA NGUOÀN
Các nguồn tin tức trong đời sống vô cùng đa dạng và phong phú. Để xử lý các tin tức này
bằng các hệ thống thông tin thì trước hết các tin tức này phải được biến đổi để trở thành các
tín hiệu mà hệ thống có thể nhận biết và xử lý được. Quá trình này được gọi là qúa trình mã
hoá nguồn
, hoặc còn có các tên gọi khác như quá trình lượng tử hoá hay định dạng tín hiệu.
Mã hoá nguồn là quá trình xử lý các dữ liệu tin tức để làm giảm những phần dư thừa và để
chuẩn bị cho các thao tác xử lý cần thiết sau đó. Hai vần đề chính khi đề cập đến mã hoá
nguồn là: chuyển đổi tương tự – số và nén dữ liệu.
14.1. TAÏO MOÄT NGUOÀN TÍN HIEÄU
Trong MATLAB, cách phổ biến để biểu diễn một tín hiệu là biểu diễn dưới dạng vector hoặc
ma trận. MATLAB cung cấp hai dạng tín hiệu ngẫu nhiên dùng làm nguồn phát: nguồn ký
hiệu ngẫu nhiên và nguồn số ngẫu nhiên. Ngoài ra còn có hai dạng nguồn tín hiệu khác phục
vụ cho việc mô phỏng kênh truyền, đó là nguồn nhiễu trắng phân bố Gauss và nguồn tạo bit
lỗi để mô phỏng các bộ mã sửa sai (xem chương 16 và chương 17).
Hàm randsrc cho phép tạo ra một ma trận mà mỗi phần tử của nó được lấy từ một tập ký
hiệu cho trước với xác suất xuất hiện được quy định bởi người sử dụng. Dòng lệnh sau đây
cho phép tạo một ma trận 5x4, trong đó mỗi phần tử của nó được lấy từ một trong ba số 0,1,2
với xác suất xuất hiện tương ứng là 0.5, 0.25 và 0.25:
>> a=randsrc(5,4,[0,1,2;0.5,0.25,0.25])
a =
1 0 0 0
2 2 0 0
2 2 2 1
1 0 0 0
0 2 0 0
Nếu không chỉ rõ xác suất xuất hiện của mỗi ký hiệu thì các ký hiệu sẽ có xác suất phân bố
đều.
>> a=randsrc(2,5,[0,1])
a =
1 1 1 1 0
0 0 1 0 0
Để tạo một ma trận gồm các số nguyên ngẫu nhiên trong một khoảng cho trước, ta sử
dụng hàm randint:
>> c=randint(5,4,[2,5])
c =
2 4 3 4
4 3 5 3
3 5 5 3