Mã hóa kênh truyền
272
Trong MATLAB Communication Toolbox, dạng mô tả bằng cấu trúc trellis được biểu diễn
bằng một cấu trúc gồm có 5 trường:
Bảng 17.4.
Các trường của một cấu trúc trellis
Tên trường trong cấu trúc
t lli
Số chiều Ý
nghĩa
numInputSymbols
Vô hướng Số ký hiệu ngõ vào của bộ mã hoá
k
numOutputsymbols
Vô hướng
Số ký hiệu ngõ ra của bộ mã hoá
n
2
numStates
Vô hướng Số trạng thái trong bộ mã hoá
nextStates
Ma trận kích thước numStates x
k
2
Các trạng thái kế ứng với các tổ hợp
của trạng thái hiện tại và ngõ vào
hiện tại
outputs
Ma trận kích thước numStates x
k
2
Các ngõ ra ứng với các tổ hợp của
trạng thái hiện tại và ngõ vào hiện tại
Tên của cấu trúc do người sử dụng đặt, nhưng các trường phải có các tên như trong bảng trên.
Trong ma trận
nextStates
, mỗi phần tử là một số nguyên từ 0 đến
numStates
– 1. Phần tử
nằm ở hàng thứ i và cột thứ j chỉ thị trạng thái kế khi trạng thái hiện tại là i – 1 và các bits ngõ
vào có biểu diễn thập phân tương ứng là j – 1 (bit ngõ vào đầu tiên là bit trọng số lớn nhất
(MSB)).
Trong ma trận ngõ ra, phần tử ở hàng i và cột j là biểu diễn thập phân của các bit ngõ ra khi
trạng thái hiện tại là i – 1 và các bits ngõ vào có biểu diễn thập phân là j – 1. Bit ngõ ra đầu
tiên là bit có trọng số lớn nhất.
Để định nghĩa một cấu trúc trellis trong MATLAB, có thể dùng một trong các cách sau:
o Định nghĩa lần lượt từng trường trong số 5 trường của cấu trúc trellis, sử dụng cú pháp
tencautruc.tentruong
. Ví dụ, nếu s là tên cấu trúc, có thể viết:
>> s.numInputSymbols = 2;
o Gán giá trị cho cả 5 trường của cấu trúc trellis bằng cách dùng lệnh struct. Ví dụ:
s = struct('numInputSymbols',2,'numOutputSymbols',2,...
'numStates',2,'nextStates',[0 1;0 1],'outputs',[0 0;1 1]);
o Xuất phát từ mô tả dạng đa thức của bộ mã và sử dụng hàm poly2trellis để chuyển thành
dạng mô tả bằng cấu trúc trellis (xem lại phần mô tả dạng đa thức của bộ mã hoá chập).
Người sử dụng có thể kiểm tra một cấu trúc nào đó có phải là cấu trúc trellis hay không bằng
cách dùng hàm istrellis:
>> [isok, status] = istrellis(s)
Hàm này trả về một biến boolean
isok
, biến này bằng 1 nếu s là một cấu trúc trellis. Nếu s
không phải cấu trúc trellis thì
isok
bằng 0, đồng thời hàm istrelis trả về chuỗi
status
chỉ ra
lý do tại sao s không phải là cấu trúc trellis.
Để minh hoạ cách biểu diễn một cấu trúc trellis, ta trở lại với bộ mã hoá được giới thiệu ở đầu
phần “Mã chập”. Dạng cấu trúc trellis của nó được thể hiện ở hình 17.4. Bộ mã hoá này được
mô tả trong MATLAB bằng cấu trúc sau:
trellis = struct('numInputSymbols',2,'numOutputSymbols',4,...
'numStates',4,'nextStates',[0 2;0 2;1 3;1 3],...