Czy są jakieś zalety stosowania podejścia okienkowego w stosunku do algorytmów Parks-McClellan (dalej w skrócie PMcC) lub algorytmów najmniejszych kwadratów do projektowania filtrów FIR filtra dolnoprzepustowego? Przyjmijmy przy dzisiejszej mocy obliczeniowej, że złożoność samych algorytmów nie jest czynnikiem.
To pytanie nie porównuje PMcC z najmniejszymi kwadratami, ale konkretnie, czy istnieje jakiś powód, aby użyć dowolnej techniki projektowania okien FIR zamiast tych algorytmów, czy też techniki okienkowania do filtrowania projektu były przestarzałe przez te algorytmy i przeniesione do celów dydaktycznych?
Poniżej znajduje się jedno porównanie, w którym porównałem okno Hamminga do mojego ulubionego podejścia projektowego z Least-Squared, przy użyciu tej samej liczby uderzeń. Poszerzyłem pasmo w podejściu Least Squared, aby ściśle pasować do okna Hamminga, iw tym przypadku było całkiem jasne, że Least-Squared osiągnie lepsze wyniki (oferując znacznie więcej odrzucenia pasma stop). Nie zrobiłem tego ze wszystkimi oknami, co prowadzi mnie do pytania, czy mógłbyś kiedykolwiek przewyższyć PMcC i najmniejsze kwadraty, czy też są inne zastosowania filtra dolnoprzepustowego FIR, w którym preferowane byłoby okienkowanie?
źródło
firpm()
i dofirls()
.Odpowiedzi:
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.
źródło
Filtry Window Sinc mogą być adaptacyjnie generowane w locie na procesorach ledwo wystarczających do uruchomienia powiązanego filtra FIR. Filtry Window Sinc mogą być generowane w ograniczonym czasie.
Generowanie prostych filtrów okienkowych Sinc można całkowicie opisać (i sprawdzić pod kątem złośliwego oprogramowania itp.) Za pomocą kilku wierszy kodu , w przeciwieństwie do ślepego użycia nieprzejrzystego zestawu narzędzi.
Do wyjaśnienia okna z filtrem Sinc wymagane jest mniej wymagane tło matematyczne, w porównaniu do tego, które jest wymagane do kodowania generatora filtrów PMcC od zera.
Równe tętnienia w odpowiedzi częstotliwościowej filtra PMcC mogą powodować artefakty w dziedzinie czasu, które są inne (i być może mniej pożądane) niż artefakty wytwarzane przez prosty filtr okienny.
źródło
f=[0 0.49 0.51 1]; a=[1 1 0 0]; b=remez(300,f,a)
który działa również w Octave. Wyjaśnienie jest takie, że przy bardzo stromych filtrach zmarszczki mogą być na tyle regularne, że przypominają cosinus. Odpowiednikiem w dziedzinie czasu cosinusa w dziedzinie częstotliwości byłyby dwa impulsy echa.Pokażę tutaj jedną zaletę projektu okienkowego i sztuczkę, aby uzyskać tę samą korzyść z parków – McClellana.
Dla filtrów półpasmowych, ćwierćpasmowych itp. Okienkowanie zachowuje zera w dziedzinie czasu skalowanej funkcji sinc, która jest prototypowym idealnym filtrem dolnoprzepustowym. Zera kończą się na współczynnikach, zmniejszając koszt obliczeniowy filtrów. W przypadku filtra półpasmowego konstrukcja okienkowa daje filtr o każdym parzystym współczynniku 0, z wyjątkiem współczynnika środkowego (który jest również uważany za parzysty):
Ryc. 1. Funkcja Sinc rozciągnięta poziomo o współczynnik 2 to prototypowy półpasmowy filtr dolnoprzepustowy o wzmocnieniu 2, odpowiedni do próbkowania w górę o współczynnik 2.
Jednak Parks-McClellan / Remez można oszukać, aby dać te same korzyści, projektując z niego filtr z parzystą liczbą uderzeń z zdefiniowanym tylko pasmem wzmocnienia jedności. Uzyskane współczynniki są używane jako nieparzyste współczynniki dłuższego filtra. Środkowy współczynnik dłuższego filtra jest ustawiony na 1, a pozostałe parzyste współczynniki na 0. Ten filtr ma wzmocnienie 2 w paśmie przejścia i symetryczne tętnienie w pasmach przejścia i zatrzymania. W Pythonie:
Rysunek 2. Współczynniki filtra półpasmowego zaprojektowanego pośrednio za pomocą Pythona
scipy.signal.remez
.Ryc. 3. Wykres odpowiedzi częstotliwościowej wielkości filtra półpasmowego zaprojektowanego pośrednio
scipy.signal.remez
.źródło