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

Các bộ cân bằng

290

mà bộ cân bằng đã phát hiện được, còn

e

là vector sai số giữa

y

và tín hiệu tham chiếu (chuỗi

huấn luyện hoặc chuỗi dữ liệu mà bộ cân bằng phát hiện).
Ví dụ 18-1. Sử dụng bộ cân bằng tuyến tính định khoảng ký hiệu, có 8 trọng số, cập nhật
theo giải thuật LMS với kích cỡ bước 0.01 để cân bằng một tín hiệu QPSK.
Trong ví dụ này, ta chọn chuỗi dữ liệu huấn luyện chính là 500 mẫu đầu tiên của tín hiệu phát.
Kết quả cân bằng được minh hoạ bằng đồ thị phân bố của các tín hiệu bị nhiễu, tín hiệu sau
khi cân bằng và tín hiệu QPSK lý tưởng.

% Thiết lập các thông số và tín hiệu.

M = 4; % Kích thước tập ký hiệu điều chế

msg = randint(1500,1,M); % Thông điệp ngẫu nhiên

modmsg = pskmod(msg,M); % Điều chế QPSK

trainlen = 500; % Chiều dài chuỗi huấn luyện

chan = [.986; .845; .237; .123+.31i]; % Các hệ số của kênh truyền

filtmsg = filter(chan,1,modmsg); % Mô phỏng méo kênh truyền.

% Cân bằng tín hiệu thu.

eq1 = lineareq(8, lms(0.01)); % Khởi tạo đối tượng mô tả bộ cân bằng.

eq1.SigConst = pskmod([0:M-1],M); % Thiết lập vector mô tả dạng tín hiệu.

[symbolest,yd] = equalize(eq1,filtmsg,modmsg(1:trainlen)); % Cân bằng.

% Vẽ đồ thị phân bố.

h = scatterplot(filtmsg,1,trainlen,'bx'); hold on;

scatterplot(symbolest,1,trainlen,'g.',h);

scatterplot(eq1.SigConst,1,0,'k*',h);

legend('Tin hieu bi meo','Tin hieu sau khi can bang',...

'Phan bo tin hieu ly tuong');

hold off;

% Tính tỷ lệ lỗi khi có và không có bộ cân bằng.

demodmsg_noeq = pskdemod(filtmsg,M); % Giải điều chế tín hiệu chưa cân

bằng.

demodmsg = pskdemod(yd,M); % Giải điều chế tín hiệu phát hiện bởi bộ cân

bằng.

[nnoeq,rnoeq] = symerr(demodmsg_noeq(trainlen+1:end),...

msg(trainlen+1:end));

[neq,req] = symerr(demodmsg(trainlen+1:end),...

msg(trainlen+1:end));

disp('Ty le loi ky hieu khi co va khong co bo can bang:')

disp([req rnoeq])

Kết quả thực thi chương trình:

Ty le loi ky hieu khi co va khong co bo can bang:

0 0.3310

Đồ thị phân bố:

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.