Từ Phản Ứng Lý Tưởng Đến Bộ Lọc Thực Tế
Hamming đã trình bày một phương pháp thiết kế bốn bước cho các bộ lọc FIR sử dụng chuỗi Fourier.
Bước 1: Chỉ định Phản Ứng Lý Tưởng
Xác định H_ideal(f): phản ứng tần số chính xác mà bạn muốn. Đối với bộ lọc thông thấp: H = 1 với f < f_c, H = 0 với f > f_c. Đây là hàm bước trong miền tần số.
Bước 2: Tính Toán Các Hệ Số Fourier
Khai triển H_ideal(f) dưới dạng chuỗi Fourier trong biến tần số. Các hệ số c_k là các giá trị phản ứng xung lý tưởng của bộ lọc:
c_k = ∫₀¹ H_ideal(f) · e^{i2πfk} df
Đối với bộ lọc thông thấp với tần số cắt f_c: c_k = sin(2πf_c·k) / (πk) với k ≠ 0, c_0 = 2f_c.
Phản ứng xung này là vô hạn — hàm sinc kéo dài mãi mãi trong thời gian. Bộ lọc thực tế cần một số hệ số hữu hạn.
Bước 3: Cắt Ngắn Thành 2N+1 Số Hạng
Giữ lại chỉ các hệ số c_k với |k| ≤ N. Cửa sổ hình chữ nhật này gồm 2N+1 số hạng là cách cắt ngắn đơn giản nhất. Nó tạo ra hiện tượng Gibbs: khoảng 9% vượt quá gần tần số cắt.
Bước 4: Áp Dụng Cửa Sổ
Nhân các hệ số bị cắt ngắn với hàm cửa sổ w_k để giảm vượt quá Gibbs:
c̃_k = c_k · w_k
Các hệ số có cửa sổ c̃_k xác định bộ lọc thực tế.
Tính Toán Các Hệ Số Fourier
Công thức hệ số Fourier c_k = sin(2πf_c·k) / (πk) cho bộ lọc thông thấp với tần số cắt f_c cho phản ứng xung.
Đối với bộ lọc thông dải với tần số cắt dưới f_l và tần số cắt trên f_u, hệ số Fourier cho phản ứng lý tưởng là: c_k = [sin(2πf_u·k) − sin(2πf_l·k)] / (πk).
Cách Các Cửa Sổ Giảm Vượt Quá Gibbs
Hàm cửa sổ w_k làm dần dần dãy hệ số bị cắt ngắn từ giá trị trung tâm xuống không tại các cạnh. Việc dần dần loại bỏ các cạnh sắc nhọn được giới thiệu bởi cắt ngắn hình chữ nhật.
Tại Sao Dần Dần Hoạt Động
Vượt quá Gibbs phát sinh vì phép biến đổi Fourier của cửa sổ hình chữ nhật (hàm sinc) có các thùy phụ lớn. Các thùy phụ này cộng lại gần sự gián đoạn để tạo ra vượt quá khoảng 9%.
Cửa sổ mịn có phép biến đổi Fourier với các thùy phụ nhỏ hơn. Nhân các hệ số với cửa sổ tích chập phản ứng tần số lý tưởng với phép biến đổi Fourier của cửa sổ. Thùy phụ nhỏ hơn → gợn sóng ít hơn.
Các Cửa Sổ Phổ Biến
Hình chữ nhật (không cửa sổ): thùy phụ ≈ −13 dB, Gibbs ≈ 9%.
Hann (von Hann): w_k = 0.5 + 0.5·cos(πk/N). Thùy phụ ≈ −31 dB.
Hamming: w_k = 0.54 + 0.46·cos(πk/N). Thùy phụ ≈ −41 dB, thùy phụ đầu tiên ≈ −43 dB. Gibbs < 0.2%.
Kaiser: w_k = I₀(α·√(1−(k/N)²)) / I₀(α). Có thể điều chỉnh: α kiểm soát mức thùy phụ, cho phép thiết kế để trao đổi giữa chiều cao thùy phụ và chiều rộng dải chuyển tiếp.
Trao Đổi Cửa Sổ
Mỗi cửa sổ đều tạo ra một sự trao đổi: việc loại bỏ thùy phụ luôn làm rộng thùy chính.
Thùy chính rộng hơn có nghĩa là dải chuyển tiếp rộng hơn — phạm vi tần số giữa dải thông & dải chặn.
Hamming chính thức hóa điều này theo các tham số thiết kế Kaiser:
- δ: gợn sóng cho phép (dung sai dọc từ lý tưởng — bộ lọc có thể sai bao nhiêu từ 0 hoặc 1)
- ΔF: chiều rộng dải chuyển tiếp (dung sai ngang — dải chuyển tiếp từ thông qua dừng có thể hẹp bao nhiêu)
Phương pháp Kaiser tìm cả N (số hệ số) và α (tham số hình dạng cửa sổ) chỉ từ δ và ΔF. Không cần đoán loại cửa sổ.
Từ Thông Số Đến Hệ Số
Phương pháp Kaiser lấy hai thông số — δ (dung sai gợn sóng) và ΔF (chiều rộng chuyển tiếp) — và tạo ra cả N và các hệ số cửa sổ mà không cần thử và sai.
Chuỗi Thiết Kế
1. Tính toán A = −20·log₁₀(δ) (suy giảm tính bằng dB)
2. Tính toán tham số hình dạng α:
- Nếu A > 50: α = 0.1102·(A − 8.7)
- Nếu 21 ≤ A ≤ 50: α = 0.5842·(A − 21)^{0.4} + 0.07886·(A − 21)
- Nếu A < 21: α = 0 (cửa sổ hình chữ nhật)
3. Tính toán N = (A − 8) / (2.285 · 2πΔF)
4. Tính toán trọng số cửa sổ Kaiser: w_k = I₀(α·√(1−(k/N)²)) / I₀(α)
5. Nhân các hệ số Fourier lý tưởng với trọng số cửa sổ
6. Đánh giá hàm truyền kết quả và kiểm tra gợn sóng so với δ. Nếu gợn sóng vượt quá δ (sự can nhiễu cạnh), hãy lặp lại với dung sai nhỏ hơn.
Hamming lưu ý: Kaiser đạt được số mũ 0.4 bằng cách thử 0.5 (quá lớn) và phát hiện ra 0.4 phù hợp tốt. Máy tính đã phục vụ như một công cụ thử nghiệm cho nghiên cứu lý thuyết.
Áp Dụng Phương Pháp Kaiser
Hàm Bessel I₀(x) xuất hiện trong công thức cửa sổ Kaiser. Nó được tính bằng chuỗi hội tụ nhanh:
I₀(x) = Σ_{m=0}^∞ [(x/2)^m / m!]²
Đối với x nhỏ, chuỗi hội tụ trong vài số hạng vì m!² ở mẫu số.