Professional Documents
Culture Documents
Chương 1
SỐ HÓA TÍN HIỆU – LẤY MẪU VÀ MÃ HÓA
1. Lấy mẫu
Tín hiệu tương tự liên tục theo thời gian nhưng trong quá trình xử lý tín hiệu,
thông thường ta xử lý trên tín hiệu số. Do đó cần phải thực hiện chuyển đổi tín hiệu
liên tục thành tín hiệu rời rạc để xử lý. Quá trình này gọi là lấy mẫu tín hiệu
(sampling), đó là thay tín hiệu liên tục bằng biên độ của nó ở những thời điểm cách
đều nhau, gọi là chu kỳ lấy mẫu. Các giá trị này sẽ được chuyển thành số nhị phân để
có thể xử lý được. Vấn đề ở đây là phải lấy mẫu như thế nào để có thể khôi phục lại tín
hiệu gốc. Tín hiệu lấy mẫu của tín hiệu gốc s(t) biểu diễn là s(nT) với T là chu kỳ lấy
mẫu.
s(nT) = s(t)u(t) (1.1)
trong đó u(t) là chuỗi xung Dirac
∞
u(t) = ∑ δ(t − nT)
n = −∞
(1.2)
Phổ của tín hiệu lấy mẫu là tích chập của S(f) và U(f), do đó:
1 ∞ n
Ss(f) = S(f)*U(f) = ∑
T n =−∞
S(f − )
T
(1.3)
s
f
t 0
f
t
0 1/T
Hình 1.1 – Tín hiệu lấy mẫu và phổ
Quá trình lấy mẫu mô tả ở trên là quá trình lấy mẫu lý tưởng. Trong thực tế, do
tín hiệu u(t) là các xung lấy mẫu với chu kỳ T, độ rộng τ và biên độ a nên phổ tín hiệu
thực tế sẽ không chỉ là hàm S(f) mà là:
sin( πfτ)
S(f)aτ (1.4)
πfτ
nT + τ / 2
fs = 16f fs = 8f
fs = 4f fs = 2f
Hình 1.2 – Lấy mẫu tín hiệu với các tần số khác nhau
Như vậy, ta thấy rằng nếu tần số lấy mẫu càng cao thì dạng của tín hiệu càng có
khả năng khôi phục giống như tín hiệu gốc. Tuy nhiên, nếu tần số càng cao thì cần
phải dùng dung lượng lớn hơn để lưu trữ và đồng thời tốc độ xử lý sẽ chậm lại do cần
xử lý số lượng dữ liệu lớn. Từ đó, ta cần xác định tần số lấy mẫu sao cho có thể khôi
phục lại gần đúng dạng tín hiệu với yêu cầu tốc độ xử lý giới hạn trong mức cho phép.
∞
sin π( t / T − n )
s(t) = ∑ s(nT)
n = −∞ π( t / T − n )
(1.8)
s
Ss
f
0 fs = 1/T t
h
H
fs/2
f
0 t
t
0
Hình 1.3 - Khôi phục tín hiệu sau khi lấy mẫu
Như vậy, ta có thể khôi phục lại tín hiệu trước khi lấy mẫu khi phổ tín hiệu sau
khi qua mạch lọc phải giống hệt với phổ tín hiệu gốc. Theo hình 1.3, điều kiện này
thoả mãn khi phổ tín hiệu gốc không chứa thành phần tần số lớn hơn fs/2.
Trong trường hợp ngược lại, phổ của tín hiệu lấy mẫu sẽ bị méo dạng nên khi
sử dụng mạch lọc để khôi phục tín hiệu thì tín hiệu này sẽ khác với tín hiệu gốc, hiện
tượng này gọi lài chồng phổ (aliasing).
Ss
1.3. Lấy mẫu tín hiệu sin và tín hiệu ngẫu nhiên
1.3.1. Tín hiệu sin
Xét s(t) = cos(2πft+θ) với 0 ≤ θ ≤ π/2 được lấy mẫu với chu kỳ T = 1. Tín hiệu
lấy mẫu là:
s(n) = cos(2πfn+θ) (1.9)
Nếu tỉ số f/fs = f là số hữu tỉ, nghĩa là f = N1/N2 với N1, N2 là các số nguyên:
s(n + N2) = cos(2πf(n + N2)+θ) = cos(2πfn+θ) = s(n) (1.10)
Như vậy, tập hợp s(n) là tập hợp có chu kỳ N2 Æ không cần phải lấy mẫu toàn
bộ tín hiệu sin mà chỉ cần lấy mẫu một phần.
2. Lượng tử hoá
Lượng tử hoá là quá trình xấp xỉ các giá trị của tín hiệu lấy mẫu s(nT) bằng bội
số của một giá trị q (q gọi là bước lượng tử). Nếu q không thay đổi thì quá trình lượng
tử gọi là đồng nhất. Quá trình này thực hiện bằng hàm bậc thang mô tả như sau:
5
1
sq(n)
-1
-2
-3
-4
-5
-6 -4 -2 0 2 4 6
s(n)
-2
-4
-6
-8
-10
0 1 2 3 4 5 6
-1
Như vậy, quá trình lượng tử hóa sẽ làm méo dạng tín hiệu và xem như tồn tị
một tín hiệu nhiễu. Sự méo dạng này gọi là méo lượng tử hay còn gọi là nhiễu lượng
tử.
s(n) = sq(n) + e(n) (1.15)
Biên độ của tín hiệu nhiễu lượng tử sẽ nằm trong khoảng (-q/2,q/2). Do sai số
lượng tử không biết trước nên việc mô tả sai số lượng tử mang tính thống kê. Tổng
quát, ta có thể xem e(n) là chuỗi các biến ngẫu nhiên trong đó:
- Thống kê của e(n) không thay đổi theo thời gian (nhiễu lượng tử hóa là
quá trình ngẫu nhiên dừng).
- Nhiễu lượng tử e(n) là chuỗi các biến ngẫu nhiên không tương quan.
- Nhiễu lượng tử e(n) không tương quan với tín hiệu ngõ vào s(n).
- Hàm mật độ xác suất của e(n) phân bố đều trên tầm các giá trị của sai
số lượng tử.
Như vậy, nhiễu lượng tử được phân bố đều trên khoảng (-q/2,q/2) và có phương
sai (công suất nhiễu lượng tử) là:
q2
σ e2 = (1.16)
12
Tín hiệu được lấy mẫu và lượng tử hóa bao gồm một tập hợp các số và được
lưu trữ ở dạng nhị phân. Đối với số nhị phân N bit sẽ có tối đa 2N giá trị khác nhau ứng
với 2N mức lượng tử khác nhau. Như vậy, phạm vi lượng tử sẽ bị giới hạn trong
khoảng từ q đến 2Nq, bất kỳ biên độ tín hiệu nào vượt quá giá trị này thì sẽ bị cắt bỏ.
Giả sử tín hiệu mã hóa có biên độ trong khoảng [-Am,Am]:
Am = 2Nq/2 (1.17)
Từ đó, giả sử công suất tín hiệu là σ s2 thì tỷ số tín hiệu trên nhiễu lượng tử hóa
(SQNR – Signal to Quantizing Noise Ratio) là:
σ s2 A
SQNR [dB] = 10 log 2 = 6.02(N-1) + 10.79 - 20 log m (1.18)
σe σs
3. Mã hoá
Tín hiệu ở ngõ ra bộ lượng tử hóa được đưa đến bộ mã hóa, bộ mã hóa sẽ gán
một số nhị phân cho mỗi mức lượng tử. Quá trình này gọi là mã hóa.
Có nhiều phương pháp mã hóa khác nhau nhưng trong đa số hệ thống xử lý tín
hiệu số sử dụng phương pháp bù 2. Một ví dụ đối với N = 3 như sau:
Ngoài phương pháp mã hóa tuyến tính như trên (các mức lượng tử có cùng số
bit nhị phân bằng nhau), ta còn sử dụng phương pháp mã hóa phi tuyến. Phương pháp
này sử dụng các bước lượng tử thay đổi theo biên độ tín hiệu. Một phương pháp được
chuẩn hóa bởi CCITT là luật mã hóa 13 đoạn thường dùng trong mạng viễn thông.
Luật mã hóa 13 đoạn (13-segment coding law) thực hiện chuyển đổi biên độ
của tín hiệu x thành tín hiệu y như sau:
⎧ 16x 0≤ x ≤ 1
64
⎪
⎪ 8x + 8 ≤x≤
1 1 1
64 32
⎪ 4 x + 14 1
≤ x ≤ 161
⎪
32
y = ⎨ 2x + 83 1
16 ≤ x ≤ 18 (1.19)
⎪ x+1 1
≤x≤ 1
⎪ 2 8 4
⎪21
x + 5
8
1
4 ≤ x ≤ 12
⎪1 x + 3
2 ≤ x ≤1
1
⎩4 4
111 0.9
110 0.8
101 0.7
100 0.6
0.5
011
0.4
010
0.3
001 0.2
0.1
000
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1