Nguyên tắc cơ bản của thiết kế bộ lọc kỹ thuật số (IIR / FIR)


14

Mặc dù tôi có kinh nghiệm vững chắc trong việc thiết kế các công cụ âm thanh và như vậy, tôi còn khá mới đối với lĩnh vực Thiết kế Bộ lọc Kỹ thuật số, đặc biệt là các bộ lọc IIR và FIR. Nói cách khác, tôi đang cố gắng học hỏi nhiều nhất có thể về cách thiết kế các bộ lọc và rút ra các phương trình khác biệt của chúng. Tôi đang bắt đầu từ những điều cơ bản, vì vậy hãy đồng ý với tôi, như tôi đã nói, tôi đang cố gắng học hỏi.

Đây là câu hỏi của tôi:

Nói rằng tôi muốn thiết kế bộ lọc thông thấp với mức cắt cụ thể - giả sử 300 Hz. Điều gì sẽ là cách tốt nhất để lấy ra hàm toán học và sau đó lấy phương trình sai phân cụ thể để thực hiện bộ lọc trong Direct Form I và Direct Form II (hoặc chỉ DF-1 bây giờ ...)?

Tôi có một số hiểu biết về các hàm truyền và cách chúng liên quan đến các phương trình khác biệt từ một số tài liệu tuyệt vời trên web, thật không may, một số trong đó có một chút kiến ​​thức tốt, vì vậy nó khó hiểu hơn là hữu ích trong nhiệm vụ của tôi. Vì vậy, tôi đoán rằng tôi cần một ví dụ từng bước nhiều hơn sẽ giúp tôi kết nối các dấu chấm.

Vì vậy, về cơ bản, tôi đang tìm kiếm sự giúp đỡ với sự cố của quá trình bắt đầu từ việc chọn tần số cắt cho đến việc tìm ra phương trình sai khác.

Bất kỳ trợ giúp sẽ được nhiều đánh giá cao. Tôi quen thuộc với rất nhiều khái niệm - đáp ứng xung, DFT, toán học đằng sau nó, tôi đoán điều tôi cần trợ giúp nhiều hơn là khái niệm về biến đổi z và cực / không sử dụng để thiết kế hàm truyền của bộ lọc và sau đó làm thế nào để cắt freq. chơi trong tất cả điều này để cuối cùng rút ra phương trình khác biệt.

Vì tôi có xu hướng học tốt nhất từ ​​ví dụ, tôi nghĩ tôi sẽ hỏi ở đây. Cảm ơn rất nhiều cho bất cứ ai tìm thấy thời gian để giúp tôi.


2
Có nhiều phương pháp thiết kế bộ lọc. Dưới đây là một số thuật ngữ giúp bạn bắt đầu: phương pháp thiết kế cửa sổ, thiết kế bộ lọc bình phương nhỏ nhất và thiết kế bộ lọc đẳng tích (thường sử dụng thuật toán Công viên-McClellan). Chúng hầu hết được giới hạn trong các thiết kế bộ lọc FIR. Một cách phổ biến để thiết kế các bộ lọc IIR là bằng cách ánh xạ một nguyên mẫu tương tự (như bộ lọc Butterworth) sang một xấp xỉ bộ lọc kỹ thuật số tương ứng. Điều này có thể được thực hiện bằng cách sử dụng các phương pháp biến đổi song tuyến hoặc xung bất biến, chẳng hạn.
Jason R

Câu trả lời:


18

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

(1)y(n)=h0x(n)+h1x(n1)++hN1x(nN+1)=k=0N1hkx(nk)

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:

(2)y(n)= =b0x(n)+b1x(n-1)+Giáo dục+bMx(n-M)--một1y(n-1)-Giáo dục-mộtNy(n-N)

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à

(3)H(ejθ)=k=0N1hkejkθ

θ

θ=2πffs

ffs

(4)H(ejθ)=k=0Mbkejθ1+k=1Nakejθ

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.


Wow, Matt, cảm ơn rất nhiều vì câu trả lời chi tiết và chu đáo. Tôi chắc chắn sẽ đào sâu vào nó và thực sự đánh giá cao thời gian của bạn. Cảm ơn!
bitwise

Có sách giáo khoa nào tốt cho thiết kế bộ lọc wavelet không? Tôi tò mò về một chủ đề như vậy: dsp.stackexchange.com/questions/29090/ . Cảm ơn!
LCFactorization
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.