DSP - Thiết kế hỗ trợ máy tính
Bộ lọc FIR có thể hữu ích trong việc thiết kế bộ lọc có sự hỗ trợ của máy tính. Hãy để chúng tôi lấy một ví dụ và xem nó hoạt động như thế nào. Dưới đây là hình của bộ lọc mong muốn.
Trong khi thiết kế máy tính, chúng tôi chia toàn bộ số liệu đồ thị liên tục thành các giá trị rời rạc. Trong các giới hạn nhất định, chúng tôi chia nó thành 64, 256 hoặc 512 (v.v.) số phần có độ lớn rời rạc.
Trong ví dụ trên, chúng ta đã lấy các giới hạn từ -π đến + π. Chúng tôi đã chia nó thành 256 phần. Các điểm có thể được biểu diễn dưới dạng H (0), H (1),…. Lên đến H (256). Ở đây, chúng tôi áp dụng thuật toán IDFT và điều này sẽ cung cấp cho chúng tôi các đặc tính pha tuyến tính.
Đôi khi, chúng tôi có thể quan tâm đến một số thứ tự cụ thể của bộ lọc. Giả sử chúng tôi muốn hiện thực hóa thiết kế đã cho ở trên thông qua bộ lọc thứ 9 . Vì vậy, chúng tôi nhận các giá trị bộ lọc là h0, h1, h2… .h9. Về mặt toán học, nó có thể được hiển thị như dưới đây
$$ H (e ^ {j \ omega}) = h_0 + h_1e ^ {- j \ omega} + h_2e ^ {- 2j \ omega} + ..... + h_9e ^ {- 9j \ omega} $$Trường hợp có số lượng lớn trật khớp, chúng tôi lấy điểm tối đa.
Ví dụ, trong hình trên, có một sự sụt giảm đột ngột giữa hai điểm B và C. Vì vậy, chúng tôi cố gắng lấy các giá trị rời rạc hơn tại điểm này, nhưng có độ dốc không đổi giữa điểm C và D. số lượng giá trị rời rạc ít hơn.
Để thiết kế bộ lọc trên, chúng tôi thực hiện quá trình giảm thiểu như sau;
$ H (e ^ {j \ omega1}) = h_0 + h_1e ^ {- j \ omega1} + h_2e ^ {- 2j \ omega1} + ..... + h_9e ^ {- 9j \ omega1} $
$ H (e ^ {j \ omega2}) = h_0 + h_1e ^ {- j \ omega2} + h_2e ^ {- 2j \ omega2} + ..... + h_9e ^ {- 9j \ omega2} $
Tương tự,
$ (e ^ {j \ omega1000}) = h_0 + h_1eH ^ {- j \ omega1000} h_2e ^ {- 2j \ omega1000} + ..... + h_9 + e ^ {- 9j \ omega1000} $
Biểu diễn phương trình trên dưới dạng ma trận, ta có:
$$ \ begin {bmatrix} H (e ^ {j \ omega_1}) \\. \\. \\ H (e ^ {j \ omega_ {1000}}) \ end {bmatrix} = \ begin {bmatrix} e ^ {- j \ omega_1} & ... & e ^ {- j9 \ omega_1} \\. & &. \\. & &. \\ e ^ {- j \ omega_ {1000}} & ... & e ^ {j9 \ omega_ {1000}} \ end {bmatrix} \ begin {bmatrix} h_0 \\. \\. \\ h_9 \ end {bmatrix} $$Chúng ta hãy lấy ma trận 1000 × 1 là B, ma trận 1000 × 9 là A và ma trận 9 × 1 là $ \ hat {h} $.
Vì vậy, để giải ma trận trên, chúng ta sẽ viết
$ \ hat {h} = [A ^ TA] ^ {- 1} A ^ {T} B $
$ = [A ^ {* T} A] ^ {- 1} A ^ {* T} B $
trong đó A * biểu diễn liên hợp phức của ma trận A.