Các bộ cân bằng
297
rcvmsg = pskdemod(msgEq,M); % Giải điều chế
disp('Truong hop 1:')
[numerr1,SER1] = symerr(orgmsg,rcvmsg) % Số ký hiệu lỗi và tỷ lệ ký hiệu
lỗi
toc
tblen = 2; % Traceback depth
tic
msgEq = mlseeq(filtmsg,chanest,const,tblen,'rst'); % Cân bằng.
rcvmsg = pskdemod(msgEq,M); % Giải điều chế
disp('Truong hop 2:')
[numerr2,SER2] = symerr(orgmsg,rcvmsg) % Số ký hiệu lỗi và tỷ lệ ký hiệu
lỗi
toc
Kết quả xuất ra màn hình:
Truong hop 1:
numerr1 =
0
SER1 =
0
Elapsed time is 0.010000 seconds.
Truong hop 2:
numerr2 =
0
SER2 =
0
Elapsed time is 0.050000 seconds.
Chế độ hoạt động liên tục (continuos mode):
Trong trường hợp dữ liệu vào được phân hoạch thành nhiều vector nối tiếp nhau thì cách thích
hợp nhất là sử dụng bộ cân bằng MLSE ở chế độ liên tục. Trong chế độ này, hàm mlseeq sẽ
lưu lại các trạng thái trong của nó sau mỗi lần thực hiện và sẽ dùng các giá trị lưu trữ này làm
các giá trị khởi đầu trong lần thực hiện tiếp theo. Để hoạt động ở chế độ liên tục, ta chọn
thông số
opmode = ‘cont’
. Quá trình thực hiện cân bằng trong chế độ liên tục gồm 2 bước
như sau:
o Trước khi bắt đầu vòng lặp, khởi tạo ba ma trận rỗng
sm
,
ts
,
ti
để lưu các độ đo trạng
thái, các trạng thái traceback và các ngõ vào traceback.
o Trong mỗi vòng lặp, dùng hàm mlseeq như sau:
[y,sm,ts,ti] = mlseeq(x,chcoeffs,const,tblen,'cont',nsamp,sm,ts,ti);
Dùng các thông số
sm
,
ts
,
ti
làm các thông số khởi đầu của lần lặp hiện tại, đồng thời sau
khi thực hiện xong, hàm
mlseeq
lại cập nhật các giá trị ở cuối lần lặp vào trong các ma trận
sm
,
ts
,
ti
chuẩn bị cho lần lặp kế.