Thứ Bảy, 11 tháng 7, 2020

4.43 Tối ưu tham số lượng tử bằng giải thuật Lloyds

Sử dụng giải thuật Lloyds để tối ưu các tham số lượng tử ở ví dụ trên.

Giải: Với giải thuật Lloyds, chúng ta sử dụng hàm lloyds() với chương trình Matlab như sau. 
 
% Thời gian của tín hiệu, chọn 1 chu kỳ với một bước mẫu là 0.1
t = [0:.1:2*pi];
% Tạo tín hiệu cos
sig = sin(t);
% Chia vùng
partition = [-1:.2:1]; % Length 11, to represent 12 intervals
% Từ mã
codebook = [-1.2:.2:1]; % Length 12, one entry for each interval
% Lượng tử
[index,quants,distor] = quantiz(sig,partition,codebook); % Quantize.
%
% Vẽ tín hiệu trước và sau khi lượng tử
plot(t,sig,'x',t,quants,'.','linewidth',2)
% Tối ưu dùng Lloyds
[partition,codebook] = lloyds(sig, codebook)
[index,quants,distor] = quantiz(sig,partition,codebook); % Quantize.
% Vẽ trên cùng đồ thị
hold on
% Vẽ tín hiệu trước và sau khi lượng tử
plot(t,quants,':','linewidth',2)
% Chú thích cho hình
legend('Tín hiệu gốc','Tín hiệu lượng tử','Tín hiệu lượng tử dùng Lloyds');
% Điều chỉnh vùng vẽ theo trục x và trục y của hình
axis([-.2 max(t) -1.2 1.2])
set(gcf,'color','white');
xlabel('t');

Đồ thị so sánh hiệu quả của phương pháp lượng tử Lloyds.

Để truyền thông tin của tín hiệu ở trên, chúng ta cần truyền 63 mẫu với mỗi mẫu dùng 4 bit do có 12 mức. Do đó, tổng số bit chúng ta cần dùng là 252 bit. Để giảm tổng số bit cần truyền, thay vì truyền đầy đủ thông tin của từng mẫu, chúng ta chỉ truyền độ lệch giữa mẫu hiện tại và mẫu trước đó. Xem thêm Ví dụ 4.44 về mã DPCM.

Không có nhận xét nào:

Đăng nhận xét

2.16 Tìm giá trị nhỏ nhất và lớn nhất trong ma trận

Cho ma trận X = [1 2 3; 4 5 6; 7 8 9]. Hãy a. Tìm giá trị lớn nhất và giá trị nhỏ nhất theo hàng. b. Tìm giá trị lớn nhất và nhỏ nhất theo...