Uploaded by Quỳnh Lê Công

Thuật toán CVSD

advertisement
Thuyết minh Thuật toán
Điều chế Delta độ dốc biến đổi liên tục
(Continuously Variable Slope Delta modulation)
1. Lượng tử hóa vi sai
Lượng tử hóa vi sai là một kỹ thuật mã hóa trong đó sự khác biệt giữa mẫu hiện tại và giá trị
dự đoán cho mẫu tiếp theo được lượng tử hóa. Loại lượng tử hóa này có lợi vì dải động của
tín hiệu chênh lệch (phương sai) nhỏ hơn so với tín hiệu đầu vào chưa được xử lý. Do đó,
cần ít mức lượng tử hóa hơn để giữ nguyên Tỷ lệ tín hiệu trên nhiễu (SNR). Ngoài ra, số
lượng mức lượng tử hóa có thể giữ nguyên cho phép mã hóa tín hiệu khác biệt bằng cách sử
dụng tất cả băng thông có sẵn, dẫn đến độ phân giải cao hơn và chất lượng tín hiệu được cải
thiện.
GIẢI MÃ
MÃ HÓA
x(n)
d(n)
c(n)
+
Q
Q -1
d QD (n)
x QD (n)
+
-
x PD (n)
P(z)
Q -1
x P (n )
P(z)
x Q (n )
d Q (n)
+
GIẢI MÃ
Hình 1: Sơ đồ khối lượng tử hóa vi sai.
Hình 1 là sơ đồ khối minh họa hệ thống lượng tử hóa vi sai. Tất cả các tín hiệu được biểu
diễn bằng các ký hiệu thời gian rời rạc với ý nghĩa: 𝑥(𝑛) là biểu diễn rời rạc của 𝑥(𝑡). Chú
ý bộ giải mã nằm trong đường phản hồi của bộ mã hóa. Vì vậy, bộ giải mã đang thực hiện
nghịch đảo của bộ mã hóa. Khối có nhãn 𝑸 chuyển đổi tín hiệu sai biệt 𝑑(𝑛) sang dạng biểu
diễn nhị phân phù hợp để truyền dẫn và khối có nhãn 𝑸−𝟏 thực hiện điều ngược lại. Trong
thực tế, quá trình chuyển đổi 𝑑(𝑛) thành 𝑐(𝑛) và trở lại 𝑑𝑄𝐷 (𝑛) là một yếu tố quan trọng
trong mô hình không lý tưởng của lượng tử hóa vi phân. Tuy nhiên, phân tích cơ bản của hệ
thống được đơn giản hóa bằng cách giả sử các khối 𝑸 và 𝑸−𝟏 triệt tiêu nhau, tức là
𝑸(𝒛)𝑸−𝟏 (𝒛) = 𝟏, suy ra 𝑫𝑸 (𝒛) = 𝑫(𝒛). Sử dụng giả định này, hàm truyền của bộ mã hóa
trong điều kiện miền 𝒛 là:
𝑯𝑬𝑵𝑪 (𝒛) =
Thật vậy:
𝑪(𝒛)
= 𝑸(𝒛)[𝟏 − 𝑷(𝒛)]
𝑿(𝒛)
(1)
𝐂(𝐳) = 𝐐(𝐳)𝐃(𝐳) = 𝐐(𝐳)[𝐗(𝐳) − 𝐗 𝐏 (𝐳)] = 𝐐(𝐳)[𝐗(𝐳) − 𝐏(𝐳)𝐗 𝐐 (𝐳)]
= 𝐐(𝐳){𝐗(𝐳) − 𝐏(𝐳)[𝐗 𝐏 (𝐳) + 𝐃𝐐 (𝐳)]}
= 𝐐(𝐳){𝐗(𝐳) − 𝐏(𝐳)[𝐗 𝐏 (𝐳) + 𝐃(𝐳)]}
= 𝐐(𝐳){𝐗(𝐳) − 𝐏(𝐳){𝐗 𝐏 (𝐳) + [𝐗(𝐳) − 𝐗 𝐏 (𝐳)]}} = 𝐐(𝐳){𝐗(𝐳) − 𝐏(𝐳)𝐗(𝐳)}
Suy ra:
𝐇𝐄𝐍𝐂 (𝐳) =
𝐂(𝐳)
= 𝐐(𝐳)[𝟏 − 𝐏(𝐳)]. ∎
𝐗(𝐳)
Hàm truyền của bộ giải mã là:
𝐇𝐃𝐄𝐂 (𝐳) =
𝐗 𝐐𝐃 (𝐳)
𝟏
=
𝐂(𝐳)
𝐐(𝐳)[𝟏 − 𝐏(𝐳)]
(2)
Thật vậy:
𝐗 𝑸𝑫 (𝐳) = 𝐗 𝑸𝑫 (𝐳) 𝑷(𝒛) + 𝐃𝑸𝑫 (𝐳) = 𝐗 𝑸𝑫 (𝐳) 𝑷(𝒛) + 𝑪(𝒛)𝑸−𝟏 (𝒛)
Suy ra:
𝐗 𝑸𝑫 (𝐳)[𝟏 − 𝑷(𝒛)] = 𝑪(𝒛)𝑸−𝟏 (𝒛)
Suy ra:
𝑯𝑫𝑬𝑪 (𝒛) =
𝐗 𝑸𝑫 (𝐳)
𝟏
=
.∎
𝑪(𝒛)
𝑸(𝒛)[𝟏 − 𝑷(𝒛)]
Từ (1) và (2) ta có: 𝑯(𝒛) = 𝑯𝑬𝑵𝑪 (𝒛)𝑯𝑫𝑬𝑪 (𝒛) = 1, suy ra 𝐗 𝑸𝑫 (𝐳) = 𝑿(𝒛). Như vậy, tín hiệu
được khôi phục sau bộ mã hóa.
Trong mô hình trên:
𝑸(𝒛) được gọi là Bộ lượng tử
𝑷(𝒛) được gọi là bộ dự đoán và thường có dạng 𝑷(𝒛) = ∑𝑷𝟎 𝒂𝒌 𝒛−𝒌 , với 𝒂𝒌 là hệ số
trọng số của 𝒛−𝒌 . Đây chính là đáp ứng của bộ lọc FIR hữu hạn.
2. Điều chế Delta (DM)
DM là một lược đồ lượng tử hóa vi phân sử dụng lượng tử hóa hai mức (tức là lượng tử hóa
một bit). Bằng cách sử dụng một bit duy nhất để đại diện cho mỗi mẫu, tốc độ mẫu và tốc
độ bit là tương đương. Do đó, tốc độ lấy mẫu liên quan trực tiếp đến chất lượng tín hiệu
(SNR). Ngoài ra, Băng thông của tín hiệu đầu vào và giới hạn băng tần của đầu ra là những
yếu tố quan trọng trong việc xác định chất lượng tín hiệu.
Thuật toán DM đầu tiên được hình thành vào năm 1946. Trong 50 năm qua, hai thuật toán;
Linear DM (LDM) và CVSD, đã nhận được sự quan tâm đáng kể từ những người quan tâm
đến các phương pháp hiệu quả để số hóa giọng nói. LDM là dạng DM cơ bản nhất, ít phức
tạp nhất. Do đó, hướng dẫn này sẽ cố gắng cung cấp hiểu biết về LDM làm nền tảng để hiểu
các thuật toán DM phức tạp hơn. Thuật toán CVSD, một tiêu chuẩn đã được chấp nhận và
được ứng dụng rất nhiều trong cả lĩnh vực quân sự và dân sự cũng sẽ được đề cập.
2.1. DM tuyến tính
Bộ điều chế DM tuyến tính là bộ lượng tử hóa vi sai, trong đó bộ dự báo 𝑷(𝒛) có dạng FIR
bậc nhất và Bộ lượng tử 𝑸 là Bộ lượng tử hai mức (1 bít). Tức là:
𝑷(𝒛) = 𝒂𝒛−𝟏
𝟏, nếu 𝐝(𝐧) ≥ 𝟎
𝑸(𝒅(𝒏)) = {
𝟎, nếu 𝐝(𝐧) ≤ 𝟎
Hình 2 là sơ đồ mô tả các thuật toán bộ mã hóa và giải mã LDM.
MÃ HÓA
x(n)
GIẢI MÃ
d(n)
+
c(n)
Q
Q -1
d QD (n)
+
x QD (n)
LPF
x QDF (n)
Q -1
az -1
x PD (n)
d Q (n )
BỘ TÍCH PHÂN
x P (n )
az -1
x Q (n )
+
BỘ TÍCH PHÂN
Hình 2: Sơ đồ khối LDM.
Trong bộ mã hóa, hàm truyền giữa 𝑑𝑄 (𝑛) và 𝑥𝑃 (𝑛) được biểu diễn như sau:
𝐗 𝑷 (𝐳)
𝒂𝒛−𝟏
=
𝐃𝑸 (𝐳) 𝟏 − 𝒂𝒛−𝟏
(3)
Trong bộ giải mã, hàm truyền giữa 𝑑𝑄𝐷 (𝑛) và 𝑥𝑄𝐷 (𝑛) được biểu diễn như sau:
𝐗 𝑸𝑫 (𝐳)
𝟏
=
𝐃𝑸𝑫 (𝐳) 𝟏 − 𝒂𝒛−𝟏
(4)
Phương trình (3) và (4) biểu diễn các tích phân thời gian rời rạc (nếu 𝒂 = 𝟏). Nếu 𝒂 <
𝟏, chúng sẽ là các bộ tích phân suy giảm. McDonald và Noll đều đề xuất 𝐚 = 𝟏 để đạt được
dự đoán tối ưu. Một bộ tích phân thuần túy (𝒂 = 𝟏) sẽ gây ra lỗi bit, tràn bit nhanh hơn so
với 𝒂 < 𝟏. Trong thực tế, giá trị của 𝒂 < 𝟏 được ưu tiên hơn.
Bộ lượng tử 𝑸 trong hình 2 hoạt động giống như một bộ so sánh. Khi đầu vào 𝑑(𝑛) vượt
quá 0, nó sẽ xuất ra logic 1, khi đầu vào nhỏ hơn 0 thì đầu ra là logic 0. Do đó, đầu ra của 𝑸
là một bit đơn, cho biết dấu của 𝑑(𝑛). Bộ lượng tử nghịch đảo 𝑸−𝟏 chuyển đổi mức logic
thành delta 𝑑𝑄 (𝑛) như được hiển thị trong bảng dưới đây.
Dấu của 𝑑(𝑛)
𝑐(𝑛)
𝑑𝑄 (𝑛)
-
0
-∆
+
1
∆
Giá trị của ∆ đóng một vai trò quan trọng trong hoạt động của LDM. Nếu
∆ là tương đối nhỏ, việc theo dõi các tín hiệu thay đổi chậm, biên độ thấp là khá tốt. Nhưng
nếu biên độ tín hiệu biến đổi nhanh và đột ngột, sự theo dõi nói chung kém. Khi DM không
thể theo kịp với tín hiệu đầu vào, một hiện tượng được gọi là quá tải dốc sẽ xảy ra, như thể
hiện trong Hình 3.
𝐐 (𝐧)
QUÁ TẢI DỐC
QUÁ TẢI DỐC
Hình 3: Quá tải dốc trong LDM.
Việc tăng giá trị của ∆ có thể làm giảm bớt ảnh hưởng của quá tải dốc nhưng lại tạo ra một
vấn đề mới; nhiễu lượng tử. Với ∆ có biên độ lớn, các tín hiệu có biên độ thấp sẽ không được
lượng tử hóa ở mức đủ tốt và chúng sẽ xuất hiện dưới dạng nhiễu lượng tử, xem Hình 4.
Dạng nhiễu lượng tử chỉ đơn giản là một chuỗi các bít 1 - 0 đan xen cho biết biên độ tín hiệu
đầu vào không thay đổi. Vì mẫu bit 1 - 0 đan xen có giá trị trung bình bằng 0, tín hiệu ra sau
bộ giải mã sẽ có tích phân về 0.
x Q (n )
x(t)
Nhiễu lượng tử
Hình 4. Nhiễu lượng tử trong LDM.
2.2. CVSD
Các vấn đề về nhiễu lượng tử và quá tải dốc có thể được giảm thiểu đáng kể bằng cách thực
hiện các điều chỉnh động đối với bước lượng tử ∆ của bộ định lượng. Các thuật toán DM
thích ứng (ADM) cố gắng thực hiện điều này bằng điều chỉnh ∆ nhỏ đối với các tín hiệu thay
đổi chậm và lớn đối với các tín hiệu thay đổi nhanh. Thuật toán ADM được công bố rộng rãi
nhất được là CVSD. Nó được Greefkes và Riemens đề xuất lần đầu tiên vào năm 1970.
Trong thuật toán CVSD, các thay đổi của ∆ thích ứng dựa trên ba hoặc bốn kết quả mẫu đầu
ra trước đây (tức là 𝑐(𝑛), 𝑐(𝑛 − 1) , 𝑐(𝑛 − 2) , 𝑐(𝑛 − 3) ). Hình 5 và Hình 6 cho thấy sơ đồ
khối của các thuật toán mã hóa và giải mã CVSD tương ứng. Lưu ý rằng chỉ có ba mẫu cuối
cùng của 𝑐(𝑛) được sử dụng ở đây.
x(n)
d(n)
c(n)
+_
Q
x P (n)
d Q (n )
I1
±1
x
L
∆
z -1
x
+
I2
∆MIN
∆MAX
Q -1
Hình 5: Sơ đồ khối bộ mã hóa CVSD.
z -1
c(n)
L
z -1
±1
d QD (n)
x
∆
z -1
x QD (n)
LPF
x QDF (n)
I1
+
x
I2
∆MAX
∆MIN
Q -1
Hình 6: Sơ đồ khối bộ giải mã CVSD.
Khối có nhãn 𝑸−𝟏 , trước đây được hiển thị trong Hình 2, đã được thay thế bằng hai khối trễ
một mẫu ghép nối tiếp (𝒛−𝟏 ) và các khối logic AND để phát hiện khi nào xảy ra hiện tượng
ba chuỗi liên tiếp của c(n) cùng là 1 hoặc 0. Chiều cao của bước lượng tử tối thiểu và tối đa
được đặt bằng ∆𝑀𝐼𝑁 và ∆𝑀𝐴𝑋 , tương ứng. Khi các chuỗi của ba số 0 hoặc ba số 1 liên tiếp
không xảy ra trong một khoảng thời gian đủ lâu để đầu ra của bộ tích phân 𝑰𝟐 giảm xuống
gần bằng 0, thuật toán khi đó sẽ tương đương với LDM. Hằng số thời gian cho bộ tích phân
𝑰𝟐 và bộ tích phân 𝑰𝟏 thường lần lượt là 4 ms và 1 ms. Trong tài liệu CVSD, bộ tích phân 𝑰𝟏
thường được gọi là bộ tích phân cơ bản (principle integrator) và bộ tích phân 𝑰𝟐 là bộ tích
phân âm tiết (syllabic integrator). Cái gọi là tích phân âm tiết bắt nguồn từ độ dài của âm
tiết. Trên thực tế, một âm tiết có thời lượng khoảng 100 mili giây, tuy nhiên, sự thay đổi về
cao độ theo thứ tự thì lại khoảng 10 mili giây. Do đó, 4 ms dường như là tốt nhất đối với
hằng số thời gian (cao độ) của bộ tích phân âm tiết. Khối có nhãn 𝑳 thực hiện chuyển đổi
mức đơn giản (tức là khi 𝑐(𝑛) = 1, đầu ra 𝑳 bằng 1; khi 𝑐(𝑛) = 0, đầu ra 𝑳 bằng −1 ).
Thuật toán CVSD này còn được gọi là “DM được điều khiển bằng kỹ thuật số”.
Hình 7 hiển thị đầu ra của bộ tích phân 𝑰𝟏 (𝑥𝑃 (𝑛) trong bộ mã hóa và 𝑥𝑃𝐷 (𝑛) trong bộ
giải mã). Khi so sánh với Hình 3 và Hình 4, độ quá tải dốc và nhiễu lượng tử được giảm bớt.
x P (n)
x(t)
Hình 7: Nhiễu lượng tử trong CVSD.
3. Tài liệu tham khảo
[1] Continuously Variable Slope Delta Modulation: A Tutorial. MX-COM Inc.
www.mxcom.com.
Download