MATLAB ỨNG DỤNG TRONG VIỄN THÔNG - Trang 328

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ế.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.