Tôi đồng ý rằng phương pháp thiết kế bộ lọc cửa sổ không còn là một trong những phương pháp thiết kế quan trọng nhất nữa và nó thực sự có thể là trường hợp được trình bày quá nhiều trong sách giáo khoa truyền thống, có thể là do lý do lịch sử.
Tuy nhiên, tôi nghĩ rằng việc sử dụng nó có thể được biện minh trong một số tình huống. Tôi không đồng ý rằng sự phức tạp tính toán không còn là vấn đề nữa. Điều này phụ thuộc vào nền tảng. Ngồi trước máy tính để bàn và thiết kế bộ lọc, chúng tôi thực sự không cần phải lo lắng về sự phức tạp. Tuy nhiên, trên các nền tảng cụ thể và trong các tình huống cần thiết kế trong thời gian thực, độ phức tạp tính toán là một vấn đề và kỹ thuật thiết kế tối ưu đơn giản sẽ được ưu tiên hơn một kỹ thuật tối ưu phức tạp hơn nhiều. Ví dụ, tôi đã từng làm việc trên một hệ thống để định dạng chùm tia trong đó bộ lọc (Beamformer) sẽ cần phải được thiết kế lại một cách nhanh chóng, và vì vậy độ phức tạp tính toán thực sự là một vấn đề.
Tôi cũng tin rằng trong nhiều tình huống thực tế, chúng ta không cần phải lo lắng về sự khác biệt giữa thiết kế tối ưu và tối ưu. Điều này càng trở nên đúng hơn nếu chúng ta cần sử dụng số học điểm cố định với các hệ số lượng tử và kết quả được lượng tử hóa của các phép toán số học.
Một vấn đề khác là sự ổn định về số của các phương pháp thiết kế bộ lọc tối ưu và việc triển khai chúng. Tôi đã gặp một số trường hợp trong đó thuật toán Công viên-McClellan (tôi nên nói rằng, việc triển khai tôi đã sử dụng) đơn giản là không hội tụ. Điều này sẽ xảy ra nếu đặc tả không có nhiều ý nghĩa, nhưng nó cũng có thể xảy ra với các thông số kỹ thuật hoàn toàn hợp lý. Điều tương tự cũng đúng đối với phương pháp thiết kế bình phương tối thiểu trong đó một hệ phương trình tuyến tính cần được giải, điều này có thể trở thành một vấn đề không có điều kiện. Trong những trường hợp này, phương pháp cửa sổ sẽ không bao giờ làm bạn thất vọng.
Một nhận xét về so sánh của bạn giữa phương pháp cửa sổ và thiết kế hình vuông nhỏ nhất: Tôi không nghĩ rằng sự so sánh này cho thấy bất kỳ ưu thế chung nào của phương pháp bình phương nhỏ nhất so với phương pháp cửa sổ. Đầu tiên, bạn dường như xem xét sự suy giảm băng tần, đây không phải là mục tiêu thiết kế cho một trong hai phương pháp. Phương pháp cửa sổ không tối ưu theo bất kỳ ý nghĩa nào và thiết kế hình vuông nhỏ nhất giảm thiểu năng lượng dải dừng và hoàn toàn không quan tâm đến kích thước gợn sóng dải dừng. Những gì có thể thấy là cạnh dải thông của thiết kế cửa sổ lớn hơn một trong những thiết kế hình vuông nhỏ nhất, trong khi cạnh dải dừng lại nhỏ hơn. Do đó, độ rộng dải chuyển tiếp của bộ lọc được thiết kế bằng cửa sổ nhỏ hơn sẽ dẫn đến gợn sóng dải dừng cao hơn. Sự khác biệt về độ rộng dải chuyển tiếp có thể nhỏ, nhưng thuộc tính bộ lọc rất nhạy cảm với tham số này. Không có nghi ngờ rằng bộ lọc hình vuông nhỏ nhất vượt trội hơn bộ lọc khác khi dừng năng lượng dải, nhưng điều đó không dễ thấy như kích thước gợn. Và câu hỏi vẫn còn nếu sự khác biệt đó thực sự sẽ tạo ra sự khác biệt trong một ứng dụng thực tế.
Hãy để tôi chỉ cho bạn thấy những so sánh như vậy thường có thể được thực hiện để nhìn theo cách người ta muốn họ nhìn. Trong hình bên dưới, tôi so sánh bộ lọc thông thấp tối ưu bình phương tối thiểu được thiết kế với chức năng Matlab / Octave firls.m
(màu xanh) với bộ lọc thông thấp được thiết kế với phương pháp cửa sổ bằng cửa sổ Kaiser (màu đỏ).
Từ hình vẽ, người ta thậm chí có thể kết luận rằng bộ lọc được thiết kế bằng cửa sổ tốt hơn một chút so với bộ lọc tối ưu bình phương nhỏ nhất. Điều này tất nhiên là vô nghĩa bởi vì chúng tôi thậm chí không định nghĩa "tốt hơn" và bộ lọc bình phương nhỏ nhất phải có lỗi xấp xỉ bình phương trung bình nhỏ hơn. Tuy nhiên, bạn không nhìn thấy điều đó trực tiếp trong hình. Dù sao, điều này chỉ để hỗ trợ cho tuyên bố của tôi rằng người ta phải rất cẩn thận và rõ ràng khi thực hiện các so sánh như vậy.
Tóm lại, ngoài việc hữu ích để học cho sinh viên DSP vì những lý do hoàn toàn không thực tế, tôi nghĩ rằng mặc dù những tiến bộ công nghệ từ những năm 1970, việc sử dụng phương pháp cửa sổ có thể được biện minh trong các tình huống thực tế nhất định và tôi không nghĩ rằng điều đó sẽ thay đổi rất sớm
firpm()
vàfirls()
.