Các bộ cân bằng
296
const
là vector định nghĩa dạng phân bố của tín hiệu lý tưởng (signal constellation)
tblen
là một số dương xác định mức độ dò (traceback depth). Bộ cân bằng thực hiện dò từ
trạng thái có độ đo tốt nhất.
nsamp
là số mẫu trên một ký hiệu ngõ vào, còn gọi là hệ số lấy mẫu quá. Nếu
nsamp
> 1 thì
chcffs
biểu diễn một kênh truyền được lấy mẫu quá.
opmode
là một chuỗi cho biết chế độ hoạt động của bộ cân bằng, có thể nhận một trong các
giá trị sau:
‘rst’
: không có delay:
>> y = mlseeq(...,'rst',nsamp,preamble,postamble)
Trong chế độ này, có thể thêm vào các vector với các phần tử từ 0 đến M-1 (M: bậc của
phương pháp điều chế) vào trước và sau chuỗi dữ liệu. Các vector này được xác định tương
ứng bởi các thông số
preamble
và
postamble
.
‘cont’
: tín hiệu ra bị delay một khoảng bằng
tblen
ký hiệu.
>> [y final_metric final_states final_inputs] = mlseeq(...,'cont'
,nsamp,init_metric,init_states,init_inputs)
Ở chế độ này, người sử dụng có thể cung cấp thêm các thông tin về các độ đo trạng thái khởi
đầu và trạng thái đầu của bộ nhớ của bộ cân bằng,... đồng thời nhận về các thông tin tương
ứng sau khi kết thúc cân bằng. Bảng 18.3 chỉ ra kích thước và giá trị có thể của các thông số
này.
Bảng 18.3.
Các thông số phụ liên quan đến hàm mlseeq
Thông số Mô
tả Kích
thước Phạm vi giá trị
init_metric Các độ đo trạng thái
1 x numStates
Số thực
init_states Các trạng thái traceback
numStates x tblen
0 đến numStates - 1
init_inputs Các ngõ vào traceback
numStates x tblen
0 đến M - 1
numStates = M^(L-1) với L là chiều dài đáp ứng xung của kênh truyền
Sau đây là một ví dụ sử dụng cú pháp cơ bản của hàm mlseeq để thực hiện cân bằng. Kết
quả càng tốt nếu mức độ dò càng lớn, tuy nhiên thời gian tính toán lâu hơn.
Ví dụ 18-4. Sử dụng bộ cân bằng MLSE với traceback depth bằng 10 để cân bằng một tín
hiệu điều chế QPSK. Tính thời gian thực thi và tỷ lệ lỗi ký hiệu. So sánh với trường hợp
traceback depth bằng 2.
M = 4; const = pskmod([0:M-1],M); % Dạng điều chế 4-PSK
orgmsg = [1 2 2 0 3 1 3 3 2 1 0 2 3 0 1]';
msg = pskmod([1 2 2 0 3 1 3 3 2 1 0 2 3 0 1]',M); % Thông diệp sau điều chế
chcoeffs = [.986; .845; .237; .12345+.31i]; % Các hệ số kênh truyền
filtmsg = filter(chcoeffs,1,msg); % Mô phỏng méo kênh truyền.
tblen = 10; % Traceback depth
chanest = chcoeffs; % Giả sử đặc tính kênh truyền đã biết trước.
tic
msgEq = mlseeq(filtmsg,chanest,const,tblen,'rst'); % Cân bằng.