Thiết kế bộ lọc kỹ thuật số là một chủ đề rất lớn và trưởng thành và - như bạn đã đề cập trong câu hỏi của mình - có rất nhiều tài liệu có sẵn. Điều tôi muốn thử ở đây là giúp bạn bắt đầu và làm cho tài liệu hiện có dễ tiếp cận hơn. Thay vì các bộ lọc kỹ thuật số, tôi thực sự nên nói về các bộ lọc thời gian rời rạc bởi vì tôi sẽ không xem xét lượng tử hóa hệ số và tín hiệu ở đây. Bạn đã biết về bộ lọc FIR và IIR và bạn cũng biết một số cấu trúc bộ lọc như DF I và II. Tuy nhiên, hãy để tôi bắt đầu với một số điều cơ bản:
Bộ lọc bất biến thời gian tuyến tính (LTI) không đệ quy có thể được mô tả bằng phương trình sai phân sau
y(n)=h0x(n)+h1x(n−1)+…+hN−1x(n−N+1)=∑k=0N−1hkx(n−k)(1)
Trong đó là chuỗi đầu ra, x ( n ) là chuỗi đầu vào, n là chỉ số thời gian, h k là các hệ số bộ lọc và N là chiều dài bộ lọc (số lượng vòi). Các vòi lọc h k cũng là đáp ứng xung của bộ lọc vì nếu tín hiệu đầu vào là một xung, tức là x ( n ) = δ ( n ) , thì y ( n ) = h ny(n)x(n)nhkNhkx(n)=δ(n)y(n)=hn(nếu bộ nhớ của bộ lọc đã được khởi tạo bằng số không). Phương trình (1) mô tả hệ thống đáp ứng xung hữu hạn bất biến thời gian tuyến tính (FIR). Tổng ở phía bên phải của (1) là tổng tích chập, tức là tín hiệu đầu ra thu được bằng cách kết hợp tín hiệu đầu vào với đáp ứng xung. Điều này luôn đúng, nhưng đối với các bộ lọc IIR, chúng ta không thể tính toán một cách rõ ràng tổng tích chập vì đáp ứng xung dài vô hạn, tức là có vô số hệ số hk. Một lợi thế quan trọng của các bộ lọc FIR là chúng luôn ổn định, tức là đối với chuỗi đầu vào bị chặn, chuỗi đầu ra luôn bị giới hạn. Một ưu điểm khác là các bộ lọc FIR luôn có thể được thực hiện với pha tuyến tính chính xác, tức là chúng sẽ không thêm bất kỳ biến dạng pha nào ngoài độ trễ thuần túy. Hơn nữa, vấn đề thiết kế thường dễ dàng hơn, như chúng ta sẽ thấy sau.
Bộ lọc LTI đệ quy được mô tả theo phương trình sai khác sau:
y( n ) = b0x ( n ) + b1x ( n - 1 ) + ... + bMx ( n - M) -- một1y( n - 1 ) - Hoài - aNy( n - N)(2)
Phương trình (2) cho thấy rằng đầu ra không chỉ bao gồm các mẫu đầu vào có trọng số và bị trì hoãn, mà còn bao gồm các mẫu đầu ra có trọng số trong quá khứ. Nói chung, đáp ứng xung của một hệ thống như vậy là vô cùng dài, tức là hệ thống tương ứng là một hệ thống IIR. Tuy nhiên, có những trường hợp đặc biệt của bộ lọc đệ quy với đáp ứng xung hữu hạn. Lưu ý rằng đáp ứng xung không còn được đưa ra bởi các hệ số hoặc a k như trong trường hợp bộ lọc FIR. Một lợi thế của bộ lọc IIR là bộ lọc dốc với độ suy giảm băng tần cao có thể được nhận ra với hệ số (và độ trễ) ít hơn nhiều so với trường hợp FIR, tức là chúng có hiệu quả tính toán cao hơn. Tuy nhiên, người ta cần cẩn thận với việc lựa chọn các hệ số a kbkakak bởi vì bộ lọc IIR có thể không ổn định, tức là chuỗi đầu ra của chúng có thể không bị chặn, ngay cả với chuỗi đầu vào bị chặn.
Bộ lọc có thể được thiết kế theo thông số kỹ thuật trong miền thời gian (mẫu) hoặc trong miền tần số hoặc cả hai. Vì bạn đã đề cập đến tần suất giới hạn trong câu hỏi của mình, tôi cho rằng bạn quan tâm nhiều hơn đến thông số kỹ thuật trong miền tần số. Trong trường hợp này, bạn cần xem xét đáp ứng tần số của hệ thống FIR và IIR. Đáp ứng tần số của một hệ thống là biến đổi Fourier của đáp ứng xung của nó, giả sử rằng nó tồn tại (đó là trường hợp cho các hệ thống ổn định). Đáp ứng tần số của bộ lọc FIR là
H(ejθ)=∑k=0N−1hke−jkθ(3)
θ
θ=2πffs
ffs
H(ejθ)=∑Mk=0bke−jθ1+∑Nk=1ake−jθ(4)
ak=0k=1,…,N
Bây giờ chúng ta hãy xem nhanh các phương pháp thiết kế bộ lọc. Đối với các bộ lọc FIR, bạn có thể thực hiện một biến đổi Fourier ngược của đáp ứng tần số mong muốn để có được đáp ứng xung của bộ lọc, tương ứng trực tiếp với các hệ số bộ lọc. Vì bạn ước tính đáp ứng mong muốn bằng đáp ứng xung có độ dài hữu hạn, bạn nên áp dụng cửa sổ trơn tru cho đáp ứng xung thu được để giảm thiểu dao động trong đáp ứng tần số thực do hiện tượng Gibbs. Phương pháp này được gọi là phương pháp lấy mẫu tần số.
Đối với các bộ lọc tiêu chuẩn đơn giản như bộ lọc thông thấp, đường cao tốc, dải thông hoặc bộ lọc băng thông (và một số bộ lọc khác), bạn thậm chí có thể phân tích tính toán đáp ứng xung chính xác bằng cách sử dụng biến đổi Fourier ngược của đáp ứng mong muốn lý tưởng:
hk=12π∫π−πH(ejθ)ejkθdθ
Tích phân này rất dễ dàng để đánh giá các đáp ứng mong muốn liên tục của từng phần, như trường hợp của các bộ lọc chọn lọc tần số lý tưởng. Điều này sẽ cung cấp cho bạn một phản ứng xung vô hạn, dài vô tận, cần phải được cửa sổ và thay đổi để làm cho nó hữu hạn và nhân quả. Phương pháp này được gọi là thiết kế cửa sổ.
Tất nhiên có nhiều phương pháp thiết kế bộ lọc FIR khác. Một phương pháp số quan trọng là thuật toán trao đổi nổi tiếng của Công viên-McClellan, thiết kế các bộ lọc tối ưu với các gợn sóng băng thông và băng tần không đổi. Đây là một phương pháp gần đúng bằng số và có nhiều triển khai phần mềm có sẵn, ví dụ như trong Matlab và Octave.
ssz
Tất nhiên có nhiều phương pháp thú vị và hữu ích hơn, tùy thuộc vào loại thông số kỹ thuật bạn có, nhưng tôi hy vọng rằng điều này sẽ giúp bạn bắt đầu và sẽ làm cho bất kỳ tài liệu nào bạn gặp phải dễ hiểu hơn. Một cuốn sách rất hay (và miễn phí) bao gồm một số phương pháp thiết kế bộ lọc cơ bản (và nhiều hơn nữa) là Giới thiệu về Xử lý tín hiệu của Orfanidis. Bạn có thể tìm thấy một số ví dụ thiết kế ở đó. Một cuốn sách kinh điển tuyệt vời khác là Thiết kế bộ lọc kỹ thuật số của Công viên và Burrus.