Zgadzam się, że metoda projektowania filtra okienkowego nie jest już jedną z najważniejszych metod projektowania i rzeczywiście może być tak, że jest nadreprezentowana w tradycyjnych podręcznikach, prawdopodobnie z przyczyn historycznych.
Myślę jednak, że jego użycie może być uzasadnione w niektórych sytuacjach. Nie zgadzam się, że złożoność obliczeniowa nie jest już problemem. To zależy od platformy. Siedząc przy komputerze i projektując filtr, naprawdę nie musimy się martwić o złożoność. Jednak na określonych platformach oraz w sytuacjach, w których projektowanie musi być wykonane quasi-w czasie rzeczywistym, problemem jest złożoność obliczeniowa, a prosta, nieoptymalna technika projektowania będzie lepsza niż technika optymalna, która jest znacznie bardziej złożona. Jako przykład kiedyś pracowałem nad systemem do formowania wiązki, w którym filtr (formator wiązki) musiałby zostać przeprojektowany w locie, a więc złożoność obliczeniowa rzeczywiście stanowiła problem.
Jestem również przekonany, że w wielu praktycznych sytuacjach nie musimy martwić się różnicą między optymalnym a nieoptymalnym projektem. Staje się to jeszcze bardziej prawdziwe, jeśli musimy zastosować arytmetykę o stałym punkcie z kwantowanymi współczynnikami i skwantowanymi wynikami operacji arytmetycznych.
Kolejną kwestią jest stabilność numeryczna optymalnych metod projektowania filtrów i ich implementacji. Natknąłem się na kilka przypadków, w których algorytm Parks-McClellan (powinienem powiedzieć, że implementacja, której użyłem) po prostu się nie zbiegał. Stanie się tak, jeśli specyfikacja nie ma większego sensu, ale może się również zdarzyć przy całkowicie rozsądnych specyfikacjach. To samo dotyczy metody projektowania metodą najmniejszych kwadratów, w której należy rozwiązać układ równań liniowych, co może stać się problemem źle uwarunkowanym. W tych okolicznościach metoda okienkowania nigdy Cię nie zawiedzie.
Uwaga na temat porównania metody okna z projektem najmniejszych kwadratów: Nie sądzę, że to porównanie pokazuje jakąkolwiek ogólną wyższość metody najmniejszych kwadratów nad metodą okienkowania. Po pierwsze, wydaje się, że patrzysz na tłumienie pasma zatrzymania, które nie jest celem projektowym dla żadnej z dwóch metod. Metoda okienkowania nie jest w żadnym sensie optymalna, a konstrukcja najmniejszych kwadratów minimalizuje energię pasma zatrzymania i wcale nie dba o wielkość tętnienia pasma zatrzymania. Widać, że krawędź pasma przejścia w projekcie okna jest większa niż krawędź najmniejszego kwadratu, podczas gdy krawędź pasma zatrzymania jest mniejsza. W konsekwencji szerokość pasma przejściowego filtra zaprojektowanego przez okienkowanie jest mniejsza, co spowoduje wyższe tętnienia pasma zatrzymania. Różnica w szerokości pasma przejściowego może być niewielka, ale właściwości filtra są bardzo wrażliwe na ten parametr. Nie ma wątpliwości, że filtr najmniejszych kwadratów przewyższa drugi filtr, jeśli chodzi o zatrzymanie energii pasma, ale nie jest to tak łatwe do zauważenia jak wielkość tętnienia. Pozostaje pytanie, czy ta różnica rzeczywiście miałaby znaczenie w praktycznym zastosowaniu.
Pokażę wam, że takich porównań często można dokonać, aby wyglądały tak, jak byśmy chcieli. Na poniższym rysunku porównuję optymalny filtr dolnoprzepustowy o najmniejszych kwadratach zaprojektowany z funkcją Matlab / Octave firls.m
(niebieski) z filtrem dolnoprzepustowym zaprojektowanym metodą okienkową przy użyciu okna Kaiser (czerwony).
Na podstawie rysunku można nawet wyciągnąć wniosek, że filtr zaprojektowany przez okienkowanie jest nieco lepszy niż filtr optymalny najmniejszych kwadratów. Jest to oczywiście bez sensu, ponieważ nie zdefiniowaliśmy nawet „lepszego”, a filtr najmniejszych kwadratów musi mieć mniejszy średni błąd przybliżenia do kwadratu. Jednak nie widać tego bezpośrednio na rysunku. W każdym razie służy to mojemu twierdzeniu, że przy dokonywaniu takich porównań trzeba być bardzo ostrożnym i jasnym.
Podsumowując, poza przydatnością do nauki dla studentów DSP z powodów czysto dydaktycznych, uważam, że pomimo postępu technologicznego od lat 70. stosowanie metody okienkowania może być uzasadnione w niektórych praktycznych scenariuszach i nie sądzę, że to będzie zmień bardzo szybko.
firpm()
i dofirls()
.