Bộ lọc IIR có thể được thực hiện dưới dạng trực tiếp 1 hoặc 2 . Nhưng làm thế nào để bạn quyết định sử dụng hình thức? Những ưu và nhược điểm của mỗi là gì?
Bộ lọc IIR có thể được thực hiện dưới dạng trực tiếp 1 hoặc 2 . Nhưng làm thế nào để bạn quyết định sử dụng hình thức? Những ưu và nhược điểm của mỗi là gì?
Câu trả lời:
Trước hết, một chút từ wikipedia về triển khai Mẫu trực tiếp I và II .
Hình thức trực tiếp I đòi hỏi nhiều bộ nhớ hơn, nhưng là một chiến lược có phần đơn giản hơn và ít có khả năng gặp vấn đề về vòng và cộng hưởng.
Dạng trực tiếp II đòi hỏi ít bộ nhớ hơn, nhưng nó có khả năng tương tác bất thường, số lượng lớn hơn và lỗi làm tròn nhiều hơn. Phần lớn điều này có thể được giảm bằng cách xếp tầng các bộ lọc nhỏ hơn, đặc biệt là các bộ lọc thứ 2.
Một chút hẹn hò nhưng có thể xứng đáng có một câu trả lời toàn diện hơn, đặc biệt là vì Mẫu trực tiếp II có thể khiến bạn gặp nhiều rắc rối. Trước hết, không có "một kích thước phù hợp với tất cả" và sự lựa chọn tốt nhất phụ thuộc vào ứng dụng và ràng buộc cụ thể của bạn. Những gì bạn có thể xem xét là
Vì vậy, tóm lại Transposed Form II thường xuyên hơn không phải là sự lựa chọn tốt nhất. Trong một số trường hợp điểm cố định, đặc biệt là nếu có vấn đề tiếng ồn đáng kể Direct Form I tốt hơn vì nó có thể dễ dàng tăng cường hơn với những thứ như Định hình phổ lỗi, v.v.
Trừ khi bạn làm việc với một hệ thống rất khan hiếm tài nguyên hoặc có những yêu cầu cực đoan, thực tế không có vấn đề gì trong thực tế cho dù bạn chọn hình thức trực tiếp I hay II. Chẳng hạn, nếu bạn đang làm việc trên PC hoặc điện thoại thông minh thì điều đó thực sự không quan trọng. Cá nhân, tôi thích Mẫu I.
Vấn đề thực sự thường là MIPS và nếu bạn có kế hoạch thực hiện một điểm cố định thì mọi thứ trở nên phức tạp hơn. Chẳng hạn, trên ARM, bộ lọc IIR của bạn sẽ tiêu thụ nhiều MIPS hơn nếu cả hai hệ số và trạng thái bộ lọc là 32 bit. 32 bit ở trạng thái và hệ số là một yêu cầu nếu bạn cần triển khai ví dụ bộ lọc thông thấp với tần số cắt rất thấp. Trong những trường hợp đó, bạn có thể sử dụng một loại bộ lọc khác, chẳng hạn như bộ lọc biến trạng thái.
Bên cạnh những khác biệt về kỹ thuật như độ chính xác về số, còn có vấn đề về sự ổn định. Khi các bộ lọc kỹ thuật số có các cặp cực / không gần nhau, đáp ứng tần số có thể trở nên không ổn định tại các vị trí khác nhau (thường tiếp cận Nyquist hoặc tiếp cận 0).
Khi các bộ lọc IIR được sử dụng cho các ứng dụng âm nhạc, việc lựa chọn thực hiện có thể có ảnh hưởng sâu sắc đến độ ổn định của bộ lọc khi các tham số bộ lọc được điều chỉnh trong thời gian thực (ví dụ: thay đổi tần số cắt trên bộ lọc thông thấp).
Tôi có một ứng dụng nguồn mở cho phép bạn lắng nghe sự khác biệt, trong khi các tham số thay đổi theo thời gian như tần số cắt hoặc mức tăng cực đại, của từng nhận thức sau:
Dự án ở đây:
Ngoài các ý kiến trên về bộ nhớ, MIPS, tiếng ồn và tính ổn định; có một yếu tố khác thường bị bỏ qua. Yếu tố này là khả năng thiết lập lại; điều này xảy ra rất quan trọng trong hầu hết các tình huống của tôi.
Với triển khai Direct Form II, không có trạng thái nào cho các đầu ra bị trì hoãn, do đó nếu bạn "đặt lại" bộ lọc Direct Form II thành "5", thì đầu ra ban đầu sẽ không phải là 5. Tôi thấy điều này hoàn toàn trái ngược - Trực quan đã gây ra một số thất vọng nghiêm trọng khi sử dụng Simulink. Vì lý do này, tôi hầu như luôn sử dụng triển khai Mẫu trực tiếp I. Thật không may, Simulink chỉ hỗ trợ Biểu mẫu trực tiếp I nếu bạn có hộp công cụ DSP và thậm chí sau đó nó vẫn không cho phép bạn đặt các điều kiện ban đầu từ tín hiệu đầu vào.