Biorąc pod uwagę dowolną odpowiedź częstotliwościową, jakie mogą istnieć metody przetwarzania sygnału, które mogłyby odgadnąć, oszacować lub określić funkcję przenoszenia (konstelacja bieguna i zera), która daje „dość dobrą” aproksymację (dla niektórych określonych kryteriów jakości estymacji) dla tej danej odpowiedzi częstotliwościowej? Jakie istnieją środki do oszacowania liczby biegunów i zer wymaganych dla danej funkcji przenoszenia plus dany błąd błędu przybliżenia? Lub jak można ustalić, że ograniczenia te nie mogą być spełnione, jeśli to możliwe?
Jeśli dana odpowiedź częstotliwościowa została faktycznie wytworzona przez znaną funkcję przenoszenia, czy którakolwiek z tych metod będzie zbieżna z tą pierwotną funkcją przenoszenia? Co powiesz na to, czy dana odpowiedź częstotliwościowa podlegała (zakładano Gaussowi) błędom pomiaru?
Załóżmy, że pracujesz w płaszczyźnie Z z próbkowanym spektrum, chociaż ciągłe odpowiedzi w domenie mogą być również interesujące.
Dodano: Czy metody rozwiązania są inne, jeśli podana jest tylko wielkość odpowiedzi częstotliwościowej (np. Dozwolone jest rozwiązanie o dowolnej odpowiedzi fazowej)?
Dodano: Ten ostatni problem jest tym, co najbardziej mnie interesuje, biorąc pod uwagę znaną odpowiedź wielkościową wokół koła jednostki, ale nieznaną / niezmierzoną odpowiedź fazową, czy można zmierzyć zmierzony układ, a jeśli tak, to w jakich warunkach?
Odpowiedzi:
Jednym podejściem byłoby zastosowanie metody najmniejszych kwadratów w dziedzinie częstotliwości (FDLS) . Biorąc pod uwagę zestaw (złożonych) próbek odpowiedzi częstotliwościowej układu z czasem dyskretnym i kolejność filtrów wybraną przez projektanta, metoda FDLS wykorzystuje liniową optymalizację najmniejszych kwadratów do rozwiązania dla zestawu współczynników (które są odwzorowane bezpośrednio na zestawy biegunów i zera) dla systemu, którego odpowiedź częstotliwościowa odpowiada żądanej odpowiedzi z minimalnym całkowitym błędem do kwadratu.
Pasmo przenoszenia liniowego układu dyskretnego -tego rzędu można zapisać jako:N.
gdzie jest funkcją transferu systemu w domenie z . Zazwyczaj jest to zapisane w racjonalnym formacie, który wynika bezpośrednio z równania różnicy w systemie:H.( z) z
Pasmo przenoszenia wynosi zatem:
Zmień powyższe ustawienia, aby uzyskać:
To równanie jest liniowe w2 N.+ 1 bk zak H.( ω ) ω
Aby rozwiązać odpowiedni zestaw współczynników za pomocą liniowej metody najmniejszych kwadratów, w tych niewiadomych generujemy przesadzony układ równań. Aby wygenerować te równania, wybierz zbiór częstotliwościωm∈ [ 0 , 2 π) , m = 0 , 1 , … , M- 1 M.> 2 N+ 1 M.≫ 2 N.+ 1 ) ωk
Ta technika ma kilka zalet:
Jako szablon można zastosować dowolną kompleksową odpowiedź częstotliwościową (wielkość i faza). Jeśli masz tylko ograniczenie wielkości, możesz po prostu wybrać odpowiedź fazową, taką jak faza liniowa.
Technika jest bardzo prosta do wdrożenia i można ją łatwo parametryzować w oparciu o pożądaną kolejność w systemie.
W razie potrzeby można nieco rozszerzyć tę metodę, aby zastosować ważoną optymalizację metodą najmniejszych kwadratów; pozwoli to określić regiony odpowiedzi częstotliwościowej, których błąd aproksymacji jest ważony bardziej niż inne. To pozwala ci ściślej kontrolować obszary pasma / stopbandu, jednocześnie pozwalając na większy spadek w obszarach „nieobsługujących”.
źródło
Moi koledzy osiągnęli świetne wyniki dzięki dopasowaniu wektorowemu :
Używamy go do konwersji FIR na IIR.
W przypadku mniej wymagających aplikacji możesz po prostu użyć nieliniowego dopasowania najmniejszych kwadratów dla stałej liczby biegunów i zer. Jest to zaimplementowane w Matlab as
invfreqs
iinvfreqz
.źródło
Inne podejście: wykreśl pasmo przenoszenia i dopasuj do niego wykres Bode najlepiej, jak to możliwe. Można to zrobić bardzo szybko, aby uzyskać przybliżone rozwiązanie, lub w jakimś skomplikowanym sensie najmniejszych kwadratów dla lepszego dopasowania. GTH
źródło