Có cách nào để chuyển đổi một FIR
đến một IIR
bộ lọc với các hành vi tương tự nhất?
Có cách nào để chuyển đổi một FIR
đến một IIR
bộ lọc với các hành vi tương tự nhất?
Câu trả lời:
Tôi muốn nói rằng câu trả lời cho câu hỏi của bạn - nếu được hiểu theo nghĩa đen - là 'không', không có cách nào chung để chuyển đổi bộ lọc FIR thành bộ lọc IIR.
Tôi đồng ý với RBJ rằng một cách để tiếp cận vấn đề là xem xét đáp ứng xung của bộ lọc FIR và sử dụng phương pháp miền thời gian (như phương pháp của Prony) để ước tính đáp ứng xung đó bằng bộ lọc IIR.
Nếu bạn bắt đầu từ đáp ứng tần số thì bạn có rất nhiều phương pháp để thiết kế bộ lọc IIR. Mặc dù nó đã được xuất bản khoảng 25 năm trước, tôi tin rằng phương pháp của Chen và park vẫn là một trong những cách tốt hơn để tiếp cận vấn đề thiết kế. Một phương pháp rất đơn giản khác để thiết kế miền tần số của các bộ lọc IIR là phương pháp lỗi phương trình, được mô tả trong cuốn sách Thiết kế bộ lọc kỹ thuật số của Công viên và Burrus. Tôi đã giải thích nó trong câu trả lời này .
Nếu đáp ứng pha có tầm quan trọng đối với bạn, thì một vấn đề bạn sẽ gặp phải khi thiết kế bộ lọc IIR trong miền tần số là lựa chọn chính xác của đáp ứng pha mong muốn. Nếu hình dạng tổng thể của pha mong muốn được đưa ra, bạn vẫn có một mức độ tự do, đó là độ trễ. Ví dụ: nếu pha mong muốn là và cường độ mong muốn là thì đáp ứng tần số mong muốn của bạn có thể được chọn là
trong đó là một tham số độ trễ không xác định. Tất nhiên, bạn có thể nói rằng nếu được đưa ra thì bạn không muốn sửa đổi nó với độ trễ bổ sung (tích cực hoặc tiêu cực). Nhưng nó chỉ ra rằng trong thực tế sự chậm trễ trung bình không phải lúc nào cũng quan trọng, và - quan trọng hơn - cho các giá trị nhất định xấp xỉ của bạn sẽ được nhiều hơn cho một trật tự lọc cho hơn cho người khác. Vì vậy, độ trễ có thể trở thành một tham số thiết kế bổ sung và nên được chọn tối ưu hoặc ít nhất là hợp lý.
Tôi đã viết một luận án về thiết kế các bộ lọc kỹ thuật số với cường độ và đáp ứng pha theo quy định. Một chương liên quan đến thiết kế miền tần số của các bộ lọc IIR. Phương pháp đó có thể được sử dụng để thiết kế các bộ lọc IIR với pha tuyến tính xấp xỉ trong các dải thông hoặc để xấp xỉ bất kỳ phản ứng pha (và cường độ) mong muốn nào khác. Các bộ lọc không chỉ được đảm bảo ổn định, mà bạn còn có thể chỉ định bán kính cực tối đa, nghĩa là bạn có thể xác định một mức ổn định nhất định. Bạn cũng có thể tìm thấy phương pháp này trong một bài báo được xuất bản trong Giao dịch của IEEE về Xử lý tín hiệu.
Câu trả lời của Matt L là tốt nhất từ góc độ DSP.
Tồn tại một loạt các kỹ thuật từ tài liệu điều khiển cũng có thể làm những gì bạn yêu cầu. Mặc dù điều này không rõ ràng biến bộ lọc FIR thành IIR, nhưng các kỹ thuật thường sẽ tìm thấy giải pháp IIR trừ khi một số ràng buộc khác được áp dụng.
Một số kỹ thuật là:
Trên thực tế, Cắt ngắn cân bằng là một phương pháp phân tích thành phần chính để giảm thứ tự của bộ lọc. Có một triển khai MATLAB của nó trong Hộp công cụ điều khiển Robust.
Phương pháp xấp xỉ Hankel Norm tối ưu sử dụng định mức Hankel giống như vô cực để xấp xỉ một hệ thống bậc cao với một thứ tự thấp hơn. Có một triển khai MATLAB của nó trong Hộp công cụ điều khiển Robust.
Tuy nhiên, một phương pháp khác có thể có thể xấp xỉ (không khớp chính xác) một đáp ứng tần số tùy ý nhất định (như được mô tả bởi một số bộ lọc FIR đã cho) bởi bộ lọc IIR, là Evolution khác biệt. Sự tiến hóa khác biệt là một loại thuật toán di truyền, với mục đích sử dụng này, lặp đi lặp lại chọn và điều chỉnh một tập hợp các cực và số không nhằm cố gắng giảm thiểu sai số chênh lệch được tính toán. Dường như có một vài bài viết của IEEE về chủ đề này, cũng như một chương trong một trong những cuốn sách của Rick Lyons ("Streamlining DSP").
Nếu bạn đang cố gắng khớp đáp ứng xung của IIR với đáp ứng xung đã cho, tuy nhiên, nó được xác định theo toán học (tôi đoán FIR cũng tốt như một định nghĩa), tôi luôn nghĩ rằng phương pháp Prony là phương pháp đầu tiên đâm vào vấn đề.
Nếu bạn đang cố gắng khớp đáp ứng tần số của IIR với đáp ứng tần số nhất định, tuy nhiên, nó được xác định theo toán học (tôi đoán rằng đáp ứng tần số của FIR cũng tốt như một định nghĩa), gần đây tôi đã nghĩ rằng Greg Berchin FDLS có thể là con đường để đi. Richard Lyons (người đã bình luận cho câu hỏi của bạn), đã xuất bản một chuyên khảo trong đó Greg có một chương mô tả phương pháp này. Matt L cũng đã nghiên cứu và công bố về vấn đề này.
vâng, vì bạn không yêu cầu một sự tương đương chính xác nhưng không phải không có sự đau buồn
Bộ lọc FIR tương đương với đa thức
Người ta có thể rút ra một xấp xỉ Pade.
Nó không nhất thiết phải ổn định, nó rất nhạy cảm với tỷ lệ và kết quả không ly kỳ.
https://en.wikipedia.org/wiki/Pad%C3%A9_appro xấpant
Sử dụng cửa sổ hanning làm ví dụ FIR và thói quen Pade trong hộp công cụ tượng trưng (điều mà hầu hết mọi người không có nhưng gnu Maxima thì có)
Ý tưởng khác của tôi mà tôi không theo đuổi sẽ là tạo ra một quá trình MA giả ngẫu nhiên và sau đó sử dụng công cụ ước tính ARMA để phục hồi chức năng chuyển giao hợp lý.
p = poly2sym (sym (round (100 * hanning (16))))% tỷ lệ hanning
p = 3 * x ^ 15 + 13 * x ^ 14 + 28 * x ^ 13 + 45 * x ^ 12 + 64 * x ^ 11 + 80 * x ^ 10 + 93 * x ^ 9 + 99 * x ^ 8 + 99 * x ^ 7 + 93 * x ^ 6 + 80 * x ^ 5 + 64 * x ^ 4 + 45 * x ^ 3 + 28 * x ^ 2 + 13 * x + 3
h = pade (p, 'Đặt hàng', [3 3])
h = - (2534 * x ^ 3 + 11071 * x ^ 2 + 10368 * x + 2961) / (- 2213 * x ^ 3 + 1964 * x ^ 2 + 821 * x - 987)
[n, d] = numden (h)
n = - 2534 * x ^ 3 - 11071 * x ^ 2 - 10368 * x - 2961
d = - 2213 * x ^ 3 + 1964 * x ^ 2 + 821 * x - 987
num = sym2poly (n)
num = -2534 -11071 -10368 -2961
den = sym2poly (d)
den = -2213 1964 821 -987
linh sam = sym2poly (p);
rn = rễ (num)
rn = -3,2067 + 0,0000i
-0,5812 + 0,1633i
-0,5812 - 0,1633i
rd = rễ (den)
nd = -0.6679 + 0,0000i
0,7777 + 0,2510i
0,7777 - 0,2510i
num = num / tổng (abs (num)); % hệ số chuẩn hóa
den = den / tổng (abs (den));
linh sam = linh sam / tổng (abs (linh sam));
[h, z] = freqz (num, den, 1024);
hình (1) lô (z, log10 (abs (h))); ylabel ('dB') hình (2) [h, z] = freqz (linh sam, 1,1024); lô (z, log10 (abs (h))); nhãn hiệu ('dB')
dội lại
Thật khó để suy đoán rằng nếu một đáp ứng xung cửa sổ, h của chiều dài L có thể được "mô hình hóa tốt" bằng một bộ lọc iir bậc thấp (so với L), thì cái sau có thể được sử dụng để ngoại suy bộ lọc FIR vượt quá độ dài ban đầu của nó.
Những ưu và nhược điểm thực tế của việc sử dụng prony (miền thời gian) so với sử dụng invfreqz (miền tần số) là gì?
-k