Tài liệu xử lý số liệu - chương 1 Số hóa tín hiệu - Lấy mẫu và mã hóa
Tài liệu Xử lý số tín hiệu Chương 1 Trang 1 GV: Phạm Hùng Kim Khánh 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) = ∑∞−∞=−δn)nTt( (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 đó: Ss(f) = S(f)*U(f) = ∑∞−∞=−n)Tnf(ST1 (1.3) 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à: S(f)aττπτπf)fsin( (1.4) (do giá trị lấy mẫu là a∫τ+τ−2/nT2/nTdt)t(s) 1/T0 0 s t t f f Tài liệu Xử lý số tín hiệu Chương 1 Trang 2 GV: Phạm Hùng Kim Khánh Tuy nhiên do τ << T nên sai lệch không đáng kể. 1.1. Tần số lấy mẫu Xét tín hiệu sin có tần số f và quá trình lấy mẫu với các chu kỳ lấy mẫu 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. 1.2. Định lý lấy mẫu Định lý lấy mẫu xác định điều kiện để một tập mẫu có thể cho phép khôi phục lại chính xác tín hiệu trước khi lấy mẫu. Như khảo sát ở trên (hình 1.1), phổ của tín hiệu lấy mẫu là tín hiệu có chu kỳ trên miền tần số. Để khôi phục lại dạng của tín hiệu, ta chỉ cần giới hạn phổ tần của tín hiệu. Quá trình này có thể thực hiện bằng một mạch lọc thông thấp với hàm truyền: H(f) = ⎪⎪⎩⎪⎪⎨⎧≥<<2ff02ff0f1sss (1.5) Hay: h(t) = T/t)T/tsin(ππ (1.6) Phổ của tín hiệu sau khi khôi phục là: 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 Tài liệu Xử lý số tín hiệu Chương 1 Trang 3 GV: Phạm Hùng Kim Khánh S(f) = Ss(f)H(f) (1.7) Hay: s(t) = ∫∑∞∞−∞−∞=−π−π⎥⎦⎤⎢⎣⎡−δ 'dtT/)'tt()T/)'tt(sin()nT't()'t(sn s(t) = ∑∞−∞=−π−πn)nT/t()nT/t(sin)nT(s (1.8) 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). fs = 1/T 0 0 s t t f f f Ss H S 0 h t Hình 1.3 - Khôi phục tín hiệu sau khi lấy mẫu fs/2 f Ss Hình 1.4 – Hiện tượng chồng phổ Tài liệu Xử lý số tín hiệu Chương 1 Trang 4 GV: Phạm Hùng Kim Khánh Từ đó định lý lấy mẫu phát biểu như sau: "Một tín hiệu không chứa bất kỳ thành phần tần số nào lớn hơn hay bằng một giá trị fm có thể biểu diễn chính xác bằng tập các giá trị của nó với chu kỳ lấy mẫu T = 1/2fm" Như vậy, tần số lấy mẫu phải thoả mãn điều kiện fs ≥ 2fm trong đó fm là thành phần tần số lớn nhất có trong tín hiệu. Tần số giới hạn này được gọi là tần số Nyquist và khoảng (-fs/2,fs/2) gọi là khoảng Nyquist. Trong thực tế , tín hiệu trước khi lấy mẫu sẽ bị giới hạn bằng một mạch lọc để tần số tín hiệu nằm trong khoảng Nyquist. Ví dụ như tín hiệu âm thanh thường nằm trong khoảng (300,3400) Hz nên người ta sẽ đưa tí hiệu qua mạch lọc thông thấp để loại các thành phần tần số bậc cao và thực hiện lấy mẫu ở tần số tối thiểu là 6,8 KHz. 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. 1.3.2. Tín hiệu ngẫu nhiên Xét tín hiệu s(t) được lấy mẫu với chu kỳ T, tín hiệu ngẫu nhiên rời rạc tạo ra s(nT) sẽ có hàm phân phối xác suất biên độ giống như s(t). Hàm tự tương quan của tín hiệu rời rạc s(nT) là: r(nT) = E[s(i)s(i-nT)] (1.11) Hàm tự tương quan của tín hiệu s(t) là: rxx(τ) = E[s(t)s(t-τ)] (1.12) Như vậy, chuỗi r(n) cũng chính là chuỗi tạo ra từ quá trình lấy mẫu tín hiệu rxx(τ). Tương tự công thức (1.3), quan hệ giữa hàm mật độ phổ công suất của tín hiệu rời rạc Φd(f) và tín hiệu liên tục Φxx(f) là: Φd(f) = ∑∞−∞=⎟⎠⎞⎜⎝⎛−ΦnxxTnfT1 (1.13) Từ đó, nếu tần số tín hiệu lấy mẫu quá nhỏ hay tần số của tín hiệu ngẫu nhiên vô hạn thì sẽ gây hiện tượng chồng phổ. Nếu s(t) là tín hiệu có chu kỳ N0 thì: r(n) = ∑−=−1N0i00)ni(s)i(sN1 (1.14) cũng là chuỗi có chu kỳ N0. Tài liệu Xử lý số tín hiệu Chương 1 Trang 5 GV: Phạm Hùng Kim Khánh 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: Quá trình lượng tử có thể thực hiện bằng cách định nghĩa giá trị trung tâm của hàm lượng tử. Ví dụ như trong hình 1.5, các giá trị trong khoảng từ (n – ½)q đến (n + ½)q sẽ được làm tròn là n. Phương pháp này sẽ cực tiểu hóa công suất của tín hiệu lỗi. Một phương pháp khác có thể sử dụng là dùng hàm cắt, nghĩa là các giá trị trong khoảng [nq,(n+1)q) sẽ làm tròn thành n. Hình 1.5 – Hàm lượng tử với bước lượng tử q = 1 -6 -4 -2 0 2 4 6-5-4-3-2-1012345s(n)sq(n)Hình 1.6 – Lỗi lượng tử 0 1 2 3 4 5 6-10-8-6-4-20246810-101 Tài liệu Xử lý số tín hiệu Chương 1 Trang 6 GV: Phạm Hùng Kim Khánh 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à: 12q22e=σ (1.16) 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à 2sσ thì tỷ số tín hiệu trên nhiễu lượng tử hóa (SQNR – Signal to Quantizing Noise Ratio) là: SQNR [dB] = 2e2slog10σσ = 6.02(N-1) + 10.79 - 20smAlogσ (1.18) 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: Số nhị phân Giá trị Số nhị phân Giá trị 000 0 000 0 001 1/4 001 1/4 010 1/2 010 1/2 Tài liệu Xử lý số tín hiệu Chương 1 Trang 7 GV: Phạm Hùng Kim Khánh 011 3/4 011 3/4 111 - 1/4 100 1 110 - 1/2 101 5/4 101 - 3/4 110 3/2 100 -1 111 7/4 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: y = ⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧≤≤+≤≤+≤≤+≤≤+≤≤+≤≤+≤≤1xxxxxxxx2xx4xx8x0x162143412141852141812181161831613214132164181641 (1.19) Hình 1.7 – Mô tả luật mã hóa 13 đoạn với biên độ dương 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 100.10.20.30.40.50.60.70.80.91111 110 101 100 011 010 001 000 . 0 01 1/4 010 1/ 2 010 1/ 2 Tài liệu Xử lý số tín hiệu Chương 1 Trang 7 GV: Phạm Hùng Kim Khánh 011 3/4 011 3/4 11 1 - 1/ 4 10 0 1 110 - 1/ 2 10 1 5/4 10 1 - 3/4. ⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧≤≤+≤≤+≤≤+≤≤+≤≤+≤≤+≤≤1xxxxxxxx2xx4xx8x0x16 214 3 412 1 418 5 214 1 812 1 811 618 316 13 214 13 216 418 16 41 (1. 19) Hình 1. 7 – Mô tả luật mã hóa 13 đoạn với biên độ dương 0 0.1