Đặc tả thiết kế và ôn nhanh nền tảng DSP
Vị trí bài học và mục tiêu
Đây là bài mở đầu Module 1, và cũng là điểm neo cho toàn bộ đồ án cuối khóa: bậc bộ lọc, kiến trúc pipeline, số bit lượng tử hóa (quantization) sau này đều phải truy ngược về một bản đặc tả (specification) bằng số. Bạn đã nắm biến đổi Z (Z-transform), FFT và lấy mẫu (sampling) ở mức lý thuyết; bài này chỉ hệ thống hóa lại đúng phần sẽ dùng, không nhắc lại toàn bộ giáo trình DSP.
Sau 20 phút này, bạn cần làm được:
- Viết bản đặc tả bộ lọc thông thấp gồm $f_s$, $f_p$, $f_{st}$, $A_p$, $A_s$ ở dạng chuẩn hóa (normalized).
- Chuyển đổi qua lại giữa dB và độ gợn tuyến tính $\delta_p$, $\delta_s$.
- Phát biểu lại quan hệ giữa miền thời gian, miền z và miền tần số.
- Giải thích vì sao độ rộng dải chuyển tiếp (transition band) chi phối chi phí phần cứng.
Bản đặc tả bộ lọc: từ yêu cầu kỹ thuật đến con số
Một đặc tả tốt phải trả lời được câu hỏi "đo bằng gì, ngưỡng bao nhiêu" mà không cần thêm lời giải thích. Với bộ lọc thông thấp (lowpass filter), bộ năm tham số dưới đây là tối thiểu.
| Tham số | Ký hiệu | Ý nghĩa | Ví dụ |
|---|---|---|---|
| Tần số lấy mẫu | $f_s$ | nhịp lấy mẫu, chặn trên của mọi tần số xử lý được | 48 kHz |
| Mép dải thông | $f_p$ | từ 0 đến $f_p$, độ lợi phải xấp xỉ 1 | 8 kHz |
| Điểm bắt đầu dải chặn | $f_{st}$ | từ $f_{st}$ trở lên, độ lợi phải rất nhỏ | 10 kHz |
| Độ gợn dải thông | $A_p$ (dB) | dao động tối đa cho phép trong dải thông | 0.5 dB |
| Suy hao dải chặn | $A_s$ (dB) | mức chặn tối thiểu trong dải chặn | 60 dB |
Hai đại lượng dB và độ gợn tuyến tính liên hệ chặt với nhau:
$$ A_p = 20\log_{10}\frac{1+\delta_p}{1-\delta_p}, \qquad A_s = -20\log_{10}\delta_s $$
Với ví dụ trên: $\delta_s = 10^{-60/20} = 0{,}001$ và $\delta_p \approx 0{,}0288$. Con số $0{,}001$ này sẽ quay lại ở Module 2, khi bạn phải chọn số bit cho phép nhân fixed-point.
Chuẩn hóa tần số giúp đặc tả độc lập với $f_s$: $\omega = 2\pi f/f_s$ (rad/mẫu). Với ví dụ trên, $\omega_p = 2\pi \cdot 8000/48000 \approx 1{,}047$ và $\omega_{st} = 2\pi \cdot 10000/48000 \approx 1{,}309$ rad/mẫu, tức dải chuyển tiếp $\Delta\omega \approx 0{,}262$ rad/mẫu.
flowchart TD
Spec["📋<br/>Yêu cầu tín hiệu"] --> Norm["🔢<br/>Chuẩn hóa theo f_s"]
Norm --> Trans["📐<br/>Dải chuyển tiếp Δω"]
Trans --> Order["⚖️<br/>Ước lượng bậc"]
Order --> Choice["🧩<br/>FIR hay IIR"]
Bài tập 1: chuẩn hóa một đặc tả
Tín hiệu âm thanh có $f_s = 32$ kHz. Yêu cầu: dải thông đến 4 kHz với gợn 0,2 dB, chặn từ 5 kHz với suy hao 50 dB. Hãy viết đặc tả chuẩn hóa và tính $\delta_p$, $\delta_s$.
Gợi ý: $\omega_p = 2\pi \cdot 4/32 = 0{,}785$; $\omega_{st} = 2\pi \cdot 5/32 = 0{,}982$; $\Delta\omega \approx 0{,}196$ rad/mẫu. $\delta_s = 10^{-2.5} \approx 0{,}00316$; $\delta_p = (10^{0{,}01}-1)/(10^{0{,}01}+1) \approx 0{,}0115$. Nhận xét: dải chuyển tiếp hẹp hơn ví dụ trước, nên bậc bộ lọc sẽ cao hơn dù $f_s$ nhỏ hơn.
Ôn nhanh ba trụ cột: lấy mẫu, biến đổi Z, DFT/FFT
Lấy mẫu. $x[n] = x(nT)$ với $T = 1/f_s$. Định lý Nyquist yêu cầu $f_s > 2f_{max}$; vi phạm thì phổ bị chồng lấn (aliasing) và không có bộ lọc số nào cứu được. Trong miền chuẩn hóa, $f = f_s/2$ ứng với $\omega = \pi$, đó là biên trên của trục tần số số.
Biến đổi Z. Với tín hiệu rời rạc, hàm truyền (transfer function) là:
$$ H(z) = \frac{Y(z)}{X(z)} = \sum_{n=0}^{N} h[n],z^{-n} $$
Trục tần số chính là vòng tròn đơn vị $z = e^{j\omega}$, nên đáp ứng tần số $H(e^{j\omega})$ chỉ là $H(z)$ lấy trên vòng tròn đó. Hệ ổn định BIBO khi và chỉ khi mọi cực (pole) nằm trong vòng tròn đơn vị. Đây là tiêu chí bạn sẽ kiểm tra ngay sau khi thiết kế IIR ở bài 1.3.
DFT/FFT. DFT $N$ điểm rời rạc hóa phổ với bước $\Delta f = f_s/N$; chỉ $N/2$ điểm đầu là phổ hữu ích (0 đến $f_s/2$), phần còn lại là ảnh đối xứng. FFT chỉ là thuật toán tính DFT nhanh, không thay đổi bản chất phổ.
Bài tập 2: kiểm tra Nyquist và độ phân giải
(a) Với $f_s = 48$ kHz, tín hiệu vào có một thành phần nhiễu 26 kHz. Nó sẽ xuất hiện ở đâu trong phổ số? (b) Cần phân giải các thành phần cách nhau 20 Hz. Với $f_s = 48$ kHz, $N$ tối thiểu là bao nhiêu?
Gợi ý: (a) $26 > 24$ kHz nên bị chồng phổ, ảnh rơi vào $48 - 26 = 22$ kHz, nằm trong dải thông và không thể loại bằng bộ lọc số sau ADC. Đây là lý do phải có bộ lọc chống chồng phổ (anti-aliasing) tương tự phía trước. (b) $N \ge f_s/\Delta f = 48000/20 = 2400$, chọn $N = 4096$ là lũy thừa 2 gần nhất.
Hệ quả của đặc tả lên lựa chọn FIR hay IIR
Chưa cần đi vào công thức thiết kế, bạn đã có thể đọc được hai tín hiệu từ bản đặc tả. Thứ nhất, độ rộng dải chuyển tiếp là biến quyết định chi phí: dải càng hẹp, bậc càng cao, tài nguyên phần cứng càng lớn. Thứ hai, yêu cầu pha tuyến tính (linear phase) gần như khóa lựa chọn vào FIR, còn yêu cầu bậc thấp với dải chuyển tiếp hẹp thì IIR hiệu quả hơn nhưng pha phi tuyến và có nguy cơ mất ổn định khi lượng tử hóa hệ số.
Quy tắc hành nghề: ghi rõ yêu cầu pha ngay trong đặc tả. Nếu không ghi, mặc định là không ràng buộc, và bạn sẽ phải bảo vệ lựa chọn đó trước hội đồng.
Những lỗi đặc tả thường gặp và cách tránh
- Nhầm $f_p$ với tần số cắt $-3$ dB. Với FIR thiết kế theo cửa sổ, điểm $-6$ dB thường rơi giữa dải chuyển tiếp, không phải tại $f_p$.
- Đặc tả bằng Hz tuyệt đối rồi đổi $f_s$ mà không chuẩn hóa lại. Luôn lưu cả hai dạng và ghi rõ đơn vị.
- Bỏ qua dải chuyển tiếp, dẫn tới đặc tả không khả thi: $f_{st} \le f_p$ là vô nghĩa.
- Đặt $A_p = 0$ dB. Không bộ lọc thực nào đạt độ lợi phẳng tuyệt đối; hãy cho một dung sai cụ thể.
- Quên rằng mọi tần số phải nằm dưới $f_s/2$. Đặc tả có thành phần trên Nyquist là đặc tả sai ngay từ đầu.
Tổng kết và bước tiếp theo
Bản đặc tả là hợp đồng kỹ thuật của đồ án: năm tham số $f_s$, $f_p$, $f_{st}$, $A_p$, $A_s$ cộng với yêu cầu pha, tất cả ở dạng chuẩn hóa. Từ đó bạn suy ra $\delta_p$, $\delta_s$ để sau này đối chiếu với sai số lượng tử, và đọc ra ngay mức chi phí phần cứng qua độ rộng dải chuyển tiếp. Bài sau sẽ biến bản đặc tả này thành hệ số bộ lọc FIR bằng phương pháp cửa sổ (window) và Parks-McClellan, kèm công thức ước lượng bậc mà ở đây ta mới chỉ nêu định tính.
Front: Năm tham số tối thiểu của một đặc tả lọc thông thấp? Back: f_s, f_p, f_st, A_p (độ gợn dải thông), A_s (suy hao dải chặn).
Front: Độ rộng dải chuyển tiếp quyết định điều gì? Back: Bậc bộ lọc: dải chuyển tiếp càng hẹp thì bậc càng cao và chi phí phần cứng càng lớn.
Front: Chuyển suy hao dải chặn A_s (dB) sang độ gợn tuyến tính? Back: δ_s = 10^(−A_s/20).
Front: Công thức liên hệ A_p (dB) với δ_p? Back: A_p = 20log10((1+δ_p)/(1−δ_p)).
Front: Tần số Nyquist trong miền chuẩn hóa ω? Back: ω = π, tương ứng f = f_s/2.
Front: Hàm truyền H(z) của hệ rời rạc? Back: H(z) = Y(z)/X(z) = tổng h[n]·z^(−n).
Front: Trục tần số ánh xạ vào mặt phẳng z như thế nào? Back: z = e^(jω), tức vòng tròn đơn vị.
Front: Điều kiện ổn định BIBO theo biến đổi Z? Back: Mọi cực của H(z) nằm trong vòng tròn đơn vị (|p_i| < 1).
Front: Định lý lấy mẫu phát biểu điều gì? Back: f_s > 2·f_max, nếu không sẽ xảy ra chồng phổ (aliasing) không thể sửa bằng xử lý số.
Front: Độ phân giải tần số của DFT N điểm? Back: Δf = f_s/N.
Front: Nửa phổ DFT nào là hữu ích? Back: N/2 điểm đầu, từ 0 đến f_s/2; phần sau là ảnh đối xứng.
Front: Bộ lọc pha tuyến tính mang lại lợi ích gì? Back: Trễ nhóm không đổi theo tần số, dạng sóng không bị méo pha.
Front: Vì sao phải chuẩn hóa tần số theo f_s? Back: Để đặc tả độc lập với tần số lấy mẫu, dùng ω = 2πf/f_s tính bằng rad/mẫu.
Chuẩn hóa đặc tả của bạn cho đồ án: mép dải thông nằm tại _____, điểm bắt đầu dải chặn tại _____, và độ rộng dải chuyển tiếp là hiệu của hai giá trị này. Trong miền chuẩn hóa, tần số Nyquist luôn ứng với _____. Một hệ rời rạc ổn định khi mọi cực của H(z) nằm _____. Định lý lấy mẫu yêu cầu _____, còn DFT N điểm cho độ phân giải _____.