Akwizycja i przetwarzanie sygnałów cyfrowych
Transkrypt
Akwizycja i przetwarzanie sygnałów cyfrowych
! " #$% ! $ &! ( ) * +% ($ ,$ - ./00 ( $ " 1- 22, " 3 $ - 4 & 5 - - &6 5 7 8" $ 8" +""" ! 7$ 793:)!/;!/0!/03//3/.<=0/3// Spis treści Przedmowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Pojęcia wstępne 1.1 Typy sygnałów . . . . . . . . . . . . . 1.2 Sygnały a informacja . . . . . . . . . . 1.3 Ciągłe sygnały deterministyczne . . . 1.3.1 Parametry sygnałów . . . . . . 1.3.2 Sygnały o ograniczonej energii 1.3.3 Sygnały o ograniczonej mocy . 1.4 Sygnały dyskretne . . . . . . . . . . . 1.5 Sygnały dystrybucyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 7 7 9 10 10 11 14 15 17 2 Przestrzenie sygnałów 22 2.1 Reprezentacje sygnałów . . . . . . . . . . . . . . . . . . . . . . . 22 2.2 Własności matematyczne zbiorów sygnałów . . . . . . . . . . . . 26 2.2.1 Własności metryczne przestrzeni sygnałów . . . . . . . . . 26 2.2.2 Struktura liniowa przestrzeni sygnałów . . . . . . . . . . . 27 2.2.3 Norma, iloczyn skalarny . . . . . . . . . . . . . . . . . . . 28 2.2.4 Kąt między sygnałami. Bazy ortogonalne i ortonormalne 30 2.3 Uogólniony szereg Fouriera . . . . . . . . . . . . . . . . . . . . . 33 2.4 Reprezentacje sygnałów dyskretnych . . . . . . . . . . . . . . . . 34 2.5 Bazy ortogonalne w przestrzeniach sygnałów ciąglych . . . . . . 36 2.5.1 Zespolona baza harmoniczna . . . . . . . . . . . . . . . . 39 2.5.2 Rzeczywisty trygonometryczny szereg Fouriera . . . . . . 40 2.6 Podstawowe operacje na sygnałach . . . . . . . . . . . . . . . . . 42 2.6.1 Splot sygnałów . . . . . . . . . . . . . . . . . . . . . . . . 42 2.6.2 Korelacja wzajemna, autokorelacja . . . . . . . . . . . . . 44 2 SPIS TREŚCI 3 3 Transformata Fouriera 3.1 Definicje i przykłady . . . . . . . . . . . 3.2 Podstawowe twierdzenia . . . . . . . . . 3.3 Transformaty sygnałów dystrybucyjnych 3.4 Iloczyn i splot sygnałów . . . . . . . . . 4 Próbkowanie sygnałów 4.1 Problem niejednoznaczności postaci tliwości . . . . . . . . . . . . . . . 4.2 Twierdzenie o próbkowaniu . . . . 4.3 Compressed Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 48 51 53 54 59 sygnału w dziedzinie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . często. . . . . . . . . . . . . . . 59 61 64 5 Dyskretna Transformata Fouriera 76 5.1 Definicja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6 Filtry analogowe 6.1 Transformata Laplace’a . . . . . . . . . . . . . . . . . 6.2 Opis liniowych układów analogowych . . . . . . . . . . 6.3 Transmitancja Laplace’a . . . . . . . . . . . . . . . . . 6.4 Rodzaje i charakterystyka filtrów . . . . . . . . . . . . 6.4.1 Filtr Butterwortha . . . . . . . . . . . . . . . . 6.4.2 Filtr Czebyszewa I . . . . . . . . . . . . . . . . 6.4.3 Filtr Czebyszewa II . . . . . . . . . . . . . . . . 6.4.4 Filtr Bessela . . . . . . . . . . . . . . . . . . . 6.4.5 Filtr eliptyczny . . . . . . . . . . . . . . . . . . 6.5 Projektowanie filtrów w Matlabie . . . . . . . . . . . . 6.5.1 Pierwsza charakterystyka amplitudowo-częstotliwościowa . . . . . . . . . 6.5.2 Funkcje Matlaba przydatne przy projektowaniu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 . 80 . 83 . 84 . 88 . 93 . 96 . 99 . 99 . 99 . 100 . . . . . . 100 filtrów . . 103 7 Filtry cyfrowe 7.1 Transformata Z . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Opis liniowych układów dyskretnych . . . . . . . . . . . . 7.3 Transmitancja układów dyskretnych . . . . . . . . . . . . 7.4 Filtry FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.1 Współczynniki filtrów FIR . . . . . . . . . . . . . . 7.4.2 Projektowanie filtrów FIR metodą okien czasowych 7.4.3 Projektowanie filtrów FIR metodą próbkowania w dzinie częstotliwości . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dzie. . . . 106 107 110 113 114 114 115 119 SPIS TREŚCI 7.5 7.6 7.7 7.8 7.4.4 Projektowanie filtrów FIR metodą Remeza . . . . . . . . 7.4.5 Pozostałe metody projektowania filtrów FIR . . . . . . . Projektowanie filtrów FIR w Matlabie . . . . . . . . . . . . . . . 7.5.1 Metoda okien czasowych . . . . . . . . . . . . . . . . . . . 7.5.2 Metoda próbkowania w dziedzinie częstotliwości . . . . . 7.5.3 Metoda Remeza . . . . . . . . . . . . . . . . . . . . . . . Filtry IIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6.1 Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . 7.6.2 Projektowanie filtrów IIR metodą niezmienności odpowiedzi impulsowej . . . . . . . . . . . . . . . . . . . . . . . . 7.6.3 Projektowanie filtrów IIR metodą transformacji biliniowej 7.6.4 Projektowanie filtrów IIR metodami iteracyjnymi . . . . . Projektowanie filtrów IIR w Matlabie . . . . . . . . . . . . . . . 7.7.1 Metoda niezmienności odpowiedzi impulsowej . . . . . . . 7.7.2 Metoda transformacji biliniowej . . . . . . . . . . . . . . . 7.7.3 Metoda Yule’a-Walkera . . . . . . . . . . . . . . . . . . . Proces filtracji cyfrowej . . . . . . . . . . . . . . . . . . . . . . . 7.8.1 Struktury filtrów . . . . . . . . . . . . . . . . . . . . . . . 7.8.2 Filtracja sygnałów w Matlabie . . . . . . . . . . . . . . . 4 125 125 125 129 131 131 132 132 133 134 137 137 137 138 140 141 141 143 Przedmowa Żyjemy w czasach cyfrowej rewolucji. Coraz więcej danych, które rejestrujemy, składujemy, przetwarzamy i przesyłamy to dane cyfrowe. To sprawia, że następuje konwergencja różnych dziedzin z pogranicza informatyki, telekomunikacji, technik obliczeniowych, mediów w jeden wielki trend technologiczny, który przybliża nas do informacji, przyśpiesza obrót gospodarczy, zamienia świat w jedną globalną wioskę. Dlatego wydaje się dość oczywiste, że w profilu wykszałcenia informatyka powinien znajdować się przedmiot, który zawiera podstawowe informacje o tym jak takie dane cyfrowe pozyskiwać, jak je składować, by pogodzić wierność oryginalnemu sygnałowi z ograniczeniem rozmiaru danych, jak je przechowywać i przetwarzać. Dlatego w programie niedawno uruchomionej specjalności teleinformatyki na studiach II stopnia z informatyki na Wydziale Fizyki, Matematyki i Informatyki Politechniki Krakowskiej znalazł się przedmiot o nazwie Akwizycja i Przetwarzanie Sygnałów Cyfrowych (APSC). Celem jego uruchomienia jest zapoznanie studenta z technikami rejestracji i przewarzania danych cyfrowych. Niniejszy skrtypt jest pomyślany jako materiał pomocniczy zarówno dla studentów jak i prowadzących ten przedmiot. Autorzy starali się, by to opracowanie było w miarę samowystaczalne. Naszym celem było napisanie przewodnika przedmiotu, który stara sie wyjaśnić podstawowe pojęcia dotyczące technologii cyfrowej. Zaczynamy od przedstawienia różnego rodzaju typów sygnałów, w tym sygnałów dyskretnych i dystrybucyjnych. Mimo tego, że dziedzina ta jest tak nowoczesna, to podstawowe narzędzia matematyczne (analiza Fourierowska, będąca podstawą metod częstotliwościowych) zostały wprowadzone już ponad 200 lat temu. Przy ich pomocy dyskutujemy metody akwizycji sygnałów dyskretnych z ciągłych żródeł i omawiamy warunki, jakie muszą być spełnione, by tak pozyskany sygnał pozwolił na wierną rekonstrukcję danych źrodłowych. Oprócz klasycznego podejścia, opisanego w twierdzeniu o próbkowaniu, dyskutujemy niedawno wprowadzone Przedmowa 6 metody oszczędnego próbkowania. Jako przykład przetwarzania danych cyfrowych przedstawiamy różne metody filtracji sygnałów - zarówno analogowych jak i cyfrowych. Nie zakładamy żadnego specjalnego przygotowania koniecznego dla zrozumienia tego tekstu - wystraczą te podstawy analizy matematyznej i algebry, które student przyswaja w trakcie pierwszych lat studiów pierwszego stopnia. Zakładamy, że nieodłączną częścia tego przedmiotu będzie laboratorium. Podstawowym narzędziem używanym do wykonania ćwiczeń laboratoryjnych będzie Matlab, zwłaszcza jego część o nazwie Signal Processing Toolbox zawierający wiele narzędzi ułatwiających wykonywanie symulacji, obliczeń i projektów rozmaitych rozwiazań stosownych w przetwarzaniu sygnałów cyfrowych. Zakładamy, że uczestnicy kursu potrafią posługiwać się Matlabem w stopniu pozwalającym na napisanie prostego programu, zdefiniowaniu funkcji, czy też narysowanie wykresu. Na rynku jest dostępnych kilka książek, które są bardziej kompletnym źródłem niż nasz strypt - najbardziej godne polecenia wydają nam się monografia Tomasza P. Zielińskiego, a także książka Jerzego Szabatina czy też (nabardziej podstawowa i prosto napisana) ksiązka Richarda G. Lyonsa. Gdyby materiał tego skryptu okazał się niewystarczający, odsyłamy czytelnika do tych pozycji. Rozdział 1 Pojęcia wstępne Podstawowym obiektem zainteresowania niniejszego skryptu będą sygnały, ze szczególnym naciskiem na analizę i przetwarzanie sygnałów cyfrowych. Należy więc zacząć od wyjaśnienia, co będziemy rozumieć pod pojęciem sygnału. Pojęcie to jest ściśle powiązane z procesem pomiaru. W trakcie tego procesu rejestrujemy (mierzymy) pewne wybrane wielkości fizyczne (na przykład temperaturę, ciśnienie, napięcie elektytryczne, pole magnetyczne) i ich zależność od położenia i/lub czasu. Tak więc sygnał opisuje zmienność w czasie i/lub przestrzeni pewnych wybranych wielkości fizycznych. Często rozważanym przykładem sygnału jest jest przebieg w czasie wielkości napięcia elektrycznego na wyjściu mikrofonu w trakcie rejestracji dźwięku. Sygnały są generowane przez różnorakie źródła biologiczne (np. sygnały generowane przez organizm ludzki, używane w diagnostyce medycznej), społeczne i techniczne. Wiele sygnałów jest generowanych sztucznie przez człowieka; służą one jako nośnik przenoszący informacji (radio, telewizja, sieci komputerowe) lub jako sygnał pobudzający układ, stymulujący jego odpowiedź, niosącą informacje o jego własnościach (radar, sonar). 1.1 Typy sygnałów W zależności od ilości zmiennych niezależnych, jak również rodzaju oraz rozmiaru wielkości mierzonych możemy mówić o różnych różnych typach sygnałów. Tak więc - kierując się: • liczbą niezależnych zmiennych od których sygnał zależy mówimy o sygna7 ROZDZIAŁ 1. POJĘCIA WSTĘPNE 8 łach: jednowymiarowych n.p. sygnał powstały w trakcie rejestracji dźwięku, wielowymiarowych - n.p. zapis nieruchomego obrazka (sygnał dwuwymiarowy), zapis sekwencji video (sygnał trójwymiarowy); • zdolnością odbiorcy do przewidzenia kolejnych wartości sygnału, dzielimy sygnały na deterministyczne - dla których mamy dokładny model matematyczny opisu, losowe - czyli takie, dla których nie mamy modelu pozwalającena przewidzenie kolejnych wartości pomiarowych; co najwyżej możemy określić prawdopodobieństwa uzyskania kolejnych wartości; • charakterem (ciągłością) zmiennych, od których sygnał zależy jak również samej wielkości reprezentującej sygnał - mówimy tu o sygnale o naturze: ciągłej, dyskretnej. • czasem, w którym wartość sygnału jest różna od zera - tutaj można mówić o sygnałach o nieskończonym czasie trwania, impulsowych, w których sygnał poza pewnym skończonym obszarem jest równy 0. Przyjrzyjmy się dokładniej różnym typom sygnałów wynikających z różnego charakteru ciągłości tak sygnału jak parametrów, od których on zależy. Dla uproszczenia rozważmy jednowymiarowe sygnały zależne od czasu. Tutaj, ze względu na charakter dziedziny sygnału, jak również jego zbioru wartości, możemy mówić o: 1. ciągłym sygnale czasu ciągłego (sygnał analogowy - n.p. sygnał na wyjściu mikrofonu rejestrującego dźwięk); 2. sygnale ciągłym w czasie i dyskretnym w amplitudzie (n.p. skwantyzowanym sygnale na wyjściu przetwornika A/C); ROZDZIAŁ 1. POJĘCIA WSTĘPNE 9 3. ciągłym sygnale dyskretnego czasu - taki sygnał uzyskujemy w wyniku próbkowania sygnału analogowego; 4. sygnale dyskretnym zarówno w czasie jak też w amplitudzie. Szczególną podgrupę sygnałów dyskretnych zarówno w czasie jak też w amplitudzie stanowią sygnały, które mają ograniczony zbiór możliwych wartości; sygnały z tej grupy nazywamy sygnałami cyfrowymi. Zazwyczaj w takim przypadku stosujemy rodzaj kodowania bitowego. Jeżeli nasz sygnał cyfrowy ma N możliwych dyskretnych wartości, to każdą z jego wartości możemy jednoznacznie określić przez podanie n-bitowego ciągu, N ≤ 2n - etykiety bitowej, która jednoznacznie określa oryginalną wartość sygnału. Tak więc zamiast używania oryginalego sygnału możemy stosować te etykiety bitowe. Wtedy nasz sygnał to ciąg pól n-bitowych; w każdej chwili czasu wartość sygnału przybiera jedną z dwóch wartości: 0 lub 1. Takie sygnały nazywamy sygnałami binarnymi; odgrywają one coraz większą rolę w transmisji i przetwarzaniu danych cyfrowych. 1.2 Sygnały a informacja Dla nas sygnał to nośnik informacji. Można zadać pytanie, czy każdy sygnał niesie informacje? Aby na nie odpowiedzieć przypomnijmy że według teorii informacji C.Shannona [13], informacja nie jest powiązana z konkretnymi wartościami sygnału, tylko raczej z prawdopodobieństwem otrzymania danej wartości sygnału. Według tej teorii miarą ilości informacji IA związanej z rejestracją sygnału A, prawdopodobieństwo uzyskania którego wynosi pA , jest wielkość log2 ( P1A ). Gdy przesyłany sygnał jest deterministyczny, czyli gdy odbiorca ma pełną wiedzę o wartościach przesyłanego sygnału, to zdarzenia - odbiór sygnału A są zdarzeniami pewnymi, dla których prawdopodobieństwa są równe 1. Takie sygnały nie niosą żadnej informacji. Informacja jest związana tylko z takimi sygnałami, które dla odbiorcy są losowe. Pomimo tego, znaczna część wykladu będzie dyskutować sygnały deterministyczne i badać ich przetwarzanie. Powodem tego jest fakt, że sygnały takie matematycznie rzecz biorąc są prostszymi obiektami niż sygnały losowe. Dlatego na przykładzie tych deterministycznych sygnałów, których naturę i własności matematyczne rozumiemy lepiej niż naturę i własności sygnałów losowych, łatwiej będzie pokazać metody ich reprezentacji, czy też zdefiniować i pokazać działanie metod ich przetwarzania. ROZDZIAŁ 1. POJĘCIA WSTĘPNE 1.3 10 Ciągłe sygnały deterministyczne W niniejszym podrozdziale wprowadzimy podstawowe parametry służące do opisu i klasyfikacji sygnałów. Pokażemy również przykłady różnych sygnałów, szczególnie takich, które są często używane w teorii sygnałów. 1.3.1 Parametry sygnałów Podstawowymi parametrami opisującymi sygnały są wielkości związane z ich czasem trwania oraz energią, jaką niosą. Są to takie parametry jak wartość średnia sygnału, jego energia oraz moc. Deterministyczny sygnał analogowy określać będziemy przez określenie jego przebiegu w czasie x(t). Energia w teorii sygnałów jest zadana jako suma kwadratów amplitud sygnału - w porównaniu do definicji energii w fizyce nie zależy ona od zmienności sygnału. Dla przebiegu x(t) możemy określić: 1. wartość średnią sygnału w przedziale [t1′ t2 ] ˆ t2 hxi = x(t)dt, t1 2. wartość średnią dla sygnałów o nieskończonym czasie trwania 1 hxi = lim T →∞ 2T ˆT x(t)dt, −T 3. wartość średnią dla sygnałów okresowych o okresie T: 1 hxi = T 4. energię: Ex = tˆ 0 +T x(t)dt, t0 ˆ∞ x2 (t)dt, −∞ 5. średnią moc: 1 Px = lim T →∞ 2T ˆT −T x2 (t)dt, ROZDZIAŁ 1. POJĘCIA WSTĘPNE 11 6. średnią moc sygnału okresowego: 1 Px = T tˆ 0 +T x2 (t)dt, −t0 1.3.2 Sygnały o ograniczonej energii Mając te definicje możemy określić klasy sygnałów w zależności od energii lub mocy jaka jest z nimi związana. Pierwszą taką klasą jest klasa sygnałów o skończonej energii. Sygnały, których energia jest niekoniecznie jest skończona, ale moc jest ograniczona nazywamy sygnałami o ograniczonej mocy. Ćwiczenia: 1. Pokaż, że średnia moc sygnału o ograniczonej energii jest równa 0. 2. Czy fakt, że sygnał ma ograniczoną energię oznacza, że jest sygnałem impulsowym? Jeżeli nie - to jak szybko musi zanikać taki sygnał dla t → ∞, by pomimo to mógł być sygnałem o skończonej energii? Najprościej zapewnić ograniczoność energii sygnału ograniczając czas jego trwania do pewnego skończonego odcinka czasowego; poza nim taki sygnał jest zerem. Taki sygnał nazywamy sygnałem impulsowym - najprostszy sygnał impulsowy to impuls prostokątny Π(t). Dokładniej mówiąc, symbol Π(t) oznacza znormalizowany w czasie i amplitudzie sygnał impusowy, którego kszałt przedstawia rys.1.1a. Stosując skalowanie szerokości i amplitudy oraz przesunięcie jesteśmy w stanie uzyskać impuls prostokątny o dowolnej amplitudzie A, pozycji środka c oraz szerokości b. Łatwo sprawdzić, że sygał x(t|A, c, b) dopowiadający takiemu uogólnionemu impulsowi prostokątnemu można zapisać: x(t|A,c,b)=A Π( x−c b ). Mając taki impuls prostokątny możemy wyciąć z dowolnego sygnału jego fragment, będący impulsem o szerokości i położeniu określonym przez parametry impulsu prostokątnego, natomiast amplitudzie określonej przez wartości sygnału (ewentualnie przeskalowanej przez amplitudę A przebiegu prostokątnego). Mówimy, że impuls prostokątny działa tutaj jako tzw. funkcja okna, która z całego przebiegu sygnału „wycina” fragment szczególnie nas interesujący, który chcemy podać analizie - aby to uzyskać przemnażamy badany przebieg x(t) przez właściwą funkcję okna. W podobny sposób możemy użyć impulsu trójkątnego, którero przebieg czasowy został pokazany na rys.1.1b. Rysunki 1.2a oraz 1.2b pokazują impulsy uzyskane w sposób opisany powyżej, a więc: ROZDZIAŁ 1. POJĘCIA WSTĘPNE 12 x(t) 1 x(t) 1 t -0.5 0 t 0.5 -1 (a) Znormalizowany impuls prostokątny 0 1 (b) Impuls trójkątny Rysunek 1.1: Przykłady sygnałów impulsowych x(t) x(t) 1 1 t -T/4 0 T/4 t 0 T (a) Impuls kosinusoidalny wycięty oknem prosto- (b) Impuls wycięty z przebiegu wkładniczego imkątnym pulsem prostokątnym Rysunek 1.2: Działanie funkcji okna ROZDZIAŁ 1. POJĘCIA WSTĘPNE 13 x(t) x(t) A t t 0 T (a) Eksponecjalnie malejący (b) Sinusoida tłumiona Rysunek 1.3: Sygnały przyczynowe (określone dla t>0) o niezwartm nośniku i skończonej energii • symetryczny impuls kosinusoidalny (rys.1.2a) uzyskany przez działanie symetrycznego impulsu prostokątnego Π( Tt ) na nieskończony (w czasie) sygnał postaci: cos(ωt)=cos( 2π T ). • impuls wykładniczy, wycięty oknem prostokątnym o szerokości T w czasie od 0 do T . Ci, którzy zadali sobie trud udzielenia odpowiedzi na pytanie 2 z Ćwiczeń wiedzą, że sygnał nie musi mieć charakteru impulsu (czyli - jak to określają matematycy - zwartego nośnika), by być sygnałem o ograniczonej energii. Wystarczy, by był on gładki (nie miał osbliwości) oraz by jego amplituda spadała odpowiednio szybko dla dużych czasów. Ilustrują to cztery kolejne przykłady: Rysunek 1.3pokazuje dwa przykłady sygnałów określone tylko dla t > 0. Czynnikiem, który zapewnia skończoność energii jest funkcja exp(−αt), α > 0. Inne przykłady sygnałów o skończonej energii mimo nieskończonego czasu trwania sygnału to przebieg gaussowski (rys.1.4b) oraz sygnał Sinc(ω0 t) (nazywany również Sa(ω0 t), określony następująco: ( sin(ω0 t) dla t 6= 0 ω0 t Sinc(t) = 1 dla t = 0, którego przebieg przedstawia rys.1.4a. Zobaczymy, że sygnał opisany taką funkcją jest blisko związany z impulsem prostokątnym oraz, że odgrywa dużą rolę ROZDZIAŁ 1. POJĘCIA WSTĘPNE 14 x(t) 1 1 x(t) t t (a) Sygnał Sinc(ω0 t) (b) Sygnał gaussowski Rysunek 1.4: Inne ważne sygnały o skończonej energii w teorii próbkowania, będącego częścią procesu akwizycji sygnałów cyfrowych z sygnałów analogowych. 1.3.3 Sygnały o ograniczonej mocy Warunek skończoności energii jest dość silnym ograniczeniem na postać sygnału ponieważ nakłada wymagania efektywnej lokalizacji przebiegu sygnału. Szerszą klasą sygnałów jest klasa sygnałów o ograniczonej mocy. Najprostszymi przykładami takich sygnałów są: • sygnał stały x(t) =const • sygnał harmoniczny x(t) = A sin(ω0 t) • fala prostokątna (bipolarna - rys.1.5a, unipolarna - rys.1.5b) Do tej grupy należą również często stosowane w teorii sygnałów funkcje skoku jednostkowego (czyli funkcja Heaviside’a) określona formułą: ( 1 dla t ≥ 0 1(t) = (1.1) 0 dla t < 0 jak też funkcja znaku, określona jako: ROZDZIAŁ 1. POJĘCIA WSTĘPNE 15 x(t) x(t) A A t t A (a) bipolarna (b) unipolarna Rysunek 1.5: Fala prostokątna dla t > 0 1 sgn(t) = 0 dla t = 0 −1 dla t < 0 (1.2) Przebiegi tych funkcji ilustruje rysunek 1.6. Funkcje te (a zwłaszcza funkcja skoku) mogą - podobnie jak to było z impulsem prostokątnym czy też trójkątnym - być używane jako narzędzia do formowania sygnału; na przykład znormalizowany sygnał skoku jednostkowego możemy też zapisać: Π(t) = 1(t + 0.5) − 1(t − 0.5) 1.4 Sygnały dyskretne Jak powiedzieliśmy to w trakcie omawiania różnych typów sygałów, sygnały dyskretne to sygnały określone tylko w przeliczalnym zbiorze chwil czasowych. Większość sygnałów tego rodzaju, które stanowić będą przedmiot naszego zainteresowania, będziemy otrzymywać poprzez pomiar wartości sygnału analogowego w określonych z góry punktach czasowych. Proces tego pomiaru nazywać będziemy próbkowaniem sygnału. Najczęściej stosuje się próbkowanie równomierne, polegające na pomiarze sygnału w równo odległych od siebie chwilach czasowych tn = nTs , gdzie n - numer próbki w sekwencji. Czas Ts nazywamy ROZDZIAŁ 1. POJĘCIA WSTĘPNE 16 x(t) 1 1 x(t) t 0 t 0 (a) Funkcja skoku jednostkowego 1(t) (b) Funkcja znaku sgn(t) Rysunek 1.6: Podstawowe funkcje o ograniczonej mocy okresem próbkowania, a jego odwrotność fs = 1/Ts - częstotliwością próbkowania. Ponieważ dla takiego próbkowania czas pobierania próbki jest jednoznacznie zadany poprzez numer próbki, dlatego będziemy traktować takie sygnały jako funkcje bezwymiarowej wielkości n - czasu unormowanego względem okresu próbkowania. Podobnie jak dla sygnałów analogowych możemy zdefiniować parametry sygnału takie jak wartość średnia, energia średnia, średnia moc. Wzory na te parametry są analogiczne do tych określonych dla sygnałów ciągłych - trzeba tylko ciągłe całkowanie zamienić na dyskretne sumowanie. Ex = ˆ∞ −∞ x2 (t)dt −→ 1 Px = lim T →∞ 2T ˆT −T ∞ X x2 (n) n=−∞ N X 1 x2 (n) N →∞ 2N + 1 x2 (t)dt −→ lim −N Podobnie jak dla sygnałów ciągłych możemy podzielić sygnały dyskretne na dwie główne grupy - o ograniczonej energii oraz o ograniczonej mocy. Rysunki 1.7a i 1.7b pokazują dyskretne wersje impulsu prostokątnego oraz impulsu trójkątnego. ROZDZIAŁ 1. POJĘCIA WSTĘPNE 17 x[n] x[n] 1 -3 0 1 1 2 3 n (a) dyskretny impuls prostokątny -3 0 1 2 3 n (b) Dyskretny impuls trójkątny Rysunek 1.7: Przykłady sygnału dyskretnego 1.5 Sygnały dystrybucyjne Omawiane do tej pory sygnały były wielkościami modelowanymi przez zwykłe funkcje - ciągłe dla sygnałów analogowych, bądź ich dyskretne odpowiedniki dla sygnałów dyskretnych. W wielu przypadkach związanych z przetwarzaniem sygnałów użytecznym jest rozważyć jako modele sygnału wielkości, które nie mogą być traktowane jako zwykłe funkcje. Ich porządna matematyczna definicja jest dość skomplikowana [8]; polega na określeniu działania tych obiektów na inne, zwykłe funkcje. Wielkości te nazywamy dystrybucjami; klasycznym przykładem takiej dystrybucji jest impuls delta Diraca δ(t). Jak określić dystrybucje? Załóżmy dla uproszczenia, że chodzi nam tu o dystrybucje zależne od jednej zmiennej - takie jak delta Diraca. Niech Ω będzie otwartym podzbiorem zbioru liczb rzeczywistych. Rozważamy przestrzeń funkcji określonych na Ω o wartościach liczbowych. Matematycy definiują dystrybucje jako liniowe odzworowania, które funkcjom pewnej dobrze określonej podklasy wszystkich możliwych funkcji liczbowych określonych na Ω, nazywanej zbiorem funkcji próbnych przypisują liczbę. Jak wybrać podklasę funkcji próbnych? Okazuje się, że im bardziej restrykcyjna jest definicja tej podklasy (im mniej funkcji próbnych), tym więcej obiektów może na nie działać (tym więcej dystrybucji). Aby zapewnić możliwość w miarę swobodnego określania dysytrybucji tak, by zwyczajne funkcje lokalnie całkowalne były ich szczególnymi przypadkami, powiniśmy jako funkcje próbne wybrać bardzo szczególne funkcje. Muszą one być gładkie tak, by można obliczyć pochodne dowolnego ROZDZIAŁ 1. POJĘCIA WSTĘPNE 18 rzędu oraz mieć zwarty nośnik (czyli funkcje próbne muszą być dokładnie równe 0 poza pewnym przedziałem). Fakt, że funcje próbne mają powyższe własności sprawia, że: • mogą być dowolnie wiele razy różniczkowane • są całkowalne, ponadto istnieją całki z iloczynów tych funkcji, z prawie dowolną inną funkcją ograniczoną. Przestrzeń wektorową - zbiór funkcji próbnych zadanych na Ω z określonym dodawaniem funkcji i mnożeniem funkcji przez liczbę oznaczamy jako D(Ω). Dystrybucją będziemy nazywać każdy liniowy funkcjonał określony na D(Ω). Innymi słowy dystrybucją f będzie każdy przepis Lf , który dowolnej funkcji próbnej ϕ ∈D(Ω) przypisze jednoznacznie liczbę, ponadto dla dowolnych funkcji próbnych ϕ1 , ϕ2 oraz dowolnych liczb a1 , a2 spełniona jest relacja Lf (a1 ϕ1 + a2 ϕ2 ) = a1 Lf (ϕ1 ) + a2 Lf (ϕ2 ). Jak można określić działanie Lf ? Gdy f jest funkcją lokalnie całkowalną, to poprawnym sposobem określenia tego działania jest formuła: ˆ Lf (ϕ) = f (x) ϕ(x) dx Ω Jest tak dlatego, gdyż własności funkcji próbnej gwarantują zbieżność całki, zaś liniowość wynika z tego, że całka jest funkcjonałem liniowym. Ponieważ przepis na obliczanie wartości dystrybucji jest tu zadana przez funkcję f , możemy niejako utożsamić funkcję f z dystrybucją którą .f określa. Widzimy, że w tym sensie dystrybucją jest każda funkcja lokalnie całkowalna. Czy prawdziwe jest odwrotne stwierdzenie? Czy działanie każdej dystrybucji da się zapisać przez formułę całkową z pewnym f , które jest zwykłą funkcją? Łatwo można wykazać, że tak nie jest. Zrobimy to podając kontrprzykład, czyli określając dystrybucję która nie da się sprowadzić do formuły całkowej ze zwykłymi funkcjami. Definiujemy funkcjonał δ, którego działanie na dowolną funkcję próbną określamy jako: Lδ0 (ϕ) = ϕ(0) Twierdzimy, że jest to dobrze określona dystrybucja. By to wykazać trzeba pokazać, że: ROZDZIAŁ 1. POJĘCIA WSTĘPNE 19 • ten przepis pozwala określić działanie dystrybucji na dowolną funkcję próbną - tak jest w istocie; • funkcjonał jest liniowy - wynika to z liniowości przestrzeni D(Ω). Pozostaje teraz pokazać, że nie istnieje (klasyczna) funkcja, która poprzez formułę całkową ze zwykłą funkcją określa wartości dystrybucji zgodnie z wyjściową definicja. Gdyby tak było, to dla każdej funkcji próbnej mielibyśmy warunek: ˆ dtδ(t)ϕ(t) = ϕ(0) (1.3) Ω By taka relacja mogła zachodzić dla wszystkich funkcji próbnych, to musiałyby być spełnione dwa sprzeczne ze sobą wymagania: • wartość funkcji δ(t) musiałaby być równa 0 dla t6=0 (by nie dopuścić do wpływu innch wartości funkcji ϕ na wynik) - czyli nośnik funkcji δ(t) jest zbiorem miary zero • całka po nośniku funkcji δ(t) musiałaby dać skończony wynik. Tych wymagań nie można zrealizować traktując δ(t) jako zwykłą funkcję. Taka funkcja musiałaby mieć wszędzie (z wyjątkiem zera) wartość zero, zaś w t = 0 dążyć do nieskończoności. Widzimy, że impuls Diraca to model nieskończenie wąskiego sygnału o nieskończenie dużej amplitudzie i polu pod wykresem równym 1. Takiego impulsu nie można zrealizować jako zwykłą funkcję, ale może być on rozumiany jako granica ciągu zwykłych funkcji δ(α, t) z parametrem ´∞ α > 0, takim że dla każdego α mamy: dtδ(t, α) = 1 . Wtedy: −∞ lim δ(t, α) = δ(t). α→0 Takich ciągów aproksymujących dystrybujcję δ(t) może być wiele - pokażemy to na przykładzie ciągu w którym kolejne funkcje aproksymujące to impulsy prostokątne o rosnącej amplitudzie i malejącej szerokości. Elementy tego ciągu definiujemu jako: δ(t, α) = α1 Π(αt) - czyli impulsy o szerokości α i amplitudzie 1 α . Możemy sprawdzić, że spełniony jest warunek jednostkowego pola impulsu. Pokażemy, że granicą tak określonego ciągu zwykłych funkcji jest dystrybucja δ(t). By tego dokonać powinniśmy pokazać, dla każdej funkcji próbnej ϕ ciąg wartości obliczonych jako całki z iloczynów tej funkcji z funkcjami - elementami ROZDZIAŁ 1. POJĘCIA WSTĘPNE 20 ciągu aproksymacyjnego zmierzają do wartości dystrybucji δ dla tej funkcji, czyli do ϕ(0). W naszym przykładzie dla ustalonego α mamy: ˆ∞ 1 dxδ(t, α)ϕ(t) = α −∞ ˆα/2 ϕ(t)dt. −α/2 Dla małych α możemy zaaproksymować funkcję próbną jej rozwinięciem w szereg MacLaurine’a: ϕ(t) = ϕ(0) + ϕ′ (0)t + ϕ′′ (0) t2 + O(t3 ). Po wstawieniu tego rozwinięcia do całki dostajemy następujące wyrażenie na jej przybliżoną wartość: ˆ∞ dxδ(t, α)ϕ(t) = 1 1 [ϕ(0)α + ϕ′′ (0)α3 + O(α5 ) α 24 = ϕ(0) + −∞ 1 ′′ ϕ (0)α2 + O(α4 ) 24 Oznacza to, że limα→0 δ(t, α) = δ(t). Powyższy sposób dowodzenia równości dystrybucyjnych jest dość często stosowany; zastosujemy go jeszcze do wykazania następującej relacji dystrybucyjnej: d 1(t) = δ(t). dt Aby dowieść tej relacji określmy sygnał 1(t) jako granicę następującego ciągu aproksymacyjnego: dla t < − α2 0 1 t 1(t) = lim α + 2 dla − α2 < t < α2 α→0 1 dla t > α2 . Pochodna tego wyrażenie prowadzi do nego: 0 dla d 1(t) = α1 dla dt 0 dla następującego ciągu aproksymacyj- t < − α2 − α2 < t < t > α2 . α 2 ROZDZIAŁ 1. POJĘCIA WSTĘPNE 21 Ostatnia formuła jest już nam znana - pokazaliśmy poprzednio, że jej granica dla α → 0 to dystrybucja δ(t). Tak więc tym samym wykazaliśmy prawdziwość relacji między pochodną skoku jednostkowego a dystrybucją delta Diraca. Kluczową dla zastosowań w teorii sygnałów własnością dystrybucji delta Diraca jest jej działanie dystrybucyjne opisane wzorem 1.3 oraz jego uogólnienie postaci: ˆ dtδ(t − t0 )ϕ(t) = ϕ(t0 ). (1.4) Ω Powyższe relacje pokazują, że dystrybucja delta może być uważana za matematyczny model próbkowania: działanie δ(t − t0 ) na ciągły sygnał x(t) daje próbkę tego sygnału w t0 . Obiektem realizującym jednorodne próbkowanie sygnału ciągłego z okresem próbkowania Ts jest tak zwana dystrybucja grzebieniowa, nazywana inaczej „grzebieniem Diraca”. Jest ona określona jako nieskończona suma impulsów Diraca, powtarzanych z okresem Ts . δTs (t) = ∞ X n=−∞ δ(t − nTs ). (1.5) Pomnożenie dowolnego sygnału x(t) przez dystrybucję grzebieniową daje ciąg impulsów Diraca poprzesuwanych o całkowitą ilość okresów próbkowania o amplitudach określonych przez wartość oryginalnego sygnału w danym punkcie: x(t)δTs (t) = ∞ X n=−∞ x(nT0 )δ(t − nTs ). Sygnał opisany przez tę formułę jest sygnałem dystrybucyjnym opisującym wynik próbkowania. Rozdział 2 Przestrzenie sygnałów W niniejszym rozdziale zajmiemy się omówieniem wymagań matematycznych związanych z akwizycją i przetwarzaniem sygnałów. Pokażemy, że reprezentacja sygnału zależy od wyboru sygnałów wzorcowych - bazy w przestrzeni sygnałów. Określimy również pewne standardowe funkcje używane w analizie i przetważaniu sygnałów. 2.1 Reprezentacje sygnałów Do tej pory traktowaliśmy sygnały jako abstrakcyjne wielkości reprezentujące wyniki pomiarów. Jak zobaczymy za chwilę, ten sam sygnał może być zapisany w różny sposób, czyli może mieć różne reprezentacje [7]. Źródeł tego faktu można szukać w specyfice pomiaru. Aby dokonać pomiaru ustalamy pewne sygnały wzorcowe, a następnie porównujemy sygnał mierzony z wzorcami, starając się wyrazić wielkości mierzone jako kombinację liniową wzorców. Gdy wybierzemy inne sygnały wzorcowe, to pomiar tej samej wielkości da nam inne współczynniki rozkładu, czyli inną reprezentację tego samego sygnału. Wybór reprezentacji może mieć spore znaczenie praktyczne - wybierająć różne wzorce możemy uzyskać różną jakość reprezentacji. Będziemy mówić, że reprezentacja jest tym lepsza im mniej współczynników rozwinięcia potrzebuje, by zaprezentować sygnał z ustaloną z góry dokładnością. Tak więc odpowiedni wybór reprezentacji może pozwolić na znaczną kompresję danych. Dobór reprezenatcji jest również ważny w procesach przetwarzania sygnałów. Na przykład często potrafimy powiedzieć, co się dzieje w procesie, gdy sygnał ma określoną częstotliwość. 22 ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 23 Dlatego też jedną z podstawowych metod analizy sygnałów jest analiza częstotliwościowa, w której dokonujemy rozkładu sygnału na składowe o określonych częstotliwościach. Jako ilustrację tych wstępnych uwag rozważmy przykład ilustrujący zależność sygnału od reprezentacji. Przykład 1. Dokonano serii pomiarów dwóch wielkości uzyskano następujące wyniki: w1 = (25, 23), w2 = (22, 23), w3 = (20, 22), w4 = (18, 17). Taki zapis wyników sugeruje, analizując sygnał zrobiliśmy następujące założenia: • nasz sygnał to para liczb, czyli wektor w przestrzenie dwuwymiarowej, • przyjęliśmy naturalny układ sygnałów wzorcowych (wektorów bazowych w R2 ): 0 1 . e1 = , e2 = 1 0 a Przy takich założeniach zapis wektora w = oznacza, że liczby a i b są współb 0 1 . Obliczając +b czynnikami rozwinięcia wektora w w bazie e1 , e2 , w = a 1 0 2 2 energię naszego układu dla wektora w otrzymujemy E = a + b . Dla sygnałów takich jak rozważane w naszym przykładzie obie składowe sygnałów są porównywalne, a więc ich znaczenie w dla dokładnej reprezentacji wektora w bądzie tego samego rzędu. Dlatego w reprezentacji określonej przez wzorce e1 , e2 musimy z równą starannością kodować wartości obu tych składowych. Nie jest to jdnak jedyna możliwość. Możemy jako nasze wektory wzorcowe wybrać inną parę, na przykład: 1 1 f1 = , f2 = 1 −1 Teraz chcemy wyrazić nasz wektor jako kombinację nowych sygnałów wzorcowych: a 1 1 1 1 α = αf1 + βf2 = α +β = w= b 1 −1 1 −1 β α Wektor x = , który jest reprezentacją sygnału w bazie {f1, f2 } spełnia rówβ nanie liniowe postaci w = Ax, gdzie A jest macierzą związaną z przejściem od ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 24 Tablica 2.1: Reprezentacja sygnału - ilustracja wektor w1 w2 w3 w4 {e1 , e2 } 25 23 22 23 20 22 18 17 {f1 , f2 } 24 1 22, 5 −0, 5 21 −1 17, 5 −0, 5 rekonstrukcja 24 24 22, 5 22, 5 21 21 17, 5 17, 5 błąd 1 −1 −0, 5 0, 5 −1 1 0, 5 −0, 5 {h1 , h2 } 24 1 √ 2 1 22, 5 √1 2 −0, 5 21 √1 2 −1 17, 5 √1 2 −0, 5 starej do nowej bazy. Jak wiemy z algebry zmiana wektorów bazowych jest równoważna określeniu pewnej liniowej transformacji opisanej macierzą, której kolumny to wektory nowej bazy wyrażone jako kombinacja wektorów starej bazy. Jeżeli nowe wzorce zostały poprawnie wybrane (tak, że one również są bazą w R2 , to macierz A jest nieosobliwa, więc możemy znaleźć poszukiwaną reprezentację wektora w nowej bazie jako x = A−1 w. Ilustracja tego, jak wybór bazy wpływa na reprezentacje sygnał, własności statystyczne ich składowych, czy wkład poszczególnych składowych do energii sygnału jest treścią Tabeli 2.1. W kolumnie drugiej i trzeciej tej tabeli pokazuje reprezentacje wektorów pomiarowych z omawianego przykładu odpowiednio dla wzorców {e1 , e2 } oraz {f1 , f2 }. Porównując obie te reprezentacje zauważamy wyraźne różnice. Przejście do drugiej reprezentacji spowodowało uporządkowanie wkładu do energii od obu składowych sygnału - wkład do energii od drugiej współrzędnej w reprezentacji {f1 , f2 } jest znacząco mniejszy, niż wkład od pierwszej współrzędnej. Oznacza to, że w czasie kodowania możemy bez szkody dla jakości wyniku większą uwagę poświęcić pierwszej składowej. Gdybyśmy w reprezentacji drugiej w trakcie kodowania zupełnie zaniedbali wartość drugiej składowej (przyjęli, że jest równa 0), a następnie tak zmodyfikowany wektor przekształcili na powrót do reprezentacji pierwszej, to dostaniemy zupełnie dobre odtworzenie wyjściowego sygnału. Rzeczywiście, rozważane w przykładzie wektory miały w reprezentacji drugiej składowe α, β, gdzie α ≫ β. Po wykonaniu drastycznego kodowania polegającego na zaniedbaniu drugiej składowe dostajemy i powrocie do reprezentacji pierwszej dostajemy rekonstukcję wyjściowych wektorów; zrekonstruowane wektory są wypisane w kolumnie czwartej tabeli 2.1, a błędy rekonstrukcji w kolumnie piątej. Opisaną procedurę możemy uważać za prototyp procedury ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 25 kodowania w tzw. kodowaniu transformacyjnym, którego sztandarowym przykładem jest kodowanie JPEG. Widzimy, ze właściwy wybór sygnałów wzorcowych może doprowadzić do znacznie bardziej zwartej reprezentacji sygnału, niż to miało miejsce w bazie naturalnej. W omawianym przykładzie przejście do nowej reprezentacji wymagało rozwiązania pewnego problemu liniowego. Możliwe jest uzyskanie tego mniejszym nakładem kosztów obliczeniowych, o ile w zbiorze sygnałów który rozważamy jest określony iloczyn skalarny, a docelowy układ sygnałów wzorcowych jest ortonormalny, czyli zawiera sygnały unormowane - to znaczy o długości 1 oraz wzajemnie do siebie prostopadłe. Jeżeli w omawianym przykładzie przyjmiemy standartowy iloczyn skalarny, to zauważamy, że wektory f1 , f2 są prostopadłe (f1 · f2 = 0), ale nie są unormowane, czyli należy wprowadzić nowy, unormo1 1 , h2 = √12 . Oczywiście jest to sytuacja wany układ wektorów h1 = √12 1 −1 analogiczna do omawianej poprzednio, czyli możemy wyliczyć postać naszej reprezentacji wektorów omawianą wcześniej metodą rowwiązania układu równań liniowych, ale znacznie prościej będzie wykorzystać ortogonalność wektorów bazowych. Zapisujemy formalny rozkład wektorów w bazie ortogonalnej, czyli w = xh1 + yh2 . Mnożąc obie strony tego równania przez h1 otrzymujemy: w · h1 = x h1 · h1 + y h2 · h1 = x. Podobnie przemnażając skalarnie wyjściowe równanie przez h2 uzyskujemy y = w·h2 . Dla wektorów rozważanych w przykładzie, współczynniki rozwinięcia w bazie {h1 , h2 }są wypisane w kolumnie 6 tabeli2.1. Jak widać, są one (z dokładnością, do ogólnego czynnika √12 równe tym, które uzyskano dla wzorców {f1 , f2 }. Warto zwrócić uwagę na jeszcze jeden aspekt zagadnienia - dotyczy on energii sygnału w różnych reprezentacjach. Gdy obliczymy energię jako sumę kwadratów współczynników rozwinięcia w danej reprezentacji, to przekonamy się, że tak określna energia jest taka sama w reprezentacji z wzorcami {e1 , e2 } oraz {h1 , h2 }, ale jest różna, gdy stosujemy wzorce {f1 , f2 }. Powododem tego jest fakt, że transformacja powiązana ze zmianą bazy {ei } → {fk } nie jest transformacją ortogonalną (czyli nie zachowuje długości), natmiast jest nią transformacja zwiazana z przejściem zmiana bazy z {ei } → {hk }. ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 2.2 26 Własności matematyczne zbiorów sygnałów Omówiony w poprzednim rozdziale przykład przekonuje, że po to, by móc wykonywać na sygnałach jakiekolwiek operacjie, należy zbiory sygnałów (przestrzenie sygnałów) wyposażyć we własności pozwalając nimi swobodnie manipulować. Chodzi tu o możliwości okreslenia odległości między sygnałami, określenia długości pojedyńczego sygnału, pomiaru kąta między nimi - czyli wyposasażenie je w pewne własności metryczne. Inne potrzebne własności to określenie możliwości dodawania sygnałów, mnożenia sygnału przez liczbę, określenia sygnałów bazowych, poszukiwania reprezentacji sygnału w dla różnych wyborów sygnałów bazowych - jest to grupa okreśkająca algebraiczne własności zbiorów sygnałów. Ostatnią wreszcie grupą własności związana jest z zupełnością zbiorów sygnałów - dotyczy ona kwestii, czy ciągi Cauchy’ego elementów zbioru sygnałów mają granice w tym zbiorze. Przedstawimy teraz wymagania, jakie zazwyczaj stawimy zbiorom sygnałów. Szersze omówienie podstaw algebraicznych włąsności potrzebnych do określenia użytecznych klas przestrzeni sygnałów można znaleźć w [16] Choć w większości przypadków sygnałami są funkcje, to będziemy się starali wprowadzić potrzebne konstrukcje matematyczne bez specjalnego identyfikowania natury obiektów będących sygnałami. 2.2.1 Własności metryczne przestrzeni sygnałów Minimalne wymagania metryczne w zbiorze sygnałów S spełnimy określając metrykę, czyli funkcję, która każdej parze x i y sygnałów z S przyporządkowuje nieujenmną liczbę rzecztywistą ρ(x, y) o następujących własnościach: • ρ(x, y) = 0⇐⇒ x = y, • ρ(x, y) = ρ(y, x) (symetria), • ρ(x, z) ≤ ρ(x, y) + ρ(y, z) (nierówność trójkąta). Przestrzeń sygnałów wyposażoną w metryką nazywamy przestrzenią metryczną. Wielkość ρ(x, y) interpretujemy jako odległość między sygnałami. Mając definicję metryki możemy wprowadzić rozmaite pojęcia topologiczne, jak zbiór otwarty, otoczenie, brzeg, granica ciągu oraz granica funkcji. Ważną własnością przestrzeni metrycznej jest jej zupełność. Mówimy, że przestrzeń jest zupełna, gdy każdy jej ciąg Cauchy’ego elementów tej przestrzeni (czyli ciąg,dla którego odległości jego elementów maleją do zera) ma granicę, która jest również elenetem tej przestrzeni. ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 27 Oczywiście metrykę w danym zbiorze sygnałów można określać na różne sposoby; na ogół prowadzi to do różnych własności topologicznych. Przykłady przestrzeni sygnałów będących przestrzeniami metrycznymi: 1. Przestrzeń Rn n-elementowych ciągów liczb rzeczywistych. Możemy zdefiniować różne metryki, n.p.: ( 0 dla x = y (a) metryka dyskretna: ρ(x, y) = , 1 dla x = 6 y (b) metryka taksówkowa: ρ(x, y) = N P i=1 (c) metryka Euklidesa: ρ(x, y) = s N P i=1 |(xi − yi |, (xi − yi )2 . 2. Przestrzeń sygnałów o ograniczonej energii (zwykle oznaczaną symbolem L2 ) jest przestrzenią metryczną z metryką: v u ˆ∞ u u ρ(x, y) = t |x(t) − y(t)|2 dt −∞ 3. Przestrzeń funkcji okresowych o okresie T0 jest przestrzenią metryczną z metryką: v u u 1 ˆ∞ u ρ(x, y) = t |x(t) − y(t)|2 dt T0 −∞ 2.2.2 Struktura liniowa przestrzeni sygnałów Jak widzieliśmy na przykładach w pierwszej części tego rozdziału, kluczową własnością, w którą ma być wyposażony każdy zbiór sygnałów jest możliwość wykonywania kombinacji liniowych sygnałów, czyli dodawaniu wektorów i mnożeniu ich przez liczbę. Włąściwą konstrukcją matematyczną implementującą te włąsności jest struktra przestrzeni wektorowej. Mówimy, że zbiór sygnałów jest przestrzenią wektorową nad ciałem K, gdy określimy dla niej dwie operacje: dodawanie sygnałów (opreacja "+") oraz mnożenia przez liczbę z ciała K (operacja "*") o własnościach: ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 28 • przemienność dodawania: x + y = y + x • łączność dodawania: (x + y) + z = x + (y + z) • łączność mnożenia: α(βx) = (αβ) x • rozdzielność mnożenia względem dodawania: α(x + y) = αx + αy oraz (α + β)x = αx + βx W charakterze ciała liczbowego K będziemy stosować zbiór liczb rzeczywistych lub zbiór liczb zespolonych. Przykłady: 1. Przestrzeń Rn n-elementowych ciągów liczb rzeczywistych ze zwykłym dodawaniem wektorów i mnożeniem wektora przez liczbę. 2. Przestrzeń sygnałów o ograniczonej energii (przestrzeń L2 ) uzupełniona o sygnał zerowy x(t) ≡ 0 z dodawaniem funkcji i mnożeniem funkcji przez liczbę określoną w zwykły sposób. 3. Przestrzeń funkcji okresowych o okresie T0 . 2.2.3 Norma, iloczyn skalarny Ważnym elementem prowadzącym do stworzenia konstrukcji najlepiej przystosowanych do analizy sygnałów jest połączenie własności algebraicznych i metrycznych. Pierwszym krokiem w tą stronę jest wprowadzenie liniowych przestrzeni unormowanych. Mówimy, że zbiór sygnałów ma strukturę liniowej przestrzeni unormowanej, jeżeli: 1. jest on przestrzenią liniową 2. w zbiorze tym zdefiniowano normę, czyli odwzorowanie, które każdemu sygnałowi x przypisuje nieujemną liczbę rzeczywistą kxk, zwaną normą tego sygnału, o własnościach: • kxk = 0 ⇔ x = 0 • k| αxk = |α|k • k x + yk ≤ kxk + kyk ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 29 Każda liniowa przestrzeń unormowana jest automatycznie przestrzenią metryczną z metryką określoną (indukowaną) przez normę, zdefiniowaną jako: ρ(x, y) = kx − yk. Tak więc, jeżeli pewien zbiór sygnałów wyposażony jest wszystkie atrybuty, które sprawiają, że ma on (wraz z odpowiednimi działaniami) strukturę liniowej przestrzeni unormowanej, to w takim zbiorze możemy określić norme (długość) sygnału, jego odległość od innych sygnałów; nie mamy jedynie możliwości określenia kąta między wektorami. Przykłady liniowych przestrzeni unormowanych: 1. Przestrzeń Rn n-elementowych ciągów liczb rzeczywistych. Możemy zdefiniować różne normy, n.p.: N P (a) norma L1: kxk1 = i=1 (b) norma L2: kxk2 = s |(xi − yi |, indukuje ona metrykę taksówkową, N P i=1 (xi − yi )2 , indukuje ona metrykę Euklidesa. 2. Przestrzeń L2 sygnałów o ograniczonej energii jest liniową przestrzenią unormowaną z normą: v u ˆ∞ u u kxkL2 = t |x(t)|2 dt. −∞ 3. Przestrzeń funkcji okresowych o okresie T0 jest liniową przestrzenią unormowaną z normą: v u u ˆT0 u1 |x(t)|2 dt kxkL2T = t 0 T0 0 Mówimy, że w przestrzeni sygnałów będącej przestrzenią wektorową ze względu na zwykłe operacje dodawawania wektorów i mnożenia wektorów przez liczbę, określiliśmy iloczyn skalarny, jeżeli zdefiniowaliśmy odwzorowanie, które każdej uporządkowanej parze x, y elementów tej przestrzeni przypisze liczbę (x, y) zespoloną tak, by spełnione były warunki: • < x, y >=< y, x >∗ , ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 30 • < αx + βy, z >= α < x, z > +β < y, z >, • x 6= 0 ⇒< x, x >> 0, • x = 0 ⇒< x, x >= 0. Symbol ” * ” w pierwszym warunku określającym iloczyn skalarny oznacza sprzężenie zespolone. Widzimy, że iloczyn skalarny to funkcjonał respektujący własności algebraiczne przestrzeni, w której działa - jest on funkcją liniową swojego pierwszego argumentu i antyliniową (tzn. liniową + sprzężenie zespolone) - drugiego. Jeżeli w zbiorze sygnałów (przestrzeni liniowej) jest określony iloczyn skalarny, to zbór ten jest również przestrzenią unormowaną z normą określoną jako: kxk = √ < x, x >. Ponadto, jak pokazywaliśmy to wcześniej, taka przestrzeń jest również przestrzenią metryczną w której jest równierz zadana przez iloczyn skalarny: ρ(x, y) = kx − yk = p < x − y | x − y >. Mając określony iloczyń skalarny możemy wprowadzić jeszcze określenie dwóćh struktur matematycznych używanych w analizie sygnałów. I tak, zbiór sygnałów wyposażony w operacje dodawania sygnałów, mnożenia sygnału przez liczbę oraz iloczyn skalarny, unormowany przez normę określoną przez iloczyn skalarny nazywamy przestrzenią unitarną. Jeżeli tak określona przestrzeń unitarna jest zupełna (w metryce określonej przez iloczyn skalarny), to nazywamy ją przestrzenią Hilberta. 2.2.4 Kąt między sygnałami. Bazy ortogonalne i ortonormalne Jedną z własności, którą spełnia każdy iloczyn skalarny jest nierówność Schwartza. Mówi ona że dla dowolnych niezerowych wektorów x, y spełniona jest relacja: | < x, y > | ≤ kxkkyk, czyli wartość bezwzględna iloczynu skalarnego dwóch niezerowych wektorów nie jest większy niż iloczyn ich norm. Oznacza to że wielkość |<x,y>| kxkkyk to liczba rzeczywista mniejsza od 1. To pozwala nam interpretować ją jako kosinus kąta - możemy więc dla dowolnych dwóch sygnałów z przestrzeni unitarnej określić nimi w sposób następujący: ( kąt pomiędzy arccos( |<x,y>| dla x 6= 0 oraz y 6= 0 kxkkyk ≮ (x, y) = 0 dla x = 0 lub y = 0 ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 31 Jeżeli iloczyn skalarny dwóch niezerowych wektorów jest równy zero, to mówimy, że są one ortogonalne (czyli kąt między nimi wynosi π/2, a więc są względem siebie prostopadłe). W pierwszj części rozdziału dyskutowaliśmy problem reprezentacji sygnału i związany z nim problem wyboru sygnałów wzorcowych. Matematycznym odpowiednikiem sygnałów wzorcowych są tzw. wektory bazowe w przestrzeniach unitarnych lub przestrzeniach Hilberta będących zbiorami sygnałów. Aby wyjaśnić czym jest baza w przestrzni liniowej należy najpierw określić pojęcie liniowej niezależności sygnałów. Rozważny zbiór XN = {xi (t), i = 1, 2, ..., N } sygnałów P przestrzeni liniowej V . Każdy sygnał zbudowany według przepisu x(t) = ai xi (t), gdzie ai - liczby (współczynniki kombinacji) nazywamy kombinacją liniową sygnałów xi z XN . Mówimy, że zbiór XN sygnałów jest liniowo niezależny, jeżeli zerowanie się kombinacji jest możliwe tylko wtedy, gdy wszystkie współczynniki kombinacji są zerami. Rzeczywiście, gdyby kombinacja się zerowała mimo tego, że nie wszystkie jej współczynniki były zerami, to by oznaczało, że można wyrazić któryś z wektorów poprzez pozostałe. Jeżeli w przestrzeni V każdy układ liniowo niezależnych sygnałów zawiera maksymalnie N sygnałów, to przestrzeń nazywamy N -wymiarową. Wtedy dowolny układ N liniowo niezależnych sygnałów nazywamy bazą przestrzeni V . Każdy taki układ sygnałów może zostać wybrany jako wzorcowy układ sygnałów. Mimo że bazą przestrzeni liniowej może być każdy maksymalny układ liniowo niezależnych sygnałów, to w praktyce o wiele wygodniej jest używać pewnych specjalnych baz, które oprócz tego, że składają się z sygnałów liniowo niezależnych, to dodatkowo spełniają warunek ortogonalności. Oznacza on, że dla dwóch dowolnych sygnałów z XN każde dwa różne wektory bazowe są do siebie prostopadłe, czyli jeżeli xi oraz xj ∈ XN oraz (i 6= j) ⇒< xi , xj> = 0. Takie bazy nazywamy bazami ortogonalnymi. Jeżeli ponadto normy wszystkich wektorów bazowych są równe 1, to taką bazę nazywamy bazą ortonormalną. Niech X = xi , i = 1, 2, ...N będzie taką bazą. Wtedy, dowolny wektor przestrzeni można zapisać jako rozwinięcie w N N P P bazie X: g = ak xk, h = bk xk . Obliczając iloczyn skalarny tych wektorów dostajemy k=1 k=1 g·h= N X N X i=1 j=1 ai bj ∗ xi · xj = N X i=1 ai b∗i = a · b. (2.1) Wynik ten, to treść twierdzenia Parsevala, które mówi, że iloczyn skalarny dwóch sygnałów jest równy iloczynowi skalarnemu współczynników rezwinięcia ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 32 tych sygnałów w bazie ortonormalnej. Mając dowolny układ N liniowo niezależnych sygnałów możemy uzyskać bazę ortogonalną i ortonormalną N -wymiarowej przestrzeni przy użyciu iteracyjnej procedury Gramma-Schmidta. Przykład: Mamy określone 3 wektory w R3 : przestrzeni 1 1 1 x1 = 1 , x2 = 2 , x3 = 1. 1 1 2 Należy skonstruować na tej podstawie bazę ortonormalną w R3 , której pierwszy wektor jest proporcjonalny do x1 . Aby wykonać to zadanie, to na podstawie zbioru liniowo niezależnych wektorów {x1 , x2 , x3 } konstrujemy zbiór wektorów ortogonalnych {y1 , y2, y3 }, przyjmując dla każdego i, że yi jest równe xi od którego odjęto jego rzuty na wcześniej ustalone wektory yk . Po znalezieniu wszystkich yi znajdujemy końcowy układ wektorów bazy ortonormalnej poprzez unormowanie wektorów yi . 1. Krok pierwszy: przyjmujemu, że y1 = x1 . 2. Krok drugi: przyjmujemy y2 = x2 − a1 y1 ; wartość a1 ustalamy żądając, by znikał iloczyn skalarny y1 · y2 , co prowadzi do równania x2 · y1 = a1 y1 · y1 , −1 którego rozwiązanie to a1 = 43 . To daje y2 = 31 2 . Ponieważ norma −1 y2 nie ma na razie znaczenia (i tak będzie ustalona na końcu), możemy −1 też za y2 przyjąć 2 . −1 3. Krok trzeci: przyjmujemy y3 = x3 − a2 y1 − b2 y2 ; wartości a2 i b2 ustalamy żądając znikania iloczynów skalarnych y1 · y3 oraz y2 · y3 , co prowadzi do równań x3 · y1 = a2 y1 · y1 oraz: x3 · y2 = b2 y2 · y2 . z rozwiązaniami −1 a2 = 43 , b2 = − 61 . To daje y3 = 21 0 . 1 1 −1 4. Dzielimy yi przez ich normy otrzymując: z1 = √13 1, z2 = √16 2 , 1 −1 ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 33 −1 z3 = √12 0 . 1 Kwestia istnienia baz oraz baz ortogonalnych w przestrzeniach skończenie wymiarowych wydaje się dość prosta. Poważniejszy problem to bazy w przestrzeniach nieskończenie wymiarowych. Gdy w przestrzeni sygnałów V mamy nieskończony (przeliczalny) zbiór liniowo niezależnych sygnałów X = {xk , k ∈ K}, (czyli takich, dla których znikanie kombinacji liniowej jej elementów pociąga za sobą znikanie wszystkich współczynników tej kombinacji), to mówimy, że X jest nieskończoną bazą wyróżnioną w tej przestrzeni. Taki nieskończony zbiór X liniowo niezależnych sygnałów należących do przestrzeni Hilberta V sygnałów nazywamy bazą ortogonalną w V , jeżeli sygnały z X są ortogonalne oraz jeżeli w przestrzeni V nie ma żadnego niezerowego sygnału, który nie należy do X i jest ortogonalny do wszystkich elementów z X. Nie każda przestrzeń Hilberta dopuszcza istnienie baz ortogonalnych. Przestrzenie w których to jest możliwe nazywają się ośrodkowymi przestrzeniami Hilberta. 2.3 Uogólniony szereg Fouriera Gdy przestrzeń sygnałów V jest ośrodkową przestrzenią Hilberta z bazą ortonormalną X={xk ∈ K}, to bardzo łatwo możemy wyznaczyć reprezentację dowolnego sygnału x z V za pomocą sygnałów wzorcowych z X. To, że X jest bazą w V oznacza, że dowolny sygnał x z V możemy zapisać jako: X ak xk (2.2) x= k∈K Równość taką należy rozumieć jako równość w sensie normy, co oznacza że X kx − ak xk k = 0 k∈K Szereg 2.2 nazywamy uogólnionym szeregiem Fouriera, a liczby ak współczynnikami Fouriera tego szereregu. Aby je wyznaczyć, korzystamy z faktu, że wektory xk są ortonormalne; mnożąc skalarnie równanie 2.2 przez wektor xn dostajemy: X X x · xn = ak xk · xn = ak δkn = an , (2.3) k∈K k∈K ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 34 gdzie symbol δij to tzw. symbol Kroneckera, równy 1 dla i = j, oraz 0 w pozostałych przypadkach. Ostatnie równanie nazywamy równaniem analizy, zaś równanie (2.2) - równaniem syntezy. Pokażemy teraz kilka przypadków uogólnionych szeregów Fouriera w przestrzeniach skończenie wymiarowych; najbardziej znane przypadki klasycznych trygonometrycznych szeregów Fouriera dla nieskończenie wymiarowych przestrzeni sygnałów zostaną omówione w następnym rozdziale. 2.4 Reprezentacje sygnałów dyskretnych Sygnał cyfrowy to sygnał, który z natury rzeczy składa się ze skończonej ilości próbek, a każda z nich ma skończony zbiór możliwych wartości. Co więcej, bardzo często na potrzeby przetwarzania dane cyfrowe dzielimy na mniejsze bloki opisujące porcje danych które jednocześnie podlegają przetworzeniu. I tak, przy przetwarzaniu obrazów podstawową porcją danych jest blok 8x8 pikseli - dane jednego takiego bloku możemy traktować jako wektor w przestrzeni o rozmiarze N = 64. Uogólniając - sygnał cyfrowy możemy traktować jako wektor w N wymiarowej przestrzeni. Taka przestrzeń ma naturalną bazę ortonormalną ei , i = 1, ..., N, w której i-ty wektor bazowy ei ma na i-tej pozycji jedynkę, poza tym same zera (uogólnienie kanonicznej bazy w przestrzeni R3 ). Oczywiście, nie jest to jedyna baza ortonormalna w N -wymiarowej przestrzeni. Inną skończenie wymiarową bazą ortonormalną w N wymiarach jest dyskretna zespolona baza Fouriera (DFT). Jest to baza, w której wszystkie składowe wszystkich wektorów to liczby zespolone leżące w płaszczyźnie zespolonej na okręgu o promieniu 1. Oznacza to, że n-ta składowa k-tego wektora bazy jest postaci: 1 fk (n) = √ exp(j∆n,k ), N gdzie j to jednostka urojona (j 2 = −1), zaś ∆n,k jest czysto rzeczywistą fazą. Tutaj obydwa indeksy k, n przebiegają przez N różnych wartości; zwyczajowo numeruje się je od 0 do N − 1. Wartości faz powinny być tak dobrane, by zapewnić ortogonalność wektorów bazy. Okazuje się, że dobrym wyborem jest następujący przepis na fazy: 2π kn. N To daje następujący przepis na składowe wektorów bazy: ∆n,k = (2.4) ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 35 1 fk (n) = √ exp(2πjkn). N By sprawdzić, że taka baza jest ortonormalna musimy pokazać, że iloczyn skalarny dwóch różnych wektorów tej bazy jest równy 0. Mamy więc: NP −1 M−1 P 2πj 1 1 m fk ·fn = N1 exp( 2πj mk) exp(− mn) = [exp( 2πj N N N N (k−n)] = N S m=0 m=0 Dla n = k wielkość S w ostatnim wzorze to suma jedynek; dostajemy warunek unormowania wektorów bazowych: kfk k = 1. Dla k 6= n musimy obliczyć S - jest to suma szeregu geometryczny, jej wartość wynosi: S= 1 − qN , 1−q (2.5) k−n gdzie q = exp( 2πj N (k − n)). Dla k 6= n, oraz k, n < N wielkość N nie jest liczbą 2πj całkowitą, więc wielkość q = exp( N (k − n)) jest różne od 1, czyli mianownik wzoru (2.5) jest różny od zera. Namiast w liczniku wyrażenie q N = exp( 2πj N (k − n)N )=exp(2πj(k − n)) =1, co oznacza, że S = 0, a to z kolei - że różne wektory z dyskretnej bazy Fouriera są do siebie prostopadłe. Znajdzmy dyskretną bazę Fouriera dla N = 4. Aby to zrobić należy wyliczyć fazy składowych wektorów poszczególnych według wzoru (2.4). Dla wektora b0 wszystkie fazy są równe 0, dla wektora b1 fazy są równe π2 (0, 1, 2, 3), dla wektora b2 wynoszą one π2 (0, 2, 4, 6), natomiast wektor b3 zadają fazy π 2 (0, 3, 6, 9). Taki wybór faz daje następujący zestaw ortonormalych wektorów bazowych: b0 =[ (1 , 0), (1, 0), (1, 0), (1, 0)]/2 = [1, 1, 1, 1]/2 + j [0, 0, 0, 0]/2 b=[ (1, 0), (0, 1), (-1,0), (0, -1)]/2 = [1, 0, -1, 0]/2 + j [0, 1, 0, -1]/2 b2 =[ (1, 0), (-1,0), ( 1,0), (-1,0)]/2 = [1, -1, 1, -1]/2 + j [0, 0, 0, 0]/2 b3 =[ (1, 0), (0,-1), (-1,0), (0, 1)]/2 = [1, 0, -1, 0]/2 + j [0, -1, 0, 1]/2 Porównując dyskretną bazę Fouriera z bazą kanoniczną {ei }zauważamy, że bazy te zupełnie inaczej opisują dane. Gdyby na przykład nasze dane opisywały próbki dzwięku poprzez podanie natężenia dźwięku w kolejnych chwilach numerowanych od 1 do N, to znaczenie k-tego wektora bazowego ek jest następujące: w chwili k był dzwięk; jegonatężenie można odczytać jako współczynnik mnożący k-ty wektor rozkładu sygnału na składowe w bazie kanonicznej {ek }. Natomiast dyskretna baza Fouriera (i inne bazy ortonormalne, które przedstawimy za chwilę) opisuje te dane dzwiękowe inaczej - rozkłada obserwowane dane dźwiękowe na różne przebiegi, różniące się sposobem zmienności. Patrząc ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 36 na definicje dyskretnej bazy fourierowskiej i na przedstawione przykłady widać, że wektor bazowy b0 opisuje składową stałą w naszym przebiegu; jego amplituda mówi jakie było średnie natężenienie dzwięku w całym przebieg. Natomiast wektory bi opisują coraz większą zmienność - wektory b1, b2, ... odpowiadają częstotliwościom f0 , 2f0 , 3f0 , ... itp., gdzie f0 = f s/N , zaś fS to częstotliwość próbkowania. Gdy rozłożymy dyskretną zespoloną bazę Fouriera na część rzeczywistą i urojoną: 1 bk (n) = √ exp N 2πj kn N 1 2π 2π cos = √ kn + j sin kn N N N (2.6) to zauważymy, że układ wektorów określonych jako cześć urojona odpowiednich wektorów bazy zespolonej nie jest bazą w N - wymiarowej przestrzeni rzeczywistej. Dlatego definicje dyskretnych baz ortonormalnych - kosinusowej i sinusowej nie mogą być określone jako odpowiednio - część rzeczywista i urojona zespolonej bazy Fouriera.Ich definicje mają postać [4]: • baza kosinusowa (DCT): bk (n) = c(k) cos πk(2n + 1) 2N , c(0) = r 1 , c(i) = N r 2 dla k > 0 N (2.7) • baza sinusowa (DST): bk (n) = r 2 sin N +1 π(k + 1)(n + 1) N +1 (2.8) Bazy te są czysto rzeczywiste; podobnie jak dyskretna baza Fouriera kolejne wektory bazowe odpowiadają coraz większym zmiennościom; jednak bazy DCT i DST są wolniej zmienne (o czynnik ~ 2 w porównaniu do bazy DFT). 2.5 Bazy ortogonalne w przestrzeniach sygnałów ciąglych W jednym z poprzednich podrozdziałów pokazaliśmy ogólną strategię związaną z aproksymacją sygnałów, które są ósrodkowymi przestrzeniami Hilberta, czyli ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 37 są przestrzeniami liniowymi z iloczynem skalarnych, są zupełne i posiadają bazę ortonormalną. Pokazaliśmy tam, że każdy sygnał z takiej przestrzeni można zapisać jako sumę ortonormalnych sygnałów wzorcowych - jest to tzw. uogólniony szereg Fouriera, przy czym współczynniki tego rozwinięcia są iloczynami skalarnymi sygnału i odpowiedniego sygnału bazowego. Ten przepis jest wynikiem uogólnienia, możliwego dzięki rozwojowi jaki dokonał się w tej dziedzinie od czasów Jean Baptiste Josepha Fouriera, który jako pierwszy zaproponował, by użyć rodziny funkcji trygonometrycznych do aproksymacji innych funkcji. Zajmiemy się teraz tym szczególnym przypadkiem, który interesował Fouriera. Interesować nas więc będzie zbiór L2T0 sygnałów okresowych o okresie T0 . Ta przestrzeń sygnałów, z iloczynem skalarnym określonym jako: tˆ 0 +T 1 < x, y >= T dtx(t)y(t) (2.9) t0 jest przestrzenią Hilberta. Zacznimy od przypadku, gdy zarówno aproksymowane funkcje jak też funkcje bazowe aproksymacji są rzeczywiste. Niech {fk } będzie rodziną takich funkcji, które spełniają warunek ortogonalności z iloczynem skalarnym (2.9), czyli dla i 6= j spełniają relację: tˆ 0 +T fi (t) fj (t) = 0 t0 Nie będziemy wymagać, by te funkcje były unormowane do kfi k = 1. Stosując ogólną metodę postępiwania postulujemy rozwinięcie: ∞ X x(t) = ck fk (t). (2.10) k=−∞ Mnożąc skalarnie powyższe równanie przez fn (t) dostajemy wyrażenie na współczynniki rozwinięcia: cn = t0´+T x(t)fn (t)dt t0 t0´+T t0 . fn (t)fn (t) (2.11) ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 38 Okazuje się, że taki przepis na aproksymację można uzyskać inaczej - a mianowicie poprzez żądanie, by błąd aproksymacji (2.10) rozumiany jako kwadrat normy różnicy miedzy aproksymowaną funkcją a jej aproksymacją, był minimalny. Błąd ten jest funkcją współczynników rozwinięcia, więc warunkiem optymalności jest znikanie pochodnych funkcji błędu wzgledem współczynników rozwinięcia. Mamy więc wyrażenie na błąd: 1 ε= T tˆ 0 +T " t0 x(t) − ∞ X #2 ck fk (t) k=−∞ dt oraz warunek na jego minimalizację: t +T " #2 ˆ0 ∞ X ∂ 1 ck fk (t) dt = 0 x− ∂cn T k=−∞ t0 tˆ 0 +T " t0 tˆ 0 +T x(t) − ∞ X # ck fk (t) fn (t)dt = 0 k=−∞ x(t)fn (t)dt = ∞ X k=−∞ t0 ck tˆ 0 +T fk (t)fn (t)dt t0 Ponieważ funkcje fk (t)są ortogonalne, to ostatnia całka w powyższym równaniu nie znika tylko dla k = n; tak więc z całej sumy wejdzie tylko człon z k = n. To prowadzi do równania na współczynniki rozwinęcia, którego rozwiązania są identyczne z formułą (2.11). To oznacza, że aproksymacja fourierowska jest optymalna. Gdy przestrzeń sygnałów jest zespolona, to formuła na współczynniki rozwinięcia ulega lekkiej modyfikacji i przymuje postać: cn = t0´+T x(t)fn (t)∗ dt t0 t0´+T fn (t)fn (t)∗ t0 Zbadamy teraz rozwinięcia fourierowskie dla zespolonej i rzeczywistej bazy harmonicznej. ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 2.5.1 39 Zespolona baza harmoniczna Układem zespolonych funkcji okresowych, które można wykorzystać jako bazę w przestrzeni L2T0 jest przeliczalny ciąg funkcji harmonicznych postaci: 2πk t) T Chcemy, by wszystkie funkcje zbudowane jako kombinacje funkcji bazowych były automatycznie okresowe z okresem T . Tak będzie, gdy wszystkie funkcje bazowe będą okresowe z takim właśnie okresem. Takie wymaganie prowadzi do relacji: 2πj g k (t + T ) = exp(k (t + T )) = exp(2kπj)g(t), T z której wnioskujemy, że k może przyjmować tylko wartości całkowite: k = 0, ±1,±2, . . . Łatwo sprawdzić, że funkcje bazowe odpowiadające różnym wartościom k są wzajemnie prostopadłe. Funkcje te są również unormowane w normie określonej przez iloczyn skalarny (2.9). Funkcje bazowe można zapisać na różne sposóby pokazujące ich zależność od pulsacji, częstotliwości oraz okresu. jako: gk (t) = exp(j 2πj kt). T Z tych postaci sygnału odczytujemy wartości pulsacji, czestotliwości i okresu dla różnych funkcji bazowych: ωk = kω0 , fk = kf0 , Tk = Tk0 . Tak więc w bazie harmonicznej sygnał jest sumą składowej stałej (k = 0) oraz kolejnych harmonicznych, których pulsacje (częstotliwości) rosną a okres maleje wraz z numerem harmoniki. Częstotliwość najniższej (pierwszej) harmoniki jest określona przez okres periodyczności T analizowanego sygnału: gk (t) = exp(jkω0 t) = exp(j2πf0 t) = exp( ω0 = 2πf0 = 2π . T0 Współczynniki rozwinięcia w tej bazie mają postać: 1 ck = T0 tˆ 0 +T t0 x(t) exp(−jkω0 t)dt (2.12) ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 2.5.2 40 Rzeczywisty trygonometryczny szereg Fouriera Najbardziej znanym podejściem do aproksymacji funkcji okresowych jest użycie funkcji trygonometrycznych jako funkcji bazowych. Zbiorem sygnałów,jaki rozpatrujemy jest zbiór rzeczywistych funkcji okresowych o okresie T0 z iloczynem skalarnym (2.9). Rzeczywistą bazą ortogonalną w tej przestrzeni jest zbiór funkcji: 1, cos k 2π t, T0 sin k 2π t, T0 k = 1, 2, . . . Używając tej bazy uzyskujemy następujący rozkład rzeczywistych funkcji periodyczych o okresie T0 w szereg funkcji trygonometrycznych: X x(t) = a0 + (ak cos kω0 t + bk sin kω0 t), (2.13) gdzie ω0 = się wzorami: 2π T0 , k jest liczbą naturalną, a współczynniki rozwinięcia wyrażają 1 a0 = T0 2 ak = T0 tˆ 0 +T 2 bk = T0 tˆ 0 +T tˆ 0 +T x(t)dt, (2.14) x(t) cos kω0 tdt, (2.15) x(t) sin kω0 tdt. (2.16) t0 t0 t0 Te same formuły uzyskamy, gdy dokonamy rozwinięcia rzeczywistej funkcji w zespolonej bazie harmonicznej. Wtedy żądane, by zespolony szereg aproksymował funkcję, która w istocie jest rzeczywista daje relacje między różnymi współczynnikami prowadzące do wzorów (2.13- 2.16). Klasyczna metoda aproksymacji zespolonymi funkcjami harmonicznymi lub funkcjami trygonometrycznymi to przykład analizy częstotliwościowej sygnału. W takiej aproksymacji reprezentujemy sygnał - funkcję czasu jako sumę składowych (sygnałów wzorcowych) o ustalonych częstotliwościach. Ma ona zastosowanie wówczas, gdy aproksymowany sygnał jest okresowy. ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 41 Poniżej zostaną omówione dwa przykłady, które ilustrują zastosowanie szeregów Fouriera do aproksymacji sygnałów okresowych. Przykład 1: Nasz sygnał to bipolarna fala trójkątna zadana formułą T T 4A − T t − 2A dla − 2 < t < − 4 4A T T f (t) = T t dla − 4 < t < 4 4A − T t + 2A dla T4 < t < T2 i przedstawiona na rysunku. Należy znaleźć szereg aproksymujący. Używamy bazy trygonometryczej; współczynniki rozwinęcia znajdujemy używając formuł (2.14-2.16), z t0 = −T /2. Przy takim wyborze obszar całkowania w formułach na współczynniki to przedział [−T /2, T /2]. Jest to obszar symetryczny względem zera. Dodatkowo zauważamy, że aproksymowana funkcja jest nieparzysta. Dlatego, gdy obliczamy współczynnik rozwinięcia dla kosinusów oraz wyrazu wolnego, to dostajemy całkę z funkcji nieparzystej po obszarze symetrycznym względem zera, co na mocy symetrii automatycznie daje 0. To jest wynik ogólny, który nie zależy od postaci funkcji, tylko od tego, czy ma ona symetrię względem zmiany znaku. Podobna argumentacja prowadzi do wniosku, że w przypadku, gdy aproksymowana funkcja jest parzysta, to jej rozwinięcie będzie zawierać tylko funkcje parzyste - funkcję stałą i kosinusy. Pozostaje obliczyć współczynniki bk . Korzystając ze wzoru (2.16) i formuły na funkcję, którą rozwijamy dostajemy: bk = 1 T T /2 ˆ 2 f (t) sin(kω0 t)dt = T 0 −T /2 = 2 T T /4 ˆ T /2 ˆ f (t) sin(kω0 t)dt = 2 4At dt + T T 0 T /2 ˆ 4At 2A − T T /4 sin(kω0 t)dt Całkując przez części dostajemy: bk = 2 kπ 16A sin( kπ 2 ) sin ( 4 ) k2 π2 Widać, że dla k parzystych pierwszy z sinusów licznika będzie się zerował, co oznacza że szereg aproksymacyjny zawiera tylko człony z nieparzystymi wartościami k; dla nich pierwszy z sinusów ma wartości ±1. Dla takich wartości k, ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 42 kwadrat drugiego sinusa dla nieparzystych k daje wartość 12 . To pozwala nam napisać poszukiwane rozwinięcie: 8A 1 1 f (t) = 2 sin(ω0 t) − 2 sin(3ω0 t) + 2 sin(5ω0 t) . π 3 5 Przykład 2: Pokaż, że dla sygnału - fali prostokątnej zadanej formułą T T 0 dla − 2 < t < − 4 f (t) = A dla − T4 < t < T4 0 dla T4 < t < T2 • rozwinięcie nie zawiera sinusów • szereg aproksymacyjny ma postać: A 2A f (t) = + 2 π 1 1 cos(ω0 t) − cos(3ω0 t) + cos(5ω0 t) − . . . . 3 5 Poniższe rysunki ilustrują rozwinięcia w szereg omawiane w przykładach i pokazują jak ich jakość zależy od ilości harmonik oraz od klasy funkcji, którą mamy aproksymować. 2.6 Podstawowe operacje na sygnałach Przedstawimy teraz pewne operacje często wykonywane na sygnałach, zarówno w przypadku sygnałów ciągłych jak też dyskretnych. 2.6.1 Splot sygnałów Jedna z najważniejszych spośród wszystkich operacji wykonywanych na sygnałach jest operacja splotu. Operacja ta parze sygnałów x(t), h(t) przypisuje sygnał y(t) określony formułą: y(t) = ˆ∞ −∞ dτ x(τ ) h(t − τ ) = ˆ∞ −∞ dτ h(τ ) x(t − τ ) (2.17) ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 43 1.2 1 1 N=6 0.5 Approx[N](t) Approx[N](t) 0.8 0.6 0.4 N=6 0 -0.5 0.2 0 -1 -0.2 -0.4 -0.2 0 0.2 0.4 -0.4 -0.2 t 0 0.2 0.4 0 t 0.2 0.4 0 0.2 0.4 t 1.2 1 1 N=18 0.5 Approx[N](t) Approx[N](t) 0.8 0.6 0.4 N=18 0 -0.5 0.2 0 -1 -0.2 -0.4 -0.2 0 t 0.2 0.4 -0.4 -0.2 1.2 1 1 N=30 0.5 Approx[N](t) Approx[N](t) 0.8 0.6 0.4 N=30 0 -0.5 0.2 0 -1 -0.2 -0.4 -0.2 0 t 0.2 0.4 -0.4 -0.2 t Rysunek 2.1: Rozwinięcia w szereg Fouriera fali prostokątnej i trójkątnej. ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW 44 W podobny sposób wprowadza się definicję splotu dyskretnego; najważniejsza różnica to zamiana całkowania na dyskretne sumowanie. Tak więc splot dwóch dyskretnych funkcji x(n) oraz h(n) to funkcja y(n) określona wzorem: y(n) = ∞ X k=−∞ x(k) h(n − k) = ∞ X k=−∞ h(n) x(n − k) (2.18) Operacja splotu ma przepisany sobie symbol graficzny ⊗; przy jego pomocy oba wyrażenia na splot możemy zapisać: y = x ⊗ h = h ⊗ x. Znaczenie splotu wypływa z faktu, że operacja ta opisuje mechnizm filtracji sygnału. W trakcie tej operacji jeden z sygnałów (powiedzmy x ) jest traktowany jako sygnał poddawany filtracji, drugi zaś jest sygnałem filtrujących. Funkcja filtrowana jest wzmacniana/osłabiana w sposób zależny od funkcji filtrującej i różny dla różnych składowych częstotliwościowych. W dziedzinie czasu proces filtracji polega na odwróceniu w czasie drugiego z sygnałów, przesunięcie w czasie tak uzyskanego sygnału filtrującego o czas t (w wersji cyfrowej - o n czasów próbkowania ) i scałkowaniu iloczynu sygnału x oraz przetworzonego w sposób opisany powyżej sygnału h. Interpretacja splotu – tu niezbyt jasna i zrozmiała znacznie się upraszcza, gdy opisujemy ten proces w dziedzinie częstotliwości (czyli w bazie, w której funkcje bazowe są funkcjami o ustalonej częstotliwości). W tej bazie odpowiednikiem funkcji x(t), h(t) są ich transformaty Fouriera (widma). Prostota opisu filtracji bierze się z faktu, że widmo transformaty Fouriera splotu jest równe iloczynowi widm. 2.6.2 Korelacja wzajemna, autokorelacja Inną operacją stosowaną powszechnie w przetwarzaniu sygnałów jest wyznaczanie korelacji dwóch sygnałów. Operacja ta ma na celu zbadanie stopnia podobieństwa dwóch różnych przebiegów czasowych w funkcji wielkości przesunięcia czasowego pomiędzy nimi. Wielkość ta jest często stosowana do znalezienia w sygnale czasowym mierzonym przez pewien dłuższy czas krótszych przebiegów o znanych charakterystykach. Dla sygnałów x(t), y(t) należących do klasy sygnałów o ograniczonej energii, funkcja korelacji wzajemnej Rxy (τ ) jest określona jako: ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW Rxy (τ ) = ˆ∞ −∞ dt x(t) y(t − τ )∗ 45 (2.19) Tak więc funkcja korelacji wzajemnej dwóch sygnałów jest określona jako zależność ilocznu skalarnego dwóch sygnałów od przesuninięcia czasowego pomiędzy nimi. Szczególnym przypadkiem jest korelacja pomiędzy sygnałem a jego przesuniętą w czasie kopią. W takim przypadku funkcję korelacyjną nazywamy funkcją korelacji własnej bądź też autokorelacją. Tą funkcję wyznaczamy ze wzoru: Rxx (τ ) = Rx (τ ) = ˆ∞ −∞ dt x(t) x(t − τ )∗ (2.20) Ta funkcja jest zwykle stosowana do poszukiwań zachowań periodycznych, takich jak wykrywanie przebiegów ukrytych w szumie. Typowe zastosowanie to na przyklad wyznaczanie okresu głosek dźwięcznych w analizie mowy. Wersja dyskretna powyższych formuł ma postać: Rxy (k) = ∞ X n=−∞ Rxx (k) = Rx (k) = x(n) y(n − k)∗ ∞ X n=−∞ x(n) x(n − k)∗ (2.21) (2.22) Wzory 2.21, 2.22 zakładają, że dysponujemy nieskończoną ilością próbek sygnałów. W praktyce tak nie jest; ilość danych jakie mamy do swojej dyspozycji jest ograniczona. Jeżeli ilość tych próbek oznaczymy przez przez N i zażądany, by do sumy korelacyjnej weszła co najmniej jedna para próbek, to widać że wielkość przesunięcia k - argument funkcji korelacyjnej może się zmieniać między -(N −1) a (N −1). Dla ustalonego k ilość nakładujących się z przesunięciem k par wynosi N − k. Gdy weźmiemy pod uwagę te ustalenia i będziemy indeksować kolejne elementy sumy od n = 0 do N − |k| − 1, to dostajemy następujące wyrażenia na oszacowanie funkcji korelacyjnej: ROZDZIAŁ 2. PRZESTRZENIE SYGNAŁÓW = Rxy N −1−|k| X x(n)x(n − k)∗ (2.23) X x(n)x(n − k)∗ (2.24) X x(n)x(n − k)∗ (2.25) n=0 Rxy Rxy = 1 N −|k| = 1 N 46 N −1−|k| n=0 N −1−|k| n=0 Powyższe oszacowania (czyli estymaty) korelacji różnią się sposobem, w jaki biorą pod uwagą fakt, że skończona długość próbek wpływa na ilość skorelowanych par - skladników sumowania. Wzór (2.23) nie bierze żadnej poprawki na liczbę składników sumy - korelację wyliczoną z tego wzoru nazywamy korelacją nieunormowaną. Formuły (2.24, 2.25) są unormowane, różnią się jednak właściwościami statystycznymi - wartość oczekiwania wielkości opisanej wzorem (2.25) nie jest równa faktycznej wartości parametru, dlatego ten estymator nazywamy estymatorem obciążonym. Rozdział 3 Transformata Fouriera Głównym przedmiotem zainteresownia niniejszego rozdziału jest analiza częstotliwościowa sygnałów. Polega ona na przejściu do reprezenacji sygnału, w której sygnałami wzorcowymi są sygnały z ustaloną częstotliwością (ustalonym tempem zmian sygnału w czasie bądź przestrzeni). Reprezentacje częstotliwościowe są bardzo użytecznym narzędziem w analizie i przetwarzaniu zarówno dla sygnałów dyskretnych (bazy DFT, DCT, DST) jak i ciągłych (szeregi Fouriera). W tym ostatnim przypadku mamy pewne ograniczenie - szeregi Fouriera możemy stosować tylko do sygnałów periodycznych z ustalonym okresem periodyczności. Teraz poznamy transformatę Fouriera - narzędzie które umożliwia analizę sygnałów aperiodycznych. Ma ona zastosowanie głównie do przetwarzanie sygnałów ciągłych. Sygnały dyskretne są najczęściej wynikiem procesu digitalizacji sygnałów ciągłych. Proces ten polega na próbkowaniu ciągłego sygnału i kwantyzacji wartości próbek. Można zadać tu wiele pytań na temat tego procesu, począwszy od najbardziej fundamentalnego - czy na podstawie próbek sygnału możemy odtworzyć charakterystyki oryginału, jego wartość chwilową? Jak musi być wykonany proces pomiaru, żeby takie odtworzenie było możliwe? Jakie są relacje pomiędzy widmem sygnału ciągłego a widmem jego spróbkowanej wersji? Okazuje się, że w uzyskaniu odpowiedzi na te pytania główną rolę odgrywa transformata Fouriera. 47 ROZDZIAŁ 3. TRANSFORMATA FOURIERA 3.1 48 Definicje i przykłady Niech x(t) - sygnał analogowy, w ogólnym przypadku zespolony. Prostym przekształceniem Fouriera sygnału x(t) nazywamy wielkość określoną całką: ˆ∞ X(jω) = x(t) exp(−jωt)dt. (3.1) −∞ Odwrotne przekszałcenie Fouriera określone jest całką: 1 x(t) = 2π ˆ∞ X(jω) exp(jωt). (3.2) −∞ Wiekość X(jω) nazywamy widmem Fouriera sygnału x(t). Równania (3.1, 3.2) stanowią parę transformacji łączących z sobą sygnał i jego widmo. Równanie (3.1) jest odpowiednikiem równania (2.3) dla uogólnionego szeregu Fouriera - nazywamy je równaniem analizy, natomiast równanie (3.2) odpowiada równaniu(2.2) i nosi nazwę równanie syntezy. Ta analogia do szeregu Fouriera daje interpretację funkcji widma X(jω) - funkcja ta jest gęstością zespolonej amplitudy opisującej wkład pulsacji ω w syntezę sygnału x(t). Fakt, że X(jω) jest transformatą sygnału x(t) będziemy zapisywać jako X(jω) = F [x(t)], zaś to, że zachodzi transformacja odwrotna notujemy jako: x(t) = F −1 [X(jω)]. Inna notacja relacji zachodzącej między sygnałem i jego transformatą to zapis: x(t) ←→ X(jω). Można pokazać, że wzory (3.1, 3.2) są granicą odpowiednich formuł dla szeregów Fouriera; granica ta odpowiada sytuacji, w której okres sygnału T → ∞, pulsacja podstawowa ω0 = 2π/T zmierza do zera, a dyskretny rozkład pulsacji przechodzi w rozkład gładki. Zasadnym jest pytanie o to, jakie warunki konieczne i wystarczające muszą być spełnione, by całki (3.1,3.2) istniały, jednak pełna odpowiedź na to pytanie nie jest prosta. Zazwyczaj jako warunek konieczny podaje się wymaganie bezwzględnej całkowalności, czyli relację: ˆ∞ −∞ |x(t)|dt < ∞. ROZDZIAŁ 3. TRANSFORMATA FOURIERA 49 Niestety, klasa funkcji spełniających ten warunek jest dosyć wąska. Jeżeli obie całki (3.1,3.2) istnieją, to mówimy, że jest określona transformata w sensie zwykłym. Jednak dla wielu sygnałów (n.p. dla sygnału stałego, sygnału skoku jednostkowego) transformata w sensie zwykłym nie istnieje. Dlatego wprowadzono pojęcie transformaty Fouriera w sensie granicznym. Jeżeli jakiś sygnał x(t) nie ma transformaty Fouriera w sensie zwykłym, ale możemy skonstruować ciąg aproksymacyjny sygnałów xα (t) o własnościach: • dla każdego α funkcja xα (t) ma transformatę w sensie zwykłym, • ciąg xα (t) aproksymuje sygnał x(t), czyli dla każdego t mamy lim xα (t) = x(t). α→0 Ponieważ dla każdego α istnieje transformata funkcji xα (t), więc w dziedzinie transformat mamy ciąg Xα (jω). Jeżeli limα→0 xα (t) = x(t) dla każdego t oraz limα→0 Xα (jω) = X(jω) dla każdego ω, to parę x(t)←→ X(jω) nazywamy parą transformat Fouriera w sensie granicznym. Przykład 1: Obliczmy transformatę Fouriera impulsu prostokątnego o szerokości T i amplitudzie A (czyli funkcji AΠ(t/T )). Zauważamy że funkcja, której transformatę mamy obliczyć jest bezwzględnie całkowalna, czyli istnieje jej transformata w sensie zwykłym. Możemy ją wyznaczyć wprost z definicji: t F AΠ T = ˆ∞ −∞ T /2 ˆ t AΠ exp(−jωt)dt = A exp(−jωt) = T −T /2 T T 1 − exp jω = = − A exp −jω jω 2 2 2A ωT ωT = = AT sinc sin ω 2 2 Możemy więc zapisać: Π Przykład 2: ωT t ←→ T sinc T 2 ROZDZIAŁ 3. TRANSFORMATA FOURIERA 50 Wyznaczmy teraz transformatę Fouriera rzeczywistego sygnału eksponencjalnie zanikającego: x(t) = 1(t)exp(−αt). Również ta funkcja jest bezwzględnie całkowalna (dla α > 0), więc możemy obliczyć całkę wprost: ˆ ∞ ˆ ∞ 1 exp(−αt) exp(−jωt)dt = exp(−(α + jω)t)dt = . X(jω) = α + jω 0 0 Ten przykład przekonuje, że na ogół widmo sygnału jest funkcję zaspoloną nawet w sytuacji, gdy sygnał jest rzeczywisty. Każdą liczbę zespoloną możemy zapisać układzie biegunowym jako A exp(jΦ), gdzie A = |X(jω)| - amplituda, zaś Φ - faza. Funkcję przedstawiającą zależność amplitudy od częstotliwości nazywamy widmem amplitudowym, zaś fazy od częstotliwości - widmem fazowym. Dla sygnału eksponecjalnie zanikającego mamy: X(jω) = α − jω 1 = 2 , α + jω α + ω2 co w rezultacie daje 1 , A(ω) = |X| = √ 2 α + ω2 Φ(ω) = arctan ImX(ω) ReX(ω) ω = − arctan( ). α W widmie częstotliwościowym widać, że dominują w nim niskie częstości maksimum widma jest dla ω = 0, następnie widmo maleje z szybością√określoną przez parametr α. Dla ω = α wartość amplitudy spada o czynnik 2 czyli 3 dB w porównaniu do maksimum. Sygnały o podobnej charakterystyce nazywać będziemy sygnałami dolnopasmowymi. Przykład 3: Wyznaczymy teraz transformatę sygnału sgn(t). Dla tego sygnału całka (3.1) nie istnieje - nie jest on transforomalny w sensie zwykłym. Aby wyznaczyć jego transformatę w sensie granicznym bierzemy ciąg aproksymujący postaci: xα (t) = exp(−α|t|)sgn(t). Dla każdego z elementów ciągu aproksymującego możemy wyznaczyć jego transformatę w sensie zwykłym: ROZDZIAŁ 3. TRANSFORMATA FOURIERA Xα (jω) = ˆ∞ exp(−αt)sgn(t) exp(−jωt)dt = −∞ = − ˆ0 −∞ =− 51 exp((α − jω)t)dt + ˆ∞ exp(−(α + jω)t)dt 0 1 −2jω 1 + = 2 α − jω α + jω α + ω2 Transformatą w sensie granicznym funkcji sgn(t) będzie więc granica ciągu transformat Xα (ω) dla α → 0 która jest równa 2j/ω. Możemy więc napisać: sgn(t) ←→ 2 jω W podobny sposób wyznacza się transformaty wyrażeń dystrybucyjnych. 3.2 Podstawowe twierdzenia Transformata Fouriera ma szereg własności, które w dużym stopniu ułatwiają jej wyliczenie. W niniejszym podrozdziale twierdzenia na temat tych własności przedstawimy bez dowodów; będziemy za to starać się pokazać konsekwencje z nich wypływające. Osoby zainteresowane dowodami omawianych twierdzeń mogą je znaleźć w [6, 4]. We wszystkich twierdzeniach zakładamy, że x(t), y(t) to rzeczywiste lub zespolone sygnały, oraz że x(t) ←→ X(jω) oraz y(t) ←→ Y (jω), czyli x i X oraz y i Y to pary transformat Fouriera. Wtedy zachodzą następujące twierdzenia: 1. Liniowość: ax(t) + by(t) ←→ aX(jω) + bY (jω). Uzasadnienie: jest to natychmiastowa konsekwencja liniowości całki 2. Symetria: x(t) ←→ X(jω)=⇒ X(jt)←→ 2π x(−ω) Pokazuje wymienność kształtu sygnału i widma: jeżeli transformata sygnału x(t) jest opisana przez funkcję X(jω), to jeżeli jako sygnał weźmiemy X(jt), to jego widmo jest zadane przez przeskalowaną przez czynnik 2π funkcję x od argumentu odbitego symetrycznie względem zera. Przykład: pokazaliśmy w poprzednim rozdziale, że Π(t/T ) ←→ T sinc(ωT /2). ROZDZIAŁ 3. TRANSFORMATA FOURIERA 52 Na podstawie omawianego twierdzenia możemy bez rachunków wyznaczyć transformatę funkcji sinc(t). Jak to zrobić? Powinniśmy najpierw zrozumieć co oznacza zapis Π(t/T ) ←→ T sinc(ωT /2). Należy go czytać tak: transformata impulsu prostokątnego zależnego od zmiennej t podzielonej przez pewną skalę jest równy iloczynowi tej skali i funkcji sinc od argumentu dualnego względem t pomnożonemu przez połowę tej skali. Teraz zmieniam nazwy zmiennej t na ω (a zmiennej ω na t) , oraz zmieniam nazwę skali; nie nazywam jej dalej T, tylko 2ω0 . Po tych zmianach stwierdzenie: Π(t/T ) ←→ T sinc(ωT /2) jest równoważne zapisowi: Π(ω/(2ω0 ) ←→ 2ω0 sinc(ω0 t). Teraz stosujemy twierdzenie o symetrii i dostajemy: 2ω0 sinc(ω0 t)←→ 2πΠ(−ω/(2ω0) = 2πΠ(ω/(2ω0 ). Wynik ten można też zapisać: 2ω0 sinc(ω0 t) ←→ 2πΠ(ω/2ω0 ). (3.3) Formuła (3.3) jest też charakterystyką sygnału sinc - jest to idealny sygnał dolnopasmowy; zawiera tylko składowe o pulsacjach |ω| < ω0 , wewnątrz tego przedziału gęstość widmowa jest stała. 3. Skalowanie: x(at) ←→ a1 X( ωa ) Przeskalowanie sygnału w czasie powoduje odwrotne przeskalowanie jego widma; przy czym zmiana w widmie to dwa efekty: zwężenie (gdy a < 1) i jednoczesne proporcjonalne zwiększenie gęstości widmowej 4. Przesunięcie w czasie: x(t − t0 ) ←→ exp(−jωt0 )X(jω) 5. Przesunięcie w częstotliwości (modulacja zespolona): exp(±jω0 t)x(t) ←→ X(j(ω ∓ ω0 )) Przemnożenie sygnału x(t) przez exp(−jω0 t) przesuwa jego widmo w pulsacji o ω0 w porównaniu do wyjściowego, niezmodulowanego sygnału 6. Modulacja rzeczywista (a) cos(ω0 t)x(t) ←→ 1 2 (X(ω − ω0 + X(ω + ω0 ) 1 2j (X(ω − ω0 − X(ω + ω0 ) (b) sin(ω0 t)x(t) ←→ Wynika z poprzedniego tw. oraz liniowości. 7. Splot: z(t) = x(t) ⊗ y(t) ←→ Z(jω) = X(jω)Y (jω) Bardzo ważne twierdzenie, zwłaszcza dla opisu dzałania filtrów liniowych oraz próbkowania sygnałów analogowych . ROZDZIAŁ 3. TRANSFORMATA FOURIERA 53 8. Iloczyn sygnałów: z(t) = x(t)y(t) ←→ Z(jω) = X(jω) ⊗ Y (jω) Widmo iloczynu sygnałów jest równe splotowi widm. Łącznie z poprzednim twierdzeniem pokazuje dualność czasu i częstotliwości: iloczyn w jednej dziedzinie daje splot w drugiej. 3.3 Transformaty sygnałów dystrybucyjnych Do analizy procesów próbkowania sygnału potrzebna będzie jeszcze znajomość transformat Fouriera kilku sygnałów dystrybucyjnych, takich jak delta Diraca czy dystrybucja grzebieniowa. Transformaty Fouriera tych obiektów będą transformatami w sensie granicznym. Punktem wyjścia do ich wyznaczenia jest znalezienie transformaty sygnału gaussowskiego. Bezpośrednim rachunkiem można wykazać następującą relację: t2 α2 ω 2 1 √ exp − 2 ←→ exp − (3.4) 2α 2 2πα2 Pokazaliśmy poprzednio, że dystrybucja delta Diraca może być uważana za granicę ciągu impulsów o amplitudzie dążącej do nieskończoności i szerokości zmierzającej do zera przy zachowaniu jednostkowego pola pod impulsem. Impulsem tego rodzaju jest impuls opisany przez lewą stronie relacji (3.4). Możemy więc napisać, że 1 t2 lim √ exp − 2 = δ(t). α→∞ 2α 2πα2 Tak więc transformatą impulsu Diraca jest granica prawej strony relacji (3.4), która dla dowolnego ustalonego ω wynosi 1. To daje następującą relację: δ(t) ←→ 1 (3.5) Ta relacja pokazuje, że widmo impulsu Diraca zawiera składowe o wszystkich częstotliwościach i wszystkie one wnoszą taki sam wkład do amplitudy. Na podstawie twierdzenia o symetrii dostajemy również transformatę Fouriera sygnału stałego: 1 ←→ 2πδ(ω) Łącząc tą relację z twierdzeniem o modulacji zespolonej, dostajemy ejω0 t ←→ 2πδ(ω − ω0 ) (3.6) ROZDZIAŁ 3. TRANSFORMATA FOURIERA 54 Inną dystrybucją ważną zwłaszcza w opisie procesu próbkowania sygnałów ciągłych jest dystrybucja grzebieniowa. Przypomnijmy, że jest ona zdefiniowana jako δT0 (t) = ∞ X k=−∞ δ(t − kT0 ) Ta suma jest wielkością periodyczną o okresie T0 , więc możemy rozłożyć ją w zespolony szereg Fouriera. Łatwo wykazać, że wszystkie współczynniki rozwinięca fourierowskiego są takie same, równe T10 . W konsekwencji mamy δT0 (t) = ∞ 1 X 2π exp(jkω0 t), gdzie ω0 = T0 T0 (3.7) k=−∞ Jak zobaczymy, w opisie procesu próbkowania potrzeba będzie znajomość widma dystrybucji grzebieniowej. Wykorzystując wyprowadzone przed chwilą realcje (3.6,3.7) otrzymujemy: F [δT0 (t)] = ∞ ∞ ∞ X 1 X 1 X δ(ω−kω0 ) F [exp(jkω0 t)] = 2πδ(ω−kω0 ) = ω0 T0 T0 k=−∞ k=−∞ k=−∞ (3.8) Tak więc widmo dystrybucji grzebieniowej o okresie T0 w dziedzinie czasu jest dystrybucją grzebieniową w dziedzinie częstości o okresie ω0 = 2π T0 i amplitudzie ω0 . 3.4 Iloczyn i splot sygnałów Bardzo często rozważamy sygnały, które są iloczynem lub splotem innych sygnałów. Jak pokazały to dwa ostatnie twierdzenia omawiane w rozdziale 3.2, operacje te są wzajemnie komplementarne. Przyjrzyjmy się bliżej sytuacjom, w których one występują. Na początek rozważmy prostą sytuację, w której chcemy dokonać analizy częstotliwościowej sygnału czasowego x(t). W tym celu należy obliczyć całkę (3.1) w pełnym zakresie czasowym. Jest to możliwe, gdy umiemy opisać sygnał zwartą formułą analityczną i wyliczyć całkę. Nie jest to częsta sytuacja; w większości przypadków musimy obciąć obszar całkowania do pewnego skończonego obszaru: −T < t < T . Ale takie obcięcie jest równoważne z obliczeniem w pełnym obszarze całki (3.1) ze zmodyfikowanego sygnału xw (t), który może być ROZDZIAŁ 3. TRANSFORMATA FOURIERA 55 traktowany jako iloczyn sygnału x(t) i pewnej funkcji czasu, która jest równa 0 (lub bardzo szybko zmierza do 0) poza obszarem, w którym sygnał jest nam znany, a mało go zmienia w obszarze, w którym sygnał znamy dobrze. Rolą tej funkcji jest obcięcie sygnału w obszarze, w którym nie jest nam dobrze znany. Każdą taką funkcję nazywać będziemy funkcją okna w(t); jej najprostszą wersją jest impuls prostokątny. Podsumowując - względy praktyczne powodują, że dokonujemy analizy częstotliwościowej nie sygnału x(t), lecz jego obciętej wersji xw (t) = w(t)x(t). Jak wiemy, widmo iloczynu funkcji jest równe splotowi ich widm. Mamy więc: 1 X ⊗W 2π Widać, że od wyboru funkcji okna zależy, jak bardzo widmo idealne, dane przez X(ω), różni się od widma zmierzonego, określonego przez Xw (ω). Zróbmy prosty rachunek dla przypadku sygnału harmonicznego cos(ω0 t). Dla takiego sygnału widmo idealne jest równe: Xw (ω) = X(jω) = π [δ(ω − ω0 ) + δ(ω + ω0 )] Natomiast widmo sygnału okienkowego to splot powyższego wyrażenia z widmem funkcji okna. Wziąwszy pod uwagę, że sygnał X(ω) to suma delt Diraca, dostajemy 1 [W (ω − ω0 ) + W (ω + ω0 )] 2 Widzimy, że zniekształcenie widma spowodowane okienkowaniem będzie tym mniejsze im bliższe delcie Diraca będzie widmo funkcji okna. Tak więc funkcje okna powinny mieć widmo silnie skoncentrowane wokół pulsacji ω = 0 i szybko zanikające ze wzrostem pulsacji. Szerokość maksimum wokół zera (listek główny) określa rozdzielczość częstotliwościową, czyli minimalną odległość w ω, na jaką mogą zbliżyć się do siebie dwie składowe harmoniczne o równych amplitudach, aby jeszcze były rozróżnialne. Gdy odległość w częstotliwości dwóch takich składowych harmonicznych jest rzędu szerokości prążka głównego, to sygnał od nich zlewa się w jeden prążek i przestaje być rozdzielany. Natomiast poziom maksimów bocznych w widmie okna (inaczej listków bocznych) decyduje o tym, czy dwie składowe sygnału o ustalonych częstościach, ale różniące się amplitudami będą rozdzielane. Rozważamy tu sytuację, w której dwie składowe sygnału o ustalonych częstotliwościach, rozdzielone przy równych amplitudach przestają takie być, gdy amplitudę jednej z nich zmniejszymy tak, że wysokość X(jω) = ROZDZIAŁ 3. TRANSFORMATA FOURIERA 56 jej listka głównego jest porównywalna z amplitudą listków bocznych drugiej składowej. Rysunek 3.1 pokazuje jak wygłąda zmiejszanie się możliwości rozdzielenia dwóch bliskich sobie składowych harmonicznych o podobnej amplitudzie w funkcji ich odległości w częstotliwości (rozdzielczość częstotliwościowa - lewy panel rysunku) lub dwóch składowych harmonicznych o ustalonych pozycjach w częstotliwości w funkcji amplitudy jednej z nich; amplituda drugiej składowej się nie zmienia (rozdzielczość ampltudowa - prawy panel rysunku). Ważne w kontekście wyboru rodzaju okna i ustalenia jego szerokości jest pytanie: jak od typu okna i jego szerokości zależą rozdzielczości częstotliwościowa i amplitudowa. Okazuje się, że gdy okno ulega poszerzeniu, to zwiększa się jego rozdzielczość częstotliwościowa. Jest to efekt generyczny, niezależny od typu okna. Aby go wytłumaczyć zauważmy, że zgodnie z twierdzeniem o skalowaniu poszerzeniu sygnału odpowiada zwężenie jego widma, w tym zmniejszenie szerokości listka głównego. Natomiast poszerzenie okna na ogół nie ma wpływu na rozdzielczość amplitudową. Powodem tego jest fakt, że zmiana szerokości okna działa w ten sam sposób na poziom listków bocznych i listka głównego, tak że stosunek ich amplitud jest stały dla danego typu okna. Wartość tego stosunku, a w rezultacie rozdzielczość amplitudowa, zależy jednak od rodzaju okna. Poniższy rysunek podaje relację pomiędzy amplitudami prążków dla dwóch okien prostokątnych o różnych szerokościach 100 W(T, ω) W(2T, ω/2) W( ω ) 10 1 0.1 -2 -1.5 -1 -0.5 0 ω 0.5 1 1.5 2 Oprócz okna prostokątnego, w przetwarzaniu sygnałów stosuje się również okna innych typów, które nie są równe 1 w obszarze okna. Poniższa tabelka zestawia te najczęściej używane. ROZDZIAŁ 3. TRANSFORMATA FOURIERA 80 57 80 ω0 = 0.32 A = 1.0 40 40 X( ω ) 60 X( ω ) 60 20 20 0 0 -20 -20 -4 -2 0 2 4 -4 -2 ω 0 2 4 0 ω 2 4 0 2 4 ω 80 80 ω0 = 0.09 A = 0.4 40 40 X( ω ) 60 X( ω ) 60 20 20 0 0 -20 -20 -4 -2 0 ω 2 4 -4 80 -2 80 ω0 = 0.06 A = 0.1 40 40 X( ω ) 60 X( ω ) 60 20 20 0 0 -20 -20 -4 -2 0 ω 2 4 -4 -2 ω Rysunek 3.1: Możliwości rozdzielcze analizy częstotliwościowej sygnałów. ROZDZIAŁ 3. TRANSFORMATA FOURIERA Typ okna prostokątne trójkątne Hanna Funkcja okna ( 1 dla|t| ≤ T pT (t) = 0 dla|t| > T ( 1 − |t|/T dla|t| ≤ T qT (t) = 0 dla|t| > T 1 2 (1 + cos(πt/T )) pT (t) 58 Widmo okna 2 sinωωT T h sin(ωT /2) ωT /2 i2 π 2 sin(ωT ) ω(π 2 −T 2 ω 2 ) (1.08π 2 −0.16T 2 ω 2 ) sin(ωT ) ω(π 2 −T 2 ω 2 ) Hamminga [0.54 + 0.46(πt/T )] pT (t) W porównaniu do okna prostokątnego, pozostałe funkcje okna mają niższe listki boczne, ale ich listek główny jest znacznie szerszy. Oznacza to, że mają one gorszą rozdzielczość częstotliwościową, za to lepszą rozdzielczość amplitudową. Inną operacją na sygnałach której działanie bardzo się upraszcza, gdy zastosujemy transformatę Fouriera, jest splot sygnałów. Znaczenie tej operacji polega na tym, że z jej pomocą modelujemy działanie liniowych układów niezmiennych w czasie (filtrów liniowych). Zazwyczaj układ taki jest opisany pewną funkcją h(t) jednoznacznie go identyfikującą, uzyskaną jako odpowiedź układu na pobudzenie impulsowe δ(t). Działanie takiego układu na dowolny sygnał jest opisane jako operacja splotu sygnału wejściowego x(t) z funkcją odpowiedzi impulsowej układu h(t) : y(t) = x(t) ⊗ h(t). Jeżeli chcemy, by taka operacja filtracji wykonywała jakieś konkretne zadanie, by w pewien określony sposób modyfikowało własności synału wejściowego, musimy wiedzieć, jak działanie filtra zależy od wyboru funkcji h(t). Najczęściej działanie filtrów ma modyfikować własności częstotliwosciowe filtrowanego sygnału - na przykład filtr ma wytłumić składowe wysokoczęstotliwościowe, nie zmieniać składowych sygnału o pośrednich częstościach oraz wzmocnic sygnału składowe niskoczęstotliwościowe. Niestety w dziedzinie działanie operacji splotu jest dość nieoczywiste, więc dość trudno jest przełożyć te oczekiwania na sposób modyfikacji funkcji h(t). Własność splotu sprawia, że w dziedzinie częstotliwościowej splotowi sygnałów odpowiada iloczyn ich widm: Y (jω) = H(jω)X(jω). Ponadto, w tej dziedzinie dość łatwo jest przełożyć wymagania formułowane dla różnych składowych częsotliwościowych na przepis, jak należy zmodyfikować funkcję H(jω). Na przykład, jeżeli chcemy, by sygnał na wyjściu filtra nie zawierał składowych pomiędzy ω1 a ω2 , to powinniśmy tak ukształtować układ, by funkcja H(jω) = 0 dla ω1 < ω2 . Więcej na temat operacji splotu, filtrowania i wykorzystaniu transformat całkowych można znaleźć w rozdziałach na temat filtrów analogowych i cyfrowych. Rozdział 4 Próbkowanie sygnałów Większość sygnałów cyfrowych, z jakimi spotykamy się w codziennej praktyce, pochodzi ze zdigitalizowanych sygnałów analogowych. Digitalizacja to proces, w którym mierzymy wartości próbek sygnałów i dokonujemy ich kwantyzacji. Próbkowanie polega na pomiarze sygnału tylko w dyskretnym zbiorze równoodległych chwil czasowych; wartości sygnału pomiędzy punktami pomiaru nie są znane. Powstaje pytanie: czy na podstawie tych niepełnych danych jesteśmy w stanie odtworzyć oryginalny sygnał analogowy. Jeżeli tak jest, to jakie warunki muszą być spełnione, by to było możliwe? Odpowiedzi na te pytania są przedmiotem twierdzenia o próbkowaniu sformułowanego i udowodnionego po raz pierwszy w roku 1933 przez rosyjskiego matematyka W. Kotielnikowa [14] i odkrytego niezależnie kilkanaście lat później przez C. Shannona [15]. 4.1 Problem niejednoznaczności postaci sygnału w dziedzinie częstotliwości Pytania o możliwość odtworzenia sygnału z próbek możemy sprowadzić do następującego zagadnienia: mamy szereg czasowy, określający wartości pewnej nieznanej funkcji w ustalonych, równoodległych chwilach. Czy istnieje procedura, która jednoznacznie odtworzy przebieg tej funkcji? Jest rzeczą oczywistą, że tak nie jest; że bez pewnych dodatkowych informacji nie da się tego zrobić. Ilustruje to rysunek 4.1. Sugeruje on też, że możliwe są dwa typy dodatkowych warunków: 59 ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 60 3 2.5 x(t) 2 1.5 1 0.5 0 0 1 2 3 4 5 t Rysunek 4.1: Ilustracja niejednoznaczności odtwarzania przebiegu funkcji • Ograniczenia na zmienność funkcji - im mniej zmienna będzie funkcja, tym łatwiej ustalić właściwe rozwiązanie. Wiemy, że zmienność sygnału jest związana z jego własnościami widmowymi - tak więc ograniczenie na zmienność będzie ograniczeniem na widmo sygnału. • Szybkość próbkowania - jest rzeczą jasną, że im częściej pobieramy próbki, tym większa szansa na właściwą rekonstrukcję. Tutaj należy odnieść częstotliwość próbkowania do zmienności sygnału - intuicyjnie czujemy, że gdy sygnał wykazuje większą zmienność, to musimy częściej próbkować niż wtedy, gdy zmienność jest mniejsza. Aby lepiej zidentyfikować żródło problemów pojawiających się przy rekonstrukcji sygnałów z próbek, przyjrzyjmy się prostemu przypadkowi, w którym analizowany jest sygnał sinusoidalnym o częstotliwości f0 . Załóżmy, że próbkujemy sygnał z częstotliwością fs , tak więc czas pomiędzy poszczególnymi próbkami wyniesie ts = f1s . Gdy zaczynamy próbkowanie w chwili t = 0, to mierzone wartości kolejnych próbek wynoszą x(n) = sin(2πf0 nts ) Znamy chwile kolejnych pomiarów oraz mierzone wartości próbek x(n). Niestety to nie wystarcza, by wyznaczyć częstość f0 . Powodem tego jest fakt, że funkcja sin nie jest różnowartościowa. To że wartości sinusa są sobie równe nie oznacza, że równe są jego argumenty (czyli fazy); wystarcza, że fazy różnią się ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 61 o całkowitą wielokrotność 2π. Tak więc nasz sygnał może być opisany w inny sposób: x(n) = sin(2πf0 nts ) = sin(2πf0 nts + 2πm) (4.1) Załóżmy, że m jest całkowitą wielokrotnością numeru próbki n, m = nk. Wtedy równanie (4.1) możemy zapisać w postaci: x(n) = = sin(2πf0 nts ) = sin(2πf0 nts + 2πnk) = k sin(2π(f0 + )n = sin(2π(f0 + kfs )nts ) ts Ostatnie równanie oznacza, że ciąg x(n) wybrany jako ciąg kolejnych próbek sygnału harmonicznego o częstotliwości f0 reprezentuje równie dobrze przebiegi o innych częstotliwościach. Innymi słowy, gdy próbkujemy sygnał sinusoialny z częstotliwością fs to nie jesteśmy w stanie powiedzieć, czy próbki pochodzą z przebiegu o częstotliwości f0 , czy też z przebiegu o częstotliwości f0 + kfs . Tak więc każdy ciąg próbek pochodzących z przebiegu sinusoidalnego reprezentuje w istocie nieskończenie wiele sinusoid o częstościach f0 + kfs . Omówione niejednoznaczności reprezentacji sygnału okresowego mogą powodować powstanie w trakcie próbkowania zniekształcenia, które nazywa się aliasingiem. Polega ono na błędnym oszacowaniu częstotliwości mierzonego sygnału, tak że próbki sygnału o wysokich częstotliwościach są interpretowane jako próbki o niższych częstotliwościach. W wyniku tych przekłamań wierna rekonstrukcja sygnału ciągłego z jego próbek staje się niemożliwa. Problemów takich nie będzie, jeśli nałożymy na proces próbkowania dodatkowe warunki, które usuną źródła tej niejednoznaczności. Takimi warunkami są na przykład założenia, że widmo mierzonego sygnału jest ograniczone, a częstotliwość próbkowania odpowiednio wysoka. 4.2 Twierdzenie o próbkowaniu Sygnały, w których widmie nie ma składowych o częstotliwościach większych niż pewna ustalona wartość ωm nazywamy sygnałami o ograniczonym paśmie. Możemy teraz sformułować twierdzenie o próbkowaniu. Jeżeli ciągły sygnał x(t) jest sygnałem o ograniczonym paśmie z ograniczeniem ωm , to sygnał taki możemy dokładnie odtworzyć z próbek o częstotliwości ωp ≥ 2ωm . ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 62 Aby zobaczyć mechanizm działania tego twierdzenia, prześledźmy proces próbkowania i następującej po nim rekonstrukcji ciągłego sygnału x(t) o ograniczonym paśmie. Wiemy, że proces równomiernego próbkowania sygnału analogowego możemy matematycznie opisać jako iloczyn tego sygnału i dystrybucji grzebieniowej Diraca, czyli xδ (t) = x(t)δT (t) Przez xδ (t) będziemy rozumieli dyskretny sygnał powstały ze spróbkowania sygnału analogowego. T określa okres próbkowania, częstość próbkowania jest określona przez ωp = 2π T . Ponieważ spróbkowany sygnał jest iloczynem dwóch wielkości, jego widmo będzie splotem widm czynników. W rozdziale 3.3 wyznaczyliśmy transformatę Fouriera dystrybucji grzebieniowej, uzyskując wynik F [δT (t)] = ωp ∞ X k=−∞ δ(ω − kωp ) = ωp δωp (ωp ) Zastosowanie tej formuły pozwala nam wyznaczyć widmo spróbkowanego sygnału. Obliczając wartość splotu dostajemy: Xδ (jω) = ∞ 1 ωp X X(jω) ⊗ ωp δ(ωp ) = X(j(ω − kωp )) 2π 2π (4.2) k=−∞ Uzyskany wynik mówi, że widmo dyskretnego sygnału otrzymanego w trakcie próbkowania sygnału ciągłego jest równe nieskończonej sumie powielonych i przesuniętych widm wyjściowego sygnału ciągłego. Odtworzenie oryginalnego sygnału jest możliwe wtedy, gdy potrafimy odzyskać pełną informację o widmie. Aby to było możliwe, sygnał x(t) musi być sygnałem o ograniczonym widmie. W przeciwnym razie kolejne egzemlarze wyjściowego widma nakładałyby się na siebie, powodując zniekształcenie widma, które uniemożliwia poprawną rekonstrukcję. Ale wymaganie ograniczoności widma nie wystarcza, aby móc zapewnić sobie możliwość rekonstrukcji. Musimy również zapobiec nakładaniu się na siebie kolejnych kopii widma. O tym, czy dojdzie do nakładania, decyduje relacja dwóch parametrów: ωm określającego szerokość oryginalnego widma (∆ = 2ωm ) oraz ωp - częstotliwości próbkowania, która określa wielkość przesunięcia względem siebie kolejnych kopii widma oryginału. Jeżeli przesunięcie jest większe niż szerokość powielanego obszaru: ωp ≥ ∆ = 2ωm (4.3) ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 63 to kolejne kawałki widma pozostają rozdzielone (nie zlewają się) i możemy użyć dowolnego z nich do rekonstrukcji danych oryginalnego sygnału ciągłego. Warunek wyrażony w powyższej nierówności nazywamy warunkiem Nyquista. Aby dokonać rekonstrukcji używamy idealnego filtra dolnoprzepustowego, omówionego w (3.3). Filtrując sygnał xδ (t) tym filtrem o częstości granicznej ωg spełniającej warunek ωm ≤ ωg ≤ ωp − ωm odfiltrowujemy z sygnału spróbkowanego przyczynki od powielonych składowych widma. Oznacza to, że widmo tego tego filtra to impuls prostokątny o szerokości ∆ = 2ωg , (a więc Π(ω/∆)), czyli sam filtr jest opisany odpowiedzią impulsową postaci (3.3): 1 sinc(ωg t). (4.4) π Najniższą możliwą częstością próbkowania, która nie powoduje nakładania się kolejnych kopii widma w trakcie próbkowania i pozwala na odzyskanie pełnej informacji o widmie wyjściowego sygnału ciągłego jest wartość ωp = 2ωm . Dla takiej częstości próbkowania wymagana częstość graniczna filtra wynosi ωg = ωm . By opisać działanie filtra rekonstrukcyjnego w dziedzinie częstotliowości, mnożymy obustonnie równanie (4.2) przez transmitancję filtra otrzymując: " # ∞ X ω 1 ω ωp Xδ (jω)Π( X(j(ω − kωp )) Π( )= ωp )= X(jω). 2ωg 2π 2ωg 2π h(t) = k=−∞ skąd rekonstrukcja sygnału xrec (t) ma postać: 2π −1 ω −1 xrec (t) = F [X(jω)] = F Xδ (jω)Π( ) ωp 2ωg Zamieniając iloczyn widm na splot sygnałów czasowych dostajemy ostatecznie: ! ∞ X π sin(ωm t) xrec (t) = x(kT )δ(t − kT ) ⊗ = (4.5) ωm πt k=−∞ = ∞ X k=−∞ x(kT ) sin(ωm (t − kT ) . ωm (t − kT ) (4.6) Ostatnia formuła przedstawia formułę pokazującą jak obliczyć dokładną wartość rekonstruowanej funkcji na podstawie znajomości jego próbek. Nosi ona ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 64 w literaturze nazwę formuły interpolacyjnej Kotielnikowa-Shannona. To, że ta formuła rzeczywiście aproksymuje sygnał bierze się z fakty, że układ funkcji: 1 fm (t) = √ sinc [ωm (t − kT )] T jest ortonormalną bazą w przestrzeni funkcji o ograniczonym widmie całkowalnych z kwadratem. W tej bazie kolejne elementy są swoimi kopiami przesunętymi względem chwili początkowej t = 0 o czas nT . Wzór (4.5) jest rozwinięciem sygnału x(t) w uogólniony szereg Fouriera dla tej bazy ortonormalnej. Własnością tej bazy jest to, że współczynniki an rozwinięcia dowolnej funkcji o ograniczonym paśmie całkowalnej z kwadratem są próbki sygnału: an = x(nT ). W opisanej powyżej procedurze rekonstrukcji sygnału z próbek zakładaliśmy, że częstość próbkowania minimalna (ωp = 2ωm ), czyli próbkowanie zachodzi z częstotliwością Nyquista. Gdy jest inaczej (czyli gdy ωp > 2ωm ), to wynik (4.5) się stosuje z jedną korektą: ∞ 2ωg X sin(ωg (t − kT ) xrec (t) = x(kT ) , ωp ωg (t − kT ) k=−∞ 2ω która polega na przeskalowaniu próbek przez czynnik ωpg , gdzie ωg jest ograniczeniem widma spełniającym warunek ωm ≤ ωg ≤ ωp − ωm . Rozważany do tej pory sygnał był sygnałem dolnopasmowym. Uzyskane wyniki można łatwo uogólnić na przypadek sygnału pasmowego. Również tutaj podstawowym warunkiem możliwej rekonstrukcji jest nienakładanie się kolejnych poprzesuwanych kopii widma. Gdy ten warunek jest spełniony, to jak w przypadku sygnału dolnopasmowego wycinamy pojedyńczą kopię widma, w razie potrzeby przesuwamy go we właściwy zakres częstotliwości i wykorzystujemy do uzyskania rekonstrukcji. 4.3 Compressed Sampling Twierdzenie o próbkowaniu i wynikające z niego kryterium Nyquista są podstawą klasycznej metody akwizycji danych cyfrowych. Dane takie na ogół pochodzą ze źródeł analogowych a ich akwizycja polega na próbkowaniu i następującej po niej kwantyzacji danych próbek. Kluczowe w tym punkcie pytanie ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 65 dotyczy częstości próbkowania fp która zapewnia wierną rekonstrukcję rejestrowanego sygnału. Jak pokazaliśmy w rozdziale 4.2, dla sygnałów o ograniczonym paśmie ta wymagana częstość jest określona przez naturalny rozmiar problemu (np. szerokość pasma B, czy też - dla obrazów- wymaganą rozdzielczością przestrzenną), mamy więc fp ∼ B. Takie podejście zapewnia powodzenie czyli gwarantuje wierną rekonstrukcję, ale jest kosztowne; wymagana przez nie częstość próbkowania prowadzi do bardzo dużych rozmiarów danych. Wydaje się, że Shannon był pesymistą - jeżeli protokół pomiaru spełnia wymagania twierdzenia o próbkowaniu, to mamy gwarancję wiernej rekonstrukcji sygnału z próbek dla wszystkich danych określonego typu; nawet dla przypadków najgorszej ewentualności, które z punktu widzenia człowieka nie różnią się od szumu i nie niosą żadnych informacji. Zwykle dane, które są dla nas interesujące, są silnie nadmiarowe, co oznacza, że możemy je zarejestrować przy użyciu znacznie mniejszej ilości pomiarów niż wynika to z warunku Nyquista. Dowodem na to jest sukces kompresji danych, który pozwala na znaczną redukcję rozmiarów plików danych. Najbardziej efektywne metody kompresji są metodami z grupy kodowania transformacyjnego ich działanie polega na znalezieniu bazy, w której sygnał jest rzadki, czyli da się opisać przy pomocy małej ilości sygnałów bazowych. Po zidentyfikowaniu tych ważnych składowych możemy pozostałe, mniej ważne składowe zaniedbać albo zakodować z mniejszą dokładnością uzyskując w obu przypadkach redukcję rozmiaru pliku. Przykładami tych metod kompresji są standardy JPEG, który używa bazy funkcji trygonometrycznych czy też JPEG2000 stosujący transformacje falkowe. Tak więc klasyczne podejście do problemu akwizycji i kompresji/kodowania danych przebiega według następującego protokołu: • Mierzymy pełny sygnał z częstością próbkowania daną przez kryterium Nyquista. • Robimy przegląd zmierzonych współrzędnych rozwinięcia, szeregujemy je według wielkości • Odrzucamy składowe o małej amplitudzie. • Kodujemy pozostałe, „duże składowe”. Aby zilustrować tą zasadę postępowania, wykonujemy następującą sekwencję działań: • bierzemy obrazek testowy (w naszym przypadku jest to obrazek lena w rozdzielczośći 512x512 pikseli w odcieniach szarości) ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 66 Rysunek 4.2: Ilustracja rzadkości danych lena512, lewa strona - tylko 6500 falek; prawy - dane kompletne • dokonujemy rozkładu obrazka na falki uzyskując 262144 współczynniki falkowowych • znajdujemy współczynnik rozwinięcia falkowego [7] o maksymalnej wartości bezwzględnej W • ustalamy wartość progową c > 0; • dla wszystkich współczynników rozwinęcia falkowego wi porównujemy wari tość tego współczynnika z wartością maksymalną W; jeżeli | w W | < c, to pomijamy wkład odpowiadającej mu falki kładąc wi = 0; w przciwnym razie wartość wi pozostawiamy bez zmian • dokonujemy rekonstrukcji obrazka poprzez wykonanie odwrotnej transformacji falkowej na tak zmodyfikowanym zbiorze współczynników Postępując w ten sposób zatrzymujemy w rozkładzie tylko falki z największymi wartościami współczynników rozkładu; ilość pozostawionych składowych zależy od wartości wybranego progu c. Poniżej pokazujemy porównanie oryginalnego obrazka (który uwzględnia wszystkie falki) z obrazkiem otrzymanym dla wartości c = 0.0015, co odpowiada pozostawieniu około 6500 falek (około 2.5% ich całkowitej ilości). Opisany powyżej schemat postępowania pokazuje, że klasyczna metoda akwizycji działa - uzyskujemy dane cyfrowe, które dość wiernie reprezentują oryginalny sygnał analogowy i jednocześnie redukują rozmiary potrzebnych danych. Jednak takie podejście ma jeden zasadniczy mankament - wymaga, by w okresie ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 67 pośrednim mierzyć wszystko, jak to nakazuje reguła Nyquista. Dopiero potem możemy zakodować ważne a zaniedbać nieistotne składowe. Można zapytać o sens takiego postępowania - po co robić taką masę pomiarów a za chwilę większość z nich wyrzucić? Czy nie możnaby mierzyć tylko te ważne składowe? Problem polega na tym, że rozpoczynając pomiar nie wiemy które składowe okażą się ważne; o tym przekonujemy się dopiero później, po dokonaniu kompletu pomiarów. Ten mankament nie ma większego znaczenia na przykład dla działania cyfrowego aparatu fotograficznego, gdzie zrobienie zdjęcia polega na pomiarze wartości kilku lub kilkunastu milionów pikseli i natychmiastowym odrzuceniu większości tych danych przez oprogramowanie wbudowane w aparat. Ale koszt tej operacji jest bardzo mały, więc standardowe postępowanie jest zadawalające. Inaczej wygląda sprawa, gdy dokonywanie pomiarów jest kosztowne, jak to się dzieje w przypadku na pomiarów dokonywanych na potrzeby diagnostyki medycznej (tomografia komputerowa, rezonans magnetyczny), pomiarów w podczerwieni, lub promieniach gamma, czy też w przypadku pomiarów rozpraszania neutronów. Wtedy zmniejszenie ilości pomiarów jest bardzo ważne. Powstaje pytanie - czy da sie zdefiniować protokół akwizycji danych, który: • jest nieadaptacyjny, nie zależy od danych; • pozwala uniknąć dużej ilości pomiarów; dokonuje kompresji danych już na poziomie akwizycji; • pozwala zrekonstruować wiernie wyjściowy sygnał; Okazuje się, że odpowiedź na te pytania jest pozytywna; nowe podejście do akwizycji danych cyfrowych jest rozwijane od kilku lat i znane jest pod nazwą Compressed Sensing lub Compressed Sampling [11, 9, 10]; w polskiej nomenklaturze pojawiło się określenie „oszczędne próbkowanie”. Podejście to realizuje protokół akwizycji przedstawiony powyżej i przy spełnieniu warunków, które za chwilę zostaną przedstawione pozwala na wierną rekonstrukcję przy ilości pomiarów znacznie mniejszej, niż wynika to z warunku Nyquista. Konstrukcja protokołu opiera się na dwóch zasadach: 1. rzadkości - która nakłada wymagania na własności danych; 2. niekoherencji - która jest więzem na sposób wykonania pomiaru. Rzadkość oznacza, że dane są nadmiarowe, tak że transfer informacji jest znacznie mniejszy niż wynikałoby to z tego, jaką szerokość pasma zajmuje dane. ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 68 Jeżeli tak jest, to istnieje baza, w której reprezentacja sygnału jest znacznie bardziej zwarta. W tej bazie duża część współczynników rozwinięcia będzie równa zero (dokładnie, lub też będzie na tyle mniejsza od „dużych” współczynników określających ważne składowe, że możemy je zaniedbać bez szkody dla jakości reprezentacji). Przykład takich danych zademonstrowaliśmy powyżej (obrazek lena512) - pokazaliśmy tam, że znakomita większość współczynników rozkładu w bazie falkowej - chociarz niezerowa, to była na tyle mała, że odrzucenie falek im odpowiadającym nie powodowało znaczącej utraty jakości. Ograniczmy naszą dyskusję do przypadku dyskretnego. Nasz sygnał będzie zawsze sygnałem o skończonej długości. Oznaczny naturalny rozmiar tego sygnału przez N . Zwykle liczba N jest duża - np. przy przetwarzaniu obrazów jest ona rzędu liczby piksel, a więc 107 . Jak dyskutowaliśmy to w rozdziale 2 a zwłaszcza w częścach 2.3, 2.4 oraz 2.1, żeby zaprezentować sygnał f (t), należy wybrać sygnały wzorcowe ψi (t) (bazę w przestrzeni sygnałów) i określić współczynniki xi tego rozwinięcia. Wtedy możemy napisać: f (t) = N X xi ψi (t) i=1 W dawolnie wybranej bazie sygnał rzadki nie różni się specjalnie od zwykłego sygnału, który tej cechy nie posiada. Natomiast, inaczej wygląda sprawa gdy jesteśmy w bazie, w której nasz sygnał jest jest rzadki. - w takiej bazie będzie miał o tylko K (gdzie K ≪ N ) niezerowych składowych. O takim sygnale mówimy, że jest on K-rzadki. Odwołując się do obrazu Lena - sygnał ma rozmiar N = 5122 , po przejsciu do bazy falek można odrzucić bez większej szkody dla jakości większość z nich - wystarczyło zachować tylko ok. 6500 współczynników. Oznacza to, że w tej bazie reprezentacja wektora rzadkiego będzie dla większości swoich współrzędnych miała zera (lub efektywnie - same zera). Można tutaj zadać pytanie - ile trzeba dokonać pomiarów, żeby określić ten sygnał? Podejście compressed sensing mówi, że w takiej sytuacji, w której sygnał ma rozmiar N, ale jest rzadki, tak że jego „rozmiar informacyjny” wynosi K ≪ N można zaproponować protokół pomiaru, w którym wystarczy dokonać M K (czyli M ≪ N ) pomiarów, by z prawdopodobieństwem bliskim pewności zrekonstrować ten sygnał dokładnie. Dokładniejsze oszacowanie pokazują, że wymagana ilość pomiarów powinna spełniać ograniczenie M > C log(N )K, (4.7) gdzie C- liczba rzędu 1. Wracając do naszego przykłądu - podejście próbkowania oszczędnego zapewnia, że gdy efektywna rzadkość danych jest równaK ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 69 = 6500 to wystarczy M ≈ 6500 log(5122 ) ≈ 25000 pomiarów (co stanowi około 10% naturalnego rozmiaru sygnału). Oczywiście - tego efektu by nie było, gdyby sygnał ze swojej natury nie był rzadki - rzadkość sygnału jest warunkiem koniecznym by mówić o oszczędnym próbkowaniu. Wydaje się, że większość (lub przynajmniej znaczna część ważnych dla nas sygnałów jak obrazy naturalne, dźwięk, wykazuje rzadkość. Jakie dodatkowe (poza rzadkością) wymagania muszą być spełnione, by redukcja ilości pomiarów była możliwa? Tutaj trzeba powiedzieć, co będziemy rozumieć przez pomiar. Pomiar polega zawsze na porównaniu wielkości mierzonej ze wzorcem. Tak więc określamy wzorce sygnałów (bazę {Ψi }w przestrzeni sygnałów); za pomiar i-tej wielkości będziemy uważali iloczyn skalarny sygnału z i-tym wzorcem: lub w zapisie macierzowym: yi = ψi · x, yi = ψiT x, gdzie x wektor reprezentujący sygnał, ψi - ity wzorzec (wektor bazy). Kiedy wykonujemy M takich pomiarów, to możemy zestawić je w wektor pomiaru y. Cały proces pomiaru odpowiada równaniu liniowemu: y = Ax, (4.8) gdzie y - znany (uzyskany jako wynik pomiarów) wektor pomiaru o rozmiarze M × 1, A - znana (zależna od wybory sygnałów wzorcowych) macierz pomiarów o wymiarze M × N, x - nieznany (poszukiwany) wektor sygnału o wymiarze N × 1. Interesujące dla nas są przypadki silnego podpróbkowania (M ≪ N ). Teraz pytanie o możliwość jednoznacznej rekonstrukcji sygnału z pomiarów sprowadza się do odpowiedzi na pytanie o możliwość jednoznacznego rozwiązania równania (4.8). Na pierwszy rzut oka to wydaje się niemożliwe mamy układ M równań z N niewiadomymi (M ≪ N ) - czyli układ jest silnie niedookreślony. Tak jest w przypadku ogólnym, gdy nic nie wiemy o sygnale wtedy ilość równań musi być co najmniej równa ilości niewiadomych. Ale gdy sygnał jest K-rzadki, to tak naprawdę ilość danych określających rozwiązanie będzie mniejsza. To sprawia, że gdy ilość pomiarów M spełnia warunek (4.7), to może być to wystarczająca ilość warunków do tego, by rozwiązać układ (4.8). Warunkiem na to jest właściwy wybór macierzy pomiaru (co się przekłada na wybór sygnałów wzorcowych, czyli bazy używanej do dokonywania pomiarów). Zobaczmy to na prostym przykładzie rozważmy sygnał, którego naturalny rozmiar wynosi 100. Załóżmy, że wiemy, że sygnał ten jest rzadki z K = 2, bo ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 70 wiemy, że w pewnej bazie {ψi, , i = 1, . . . 100}, ma on tylko 2 niezerowe składowe odpowiadające pierwszemu i piątemu wzorcowi, np. . x = 2ψ1 + 3ψ5 Teraz, by określić pomiar musimy wybrać wzorce sygnałów pomiarowych φi , i = 1...100. Oczywiście, możemy i tutaj jako wzorce wybrać wektory bazy, w których nasz sygnał jest rzadki. Jeżli wykonamy pełnego pomiaru, to sygnał odzyskamy, bo widzimy, że dokonując pomiaru w bazie {ψ} dla sygnału ogólnej 100 P postaci: ak ψk mierząc dla dowolnego i mamy: k=1 yi = ψiT x = 100 P ψi ak ψk = ai ; lub macierzowo y = I x. k=1 Tak więc przy takim wyborze baz macierz pomiaru, to macierz jednostkowa. Jakie to ma kosekwencje ? Najważniejsza z nich, to ta, że nie będziemy mogli w tym wypadku dokonać redukcji ilości pomiarów. Powodem tego jest to, ze ta macierz wiąże wynik pojedyńczego pomiaru yi tylko z jedną współrzędną sygnału ai . Gdybyśmy w naszej zredukowanej macierzy pomiarów nie uwzględnili składowych pierwszej i piątej bazy, to w wektorze pomiarowym y nie będzie żadnej zależności od składowych a1 ,a5 , a więc nie będzie można takiego sygnału zrekonstrować. Powodem tego jest korelacja między bazą {ψi } w której mamy rzadki sygnał (baza w której sygnał rejestrujemy) a bazą {φk }używaną do pomiarów tutaj te bazy są po prostu identyczne. Dyskusja powyżej mówi, że: 1. By móc zredukować ilości pomiarów powinniśmy do rejestracji i reprezenacji sygnałów używać różnych baz, 2. Bazy te powinny mieć jak najmniejszą korealcję; sygnały bazy {ψ} powinny mieć w bazie {φ} możliwie „gęstą” reprezentację. To będzie znaczyło, że pomiar pojedyńczej składowej jest powiązany z wartościami dużej ilości składowych rozwinięcia syganału w bazie {φ}. Wielkością która w sposób ilościowy mierzy taką korelację jest tzw. koherencja baz. Gdy mamy dwie takie ortonormalne bazy {Ψj }, {φk } w N-wymiarowej przestrzeni sygnałów, to ich koherencją nazywamy: µ(ψ, ψ) = √ N max |φj · ψk |. 1≤j,k≤N (4.9) Tak więc µ(ψ, φ) określa maksymalną korelację pomiędzy dowolnymi elemenp tami obu tych baz. Można dość łatwo pokazać, że µ(ψ, φ) ∈ [1, N ]. Jest to ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 71 ważna wielkość, bo określa ona niezbędną ilość pomiarów potrzebnych do wiernej rekonstrukcji sygnałów z niepełnej ilości pomiarów - jedno z podstawowych twierdzeń Compressed Sensing mówi, że gdy mamy sygnał, który jest S-rzadki w bazie {ψ} i dokonamy na nim m losowych (czyli takich, w których losujemy numery kolejnych sygnałów wzorcowych z bazy {φ} z rozkładu jednorodnego) pomiarów, to o ile jest spełniony warunek m ≥ C µ2 (ψ, φ) S log(N ), (4.10) gdzie C to pewna dodatnia wielkość, to rekonstrukcja w oparciu o te pomiary jest dokładna z prawdopodobieństwem bardzo bliskim jedynki. Własności baz przenoszą się na własności macierzy pomiaru. Rekonstrukcja sygnału rzadkiego będzie możliwa, co więcej będzie stabilna względem małych zaburzeń w procesie pomiaru, gdy macierz pomiaru spełnia tzw. Restricted Isometry Property (RIP). Mówimy, ze macierz A spełnia RIP rzędu S, gdy dla wszystkich S-rzadkich sygnałów działanie tej macierzy jest w bliskie działaniu macierzy ortogonalnej. Oznacza to, dla każdej liczby człkowitej S=1, 2, , ... istnieją stałe dodatnie δS które zapewniają, że w działaniu na wektory S-rzadkie macierz pomiaru nie zmienia bardzo ich długości, tak że prawdziwa jest relacja: (1 − δS )kxk2l2 ≤ kAxk2l2 ≤ (1 + δS )kxk2l2 ze stałą δS niezbyt bliską wartości 1. Klasyczny przykladem pary baz o minimalnej koherencji, która daje macierz pomiaru spełniającą warunek RIP jest następująca para baz: • φ to baza położeń (funkcje bazowe toφk = δ(t − k)), ψ to baza Fourierowska, ψn (t) = √1N exp(2πint/N ) Macierze o takich własnościach można próbować konstruować dla każdego przypadku oddzielnie; jednak okazuje się, że najprostszy sposób ich uzyskania polega na wzięciu macierzy losowych. Możliwa konstrukcja takiej pary baz to: 1. Za {Ψ} bierzemy dowolną ustaloną bazę 2. Za {Φ}bierzemy bazę wylosowaną w następujący sposób: (a) losujemy N wektorów N -elementowych z rozkładem jednostkowym na sferze jednostkowej, (b) dokonujemy ortogonalizacji tych wektorów metodą Gramma-Schmidta. ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 72 Określenie schematu Compressed Sensing polega na zaprojektowaniu dwóch elementów: • stabilnej macierzy pomiaru • algorytmu rekonstrukcji Pierwszy element mamy załatwiony - wiemy, że zawsze możemy w charakterze macierzy pomiaru wziąć odpowiednią macierz losową. Pozostaje jeszcze kwestia schematu rekonstrukcji. Tutaj punktem startu może być równanie (4.8), na które możemy patrzeć jak na sformułowanie problemu matematycznego, który mamy rozwiązać żeby uzyskać rekonstrukcję. Wiemy, że dla sytuacji nas interesujących, problem jest niedookreślony i nie ma jednoznacznego rozwiązania. By to było możliwe, musimy do tego równania dołączyć dodatkowy warunek, który z wielu możliwych rozwiązań wybierze to właściwe. Takim warunkiem jest wymaganie, by rozwiązanie było rzadkie. Należy więc postawić problem następująco: Spośród wszystkich rozwiązań równania (4.8) jako rozwiązanie weź to, które jest najbardziej rzadkie - ma najwięcej składowych zerowych. Często odwzorowanie, które wektorowi x przyporządkowuje ilość jego niezerowych składowych nazywamy normą zerową tego wektora kxko mimo, że nie spełnia ono wszystkich aksjomatów wymaganych dla normy. W takim języku, problem rekonstrukcji sygnału z niekompletnych próbek sprowadza się do następującego problemu optymalizacyjnego: Mając daną macierz pomiarów A oraz wektor pomiarów y szukamy rozwiązania x, które jest określone jako: x = arg min kx′ k0 takich, że x = arg min kx′ k1 takich, że Ax′ = y. Niestety, taki algortm ma dwie poważne wady - jest niestabilny, a co gorsza praktycznie niewykonalny dla dużych rozmiarów danych - wymaga on rozwiązanie problemu kombinatorycznego - wypisania wszystkich możliwych typów rozkładów niezerowych składowych wewnątrz rozwiązania. Taki problem jest problemem N P -zupełnym, a więc nie istnieje algorytm pozwalający znaleźć rozwiązanie w „rozsądnym czasie”. Przełomem w problemie rekonstrukcji było wykazanie, że algorytm analogiczny do (4.3), ale z normą pierwszą (określenie normy l1 , czyli normy pierwszej - patrz rozdział 2.2.3), a więc określony jako: Ax = y. (4.11) potrafi rekonstruować sygnały rzadkie z niepełnych próbek przy wymaganiach na temat rzadkości, ilości pomiarów i niekoherencji. Co więcej, matematyczny ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 73 problem optymalizacyjny, jaki on sobą reprezentuje jest to tzw. wypukły problem optymalizacyjny, o którym wiadomo, że jest możliwa jego redukcja do problemu programowania liniowego znanego jako „basis pursuit” (algorytm pogoni za bazą). Algorytm ten ma złożoność obliczeniową rzędu O(N 3 ). Oprócz tego algorytmu optymalizacyjnego, znane są inne algorytmy, zazwyczaj o algorytmach typu zachłannego, które są znacznie szybsze od „basis pursuit”, ale kosztem gorszej jakości rekonstrukcji. Compressed Sensing to nie tylko teoria; istnieją już nawet urządzenia działające w oparciu o tą zasadę. Poniżej przedstawię budowę i działanie 1-pikselowej kamery zbudowanej na Uniwesytecie Rice w Stanach Zjednoczonych [12]. Schemat działania kamery przedstawia rys.(4.3). Zogniskowany przez wejściową soczewkę obraz jest rzucany na układ Digital Mirror Device (DMD) macierz mikroskopowych lusterek, z których każde może być niezależnie ustawiane. W zależności od sterowania układem DMD każde z tych lusterek może odbijać padające na nie światło lub też nie. Odbite od wszystkich luster DMD światło pada na soczewkę obrazową i zostaje zogniskowane na pojedyńczej fotodiodzie. Pojedyńczy pomiar jest dokonywany następująco: • generator liczb losowych generuje losowy ciąg bitów, który podany na DMD steruje położeniami poszczególnych lusterek tak, by odbijały one padające na nie światło w kierunku fotodiody (gdy sterowanie było 1) lub usuwały to światło z pola widzenia soczewki obrazowej tak, by nie dawało ono wkładu do mierzonej wielkości; • tak więc kolejne ciągi losowych bitów odpowiadają sygnałom wzorcowym φj które określają wiersze macierzy pomiaru. Mierzonym sygnałem jest napięcie na fotodiodzie, które jest iloczynem skalarnym obrazu x (swiatło padające) i właściwego wektora wzorcowego φj ; • światło pochodzące od sumy wszytkich punktów DMD jest zbierane przez soczewkę obrazu, i rejestrowane przez fotodiodę; • tak powstały sygnał podlega digitalizacji; powstały w ten sposób strumień bitowy może być zapisane, transmitowane. Odworzenie zapisanego w ten sposób sygnału wymaga przeprowadzenia rekonstrukcji sygnału. Ten proces pomiaru jest powtarzany M -krotnie, by określić wektor pomiaru y. Wyniki uzyskane przy pomocy tego rodzaju urządzenia pokazuje rys.(4.4). Nie jest on może idealnej jakości, ale pokazuje, że rzeczywiście można zbudować ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW 74 Rysunek 4.3: Kamera jednopikselowa - zasada działania urządzenie działające w oparciu o zasady oszczędnego próbkowania i pozwalający na rekonstrukcję obrazu w sposób, który jednoznacznie identyfikuje jego zawartość na podstawie tylko około 2% całkowitej liczby pomiarów wykonanych w podejsciu standardowym Ostatnie dwa rysunki zostały zaczerpnięte z [12] . ROZDZIAŁ 4. PRÓBKOWANIE SYGNAŁÓW Rysunek 4.4: Pierwszy obraz „sfotografowany” kamerą jednopikselowa 75 Rozdział 5 Dyskretna Transformata Fouriera Podobnie jak dla sygnałów ciągłych, jedną z najważnieszych operacji wykonywanych na sygnale dyskretnym jest analiza częstotliwościowa. Najwygodniejszym narzędziem, które może być wykorzystane w tym celu dla sygnałów dyskretnych jest Dyskretna Transformata Fouriera (DFT). Pełni ona specjalną rolę w świecie sygnałów dyskretnych - analogiczną do tej, która przypada całkowemu przekształceniu Fouriera w dzedzinie ciągłej. W niniejszym rozdziale przedstawimy definicje i podstawowe własności DFT. 5.1 Definicja W dzisiejszych czasach podstawowym typem synału jest sygnał cyfrowy. Sygnał ten, jako wielkość, która jest przechowywana w pamięci i na dysku komputera, musi być skończony. Najczęściej reprezentuje on skończony odcinek czasu T przebiegu sygnału i jest opisany przez skończoną ilość N wartości sygnału. Wartości te to próbki sygnału x(n) mierzone w ustalonych chwilach tn = nTs , n = 0, 1,. . . , N − 1. Zwykle zakłada się, że poza odcinkiem [0,T] wartości próbek są równe 0. Mając te dane, możemy obliczyć współczynniki rozwinęcia X(k) dyskretnej funkcji x(n) w szereg Fouriera zespolonych funkcji harmonicznych. Jeżeli chcemy, by tę operację możny było odwrócić (tak, by na podstawie znajomości współczynników X(k) wyznaczyć wejściowy ciąg próbek x(n)), to ilość współczynników X(k) które wyznaczamy powinna być 76 ROZDZIAŁ 5. DYSKRETNA TRANSFORMATA FOURIERA 77 równa ilości próbek. Współczynniki te powinny próbkować widmo sygnału w częstotliwości, podobnie jak wartości próbek x(n) próbkują sygnał w dziedzinie czasu - kolejne punkty widma powinny być równoodległe w częstotliwości. Tak więc chcemy uzyskać relację pomiędzy wartościami funkcji x(n) - próbek w czasie i X(k) - próbek w spektrum w częstotliwości. Relację taką określa następująca para równań: N −1 X 2π x(n) exp − jkn , N n=0 (5.1) N −1 1 X 2π x(n) = X(k) exp jkn . N N (5.2) X(k) = k=0 Pierwsze z tych równań to definicja tzw. dyskretnej transformaty Fouriera (DFT) nazywanej inaczej dyskretnym przekształceniem Fouriera (DPF), drugie - to operacja odwrotna. Podobnie jak dla ciągłej transformaty Fouriera (patrz rozdział 3.2) to, że ciąg X(k) jest dyskretną transformatą Foriera ciągu próbek x(n) będziemy zapisywać: x(n) ←→ X(k). Dysktretna Transformata Fouriera ma również szereg własności, które - podobnie do przypadku transformaty ciągłej - ułatwiają jej obliczenie i pozwalają na wnioskowanie bez wykonania obliczeń. Najważniejsze z nich to: 1. Liniowość: ax(n) + by(n) ←→ aX(k) + bY (k). Uzasadnienie: jest to natychmiastowa konsekwencja liniowości sumy. 2. Okresowość: gdy traktujemy definicję (5.1) jako formalną definicję, to tak określona funkcja jest periodyczna z okresem N . Powód: relacja exp(−2πjk) = 1 (dla całkowitych k), czego wynika: N −1 X 2π jn(k + N ) = F (k + N ) = x(n) exp N n=0 N −1 X 2π jnk + 2πjn = = x(n) exp N n=0 N −1 X 2π x(n) exp jnk = F (k) = N n=0 ROZDZIAŁ 5. DYSKRETNA TRANSFORMATA FOURIERA 78 3. Symetria: gdy ciąg wejściowy x(n) jest rzeczywisty, to X( N2 + k) = X ∗ ( N2 − k) (a) oznacza to, ze liczba niezależnych składowych określających DFT sygnału rzeczywistego jest o połowę mniejsza niż dla sygnału zespolonego (b) użyteczna informacja zawarta jest w pierwszych N/2 + 1 prążkach o numerach k = 0, ..., N/2 + 1 i częstościach fk = kf0 , gdzie f0 = T1 = 1 N Ts (c) N/2-ty prążek widma leży na osi symetrii: część rzeczywista jest względem niego symetryczna, część urojona - antysymetryczna (d) wystarczy rozważać tylko N/2 + 1 prążków; widmo określone przez N liczb rzeczywistych: 4. Własność splotu: z(k) = x(k) ⊗ y(k) ←→ Z(n) = X(n)Y (n) (a) Splotowi sygnałów dyskretnych w czasie odpowiada iloczyn ich widm DFT. Przez splot sygnałów dyskretnych rozumiem wielkość zadana formułą: z(k) = N −1 X n=0 x(n)y(k − n), gdzie próbki z indeksmi formalnie poza zakresem zmiennosci zastępowane są próbkami o indeksach przesuniętych o wielokrotność N , o indeksach 0, 1, 2, ..., N − 1. Tak więc w czasie analizy DFT zakładamy okresowość sygnałów. Taki splot nazywamy splotem cyklicznym. 5. Własność iloczynu: iloczynowi dwóch sygnałów sygnałów okresowych odpowiada cykliczny splot ich widm. 6. Przesunięcie w czasie: 2π x(n − n0 ) ←→ exp −j( k)n0 X(k) N 7. Parametry DFT: (a) Dziedzina czasu: ROZDZIAŁ 5. DYSKRETNA TRANSFORMATA FOURIERA i. ii. iii. iv. czas próbkowania: Ts rozmiar sygnału: N punktów długość sygnału: (N − 1)Ts okres: T = N Ts (b) Dziedzina częstotliwości: i. ii. iii. iv. minimalny odstęp w częstotliwości: fs= T1 = N1Ts rozmiar spektrum: N składowych częstotliwość dla której mamy maksimum: N2 fs okres w częstotliwości: Fp = N fs = T1s 79 Rozdział 6 Filtry analogowe Zanim przejdziemy do omawiania filtrów cyfrowych warto zapoznać się z układami analogowymi. Temat ten jest istotny z co najmniej dwóch ważnych powodów. Po pierwsze, podczas akwizycji bardzo często mamy do czynienia z sygnałami analogowymi, które są następnie poddawane próbkowaniu i przetwarzane na postać cyfrową. Przed procesem próbkowania sygnał musi mieć ograniczone widmo częstotliwości, aby miało zastosowanie twierdzenie o próbkowaniu. Z reguły to pasmo ogranicza filtr analogowy, który ma zadanie usunąć z sygnału składowe częstotliwościowe będące poza obszarem zainteresowania, zabezpieczając tym samym przed wystąpieniem zjawiska aliasingu. Po drugie istnieją metody projektowania filtrów cyfrowych będących aproksymacją analogowych prototypów. W ten sposób znacznie rozszerza się spektrum możliwych do zaprojektowania filtrów cyfrowych. W tym rozdziale zajmiemy się jedynie układami liniowymi, niezmiennymi w czasie (ang. LTI - linear time-invariant system) 6.1 Transformata Laplace’a Transformata Laplace’a jest wygodnym narzędziem do rozwiązywania równań różniczkowych, które występują w tym rozdziale. Zastosowanie transformaty Laplace’a sprowadza problem rozwiązania równania różniczkowego do problemu rozwiązania pewnego liniowego równania algebraicznego. Transformata Laplace’a jest operatorem przekształcającym sygnał x(t) na pewną funkcję ze- 80 ROZDZIAŁ 6. FILTRY ANALOGOWE 81 spoloną X(s) zgodnie ze wzorem: L[x(t)] = X(s) = ˆ ∞ x(t)e−st dt. −∞ W naszych rozważaniach zmienna t jest zmienną czasową, sygnał x(t) jest przyczynowy, to znaczy x(t) = 0 dla t < 0. Dla takich sygnałów określa się jednostronną transformatę Laplace’a: ˆ ∞ L[x(t)] = X(s) = x(t)e−st dt. (6.1) 0 Argument s jest argumentem zespolonym w postaci s = σ + jω, w którym ω oznacza pulsację. Między transformatą Laplace’a i Fouriera istnieje ścisły związek. Dla s = jω otrzymujemy jednostronną transformatę Fouriera: ˆ ∞ X(jω) = x(t)e−jωt dt. (6.2) 0 Jednostronne przekształcenie Laplace’a posiada wszystkie podstawowe właściwości jednostronnego przekształcenia Fouriera. Przykład. Obliczyć transformatę Laplace’a funkcji: t<0 0, 1 x(t) = /2, t = 0 −t e , t>0 Rozwiązanie: ´∞ −(1+s)t ∞ = L[x(t)] = 0 e−t e−st dt = − e 1+s t=0 limt→∞ e−(1+s)t 1+s = 0 dla Re(s) > −1 1 1+s − limt→∞ e−(1+s)t 1+s Jeśli część rzeczywista zmiennej s jest większa od -1 transformata Laplace’a 1 istnieje i wynosi: L[x(t)] = 1+s . Zadanie. Oblicz transformatę Laplace’a funkcji skoku jednostkowego: t<0 0, 1 x(t) = /2, t = 0 1, t>0 ROZDZIAŁ 6. FILTRY ANALOGOWE 82 Przy danej transformacie powracamy do funkcji czasu stosując zależność −1 x(t) = L 1 X(s) = 2πj ˆ c+j∞ X(s)est ds, (6.3) c−j∞ gdzie c jest liczbą rzeczywistą nieujemną, a całkowanie przebiega wzdłuż prostej równoległej do osi urojonej. Obliczenie tej całki często jest trudne, dlatego korzysta się z tablic transformat oraz własności i twierdzeń przekształcenia Laplace’a, głównie twierdzenia o rozkładzie transformaty na ułamki proste. W tabeli 6.1 przedstawiono transformaty Laplace’a dla kilkunastu przykładowych funkcji. Tablica 6.1: Wybrane sygnały i ich transformaty Laplace’a x(t) X(s) δ(t) 1 1(t) 1 s t · 1(t) 1 s2 tn , n > 0 x(t) 1 −at b−a (e −e a 6= b X(s) −bt ), 1 (s+a)(s+b) 1 (ae−at − be−bt ), − b−a a 6= b s (s+a)(s+b) sin(ωt) ω s2 +ω 2 n! sn+1 cos(ωt) s s2 +ω 2 e−at 1 s+a e−at sin(ωt) ω (s+a)2 +ω 2 te−at 1 (s+a)2 e−at cos(ωt) s+a (s+a)2 +ω 2 tn−1 e−at (n−1)! 1 (s+a)n t sin(ωt) 2ωs (s2 +ω 2 )2 1 s(sT +1) t cos(ωt) s2 −ω 2 (s2 +ω 2 )2 t 1 − e− T Szczególnym przypadkiem sygnału jest opisywana w rozdziale 1.5 dystrybucja delta Diraca δ(t) - sygnał nieskończenie krótki, o nieskończonej amplitudzie i polu pod wykresem równym 1. Przekształcenie Laplace’a jest jednoznaczne, czyli nie ma dwóch istotnie różnych sygnałów, których obrazem w przekształceniu Laplace’a jest ta sama funkcja. ROZDZIAŁ 6. FILTRY ANALOGOWE 6.2 83 Opis liniowych układów analogowych Z liniowym układem analogowym mamy do czynienia, gdy spełnia on zasadę superpozycji, czyli wypadkowa odpowiedź układu liniowego na sumę wymuszeń równa jest sumie odpowiedzi na poszczególne wymuszenia: x1 (t) → y1 (t) i x2 (t) → y2 (t) to ax1 (t) + bx2 (t) → ay1 (t) + by2 (t), (6.4) gdzie x(t) jest sygnałem wejściowym, y(t) sygnałem wyjściowym, a i b dowolnymi stałymi. Układy, o których tu mowa, przetwarzają sygnały wejściowe x(t) na sygnały wyjściowe y(t) z wykorzystaniem swojej odpowiedzi impulsowej h(t): ˆ ∞ x(t) → y(t) = h(τ )x(t − τ )dτ, (6.5) −∞ czyli sygnał wyjściowy jest równy splotowi sygnału wejściowego i funkcji odpowiedzi impulsowej, co zapisujemy jako: y(t) = h(t) ⊗ x(t). (6.6) Odpowiedzią impulsową h(t) układu nazywamy jego odpowiedź na impuls Diraca, czyli sygnał δ(t): ˆ ∞ δ(t) → y(t) = h(τ )δ(t − τ )dτ = h(t). (6.7) −∞ Z właściwości przekształcenia Fouriera dotyczącej splotu sygnałów (rozdział 3.4) dowiedzieliśmy się, że splotowi dwóch sygnałów w dziedzinie czasu odpowiada iloczyn ich transformat Fouriera w dziedzinie częstotliwości, czyli widm. W przypadku naszego układu przetwarzającego sygnał możemy więc zapisać: ˆ ∞ h(τ )x(t − τ )dτ ⇐⇒ Y (jω) = X(jω)H(jω). (6.8) y(t) = −∞ Z tego wzoru już łatwo zauważyć, że za pomocą H(jω) można dokonać modyfikacji widma sygnału X(jω), czyli filtracji sygnału wejściowego. Dla tych pulsacji, które chcemy wytłumić wartość H(jω) powinna być równa 0. Dokonując odwrotnej transformaty Fouriera otrzymamy odpowiedź impulsową h(t), która jest potrzebna w procesie filtracji. ROZDZIAŁ 6. FILTRY ANALOGOWE 84 Każdy układ liniowy, w tym filtry, możemy opisać równaniem różniczkowym: N X n=0 an M X dn y(t) dm x(t) = bm . n dt dtm m=0 (6.9) Korzystając z właściwości pochodnej transformacji Fouriera zastosowanej do obu stron powyższego równania otrzymujemy: N X n=0 an (jω)n Y (jω) = M X bm (jω)m X(jω), (6.10) m=0 skąd można wyliczyć transmitancję widmową: H(jω) = = bM (jω)M + bM−1 (jω)M−1 + · · · b1 (jω)1 + b0 Y (jω) = X(jω) aN (jω)N + aN −1 (jω)N −1 + · · · a1 (jω)1 + a0 PM m m=0 bm (jω) . (6.11) PN n n=0 an (jω) W liczniku i mianowniku powyższego równania widzimy wielomiany zmiennej zespolonej (jω) o współczynnikach an i bm . Wielomiany można zapisać w postaci iloczynowej: H(jω) = = Y (jω) bM (jω − z1 )(jω − z2 ) · · · (jω − zM ) = X(jω) aN (jω − p1 )(jω − p2 ) · · · (jω − pN ) QM bM m=1 (jω − zm ) , QN aN n=1 (jω − pn ) (6.12) gdzie z1 . . . zm to (zespolone) miejsca zerowe - zera transmitancji, a1 . . . an to (zespolone) bieguny - bieguny transmitancji. 6.3 Transmitancja Laplace’a Dzięki rachunkowi operatorowemu obliczenie odpowiedzi układu na zadany sygnał wejściowy jest znacznie prostsze niż obliczenia w dziedzinie czasu. Oczywiście nie zawsze znalezienie odpowiedniej transformaty musi być proste, jednak korzystanie z tabeli 6.1 umożliwia odpowiednie dopasowanie funkcji do już wcześniej wyznaczonych transformat. ROZDZIAŁ 6. FILTRY ANALOGOWE 85 Układy liniowe, niezmienne w czasie, często opisuje się z wykorzystaniem pojęcia transmitancji. Dokonując transformaty Laplace’a równania 6.9 (korzystamy z właściwości pochodnej transformaty Laplace’a), z założeniem przyczynowości sygnałów x(t) i y(t) i zerowymi warunkami początkowymi, otrzymujemy wzór na transmitancję Laplace’a układu H(s): QM bM m=1 (s − zm ) Y (s) = . (6.13) H(s) = QN X(s) aN n=1 (s − pn ) Zmienna s = σ + jω jest zmienną zespoloną, jednak w celu uzyskania interpretacji częstotliwościowej H(s) należy przyjąć część rzeczywistą σ = 0. W ten sposób transmitancja H(s) sprowadza się do transformaty Fouriera H(jω). W pasywnych filtrach analogowych wykorzystuje się trzy podstawowe elementy: rezystory (R), cewki (L), i kondensatory (C). Przypomnijmy sobie informacje z elektrotechniki lub podstaw elektroniki i wypiszmy prawa Ohma dla tych elementów dotyczące wartości chwilowych, wartości skutecznych zespolonych i w postaci transformaty Laplace’a. Tablica 6.2: Prawo Ohma wartości chwilowych, wartości skutecznych zespolonych i w postaci transformaty Laplace’a dla liniowych elementów biernych. Element wartości chwilowe R L C 1 C uR = Ri di uL = L dt ´ t uc = 0 idt + uc (0) Prawo Ohma wartości transformata Laplace’a skuteczne zespolone U R = RI UR (s) = RI(s) U L = jωLI UL (s) = sLI(s) − Li(0) 1 1 U c = jωC I UC (s) = sC I(s) − Ucs(0) Pokażmy teraz, w jaki sposób można obliczyć transmitancję laplasowską i odpowiedź impulsową prostego układu filtru dolnoprzepustowego RC przedstawionego na rysunku 6.1. Transmitancja wiąże wartość wyjściową napięcia z wejściową w następujący sposób: Y (s) = H(s)Y (s) (6.14) więc H(s) = Y (s) X(s) (6.15) ROZDZIAŁ 6. FILTRY ANALOGOWE 86 Rysunek 6.1: Filtr RC Zgodnie z drugim prawem Kirchhoffa w zaznaczonym oczku suma napięć chwilowych na elementach musi być równa sumie napięć chwilowych źródeł energii, napięcie na kondensatorze UC jest bezpośrednio napięciem wyjściowym Y (s): X(s) = UR (s) + Y (s). Po zastosowaniu prawa Ohma (tablica 6.2) i założeniu, że w chwili początkowej kondensator nie był naładowany (UC (0) = 0) otrzymujemy: 1 1 X(s) = RI(s) + I(s) = R + I(s). sC sC Wyliczamy I(s): I(s) = X(s) 1 . R + sC Z prawa Ohma napięcie na kondensatorze, a jednocześnie wyjściowe jest równe: 1 Y (s) = I(s). sC Po podstawieniu wyliczonego wcześniej I(s): Y (s) = H(s) = Y (s) X(s) = 1 X(s) · / : X(s), 1 sC R + sC 1 1 = . 1 sRC + 1 sC(R + sC ) Jest to transmitancja zespolona układu przedstawionego na rysunku 6.1. Jeśli wymuszeniem będzie skok jednostkowy 1(t) wówczas odpowiedź układu obliczymy w następujący sposób: 1 X(s) = L[1(t)] = , s 1 Y (s) = H(s)X(s) = . s(sRC + 1) ROZDZIAŁ 6. FILTRY ANALOGOWE 87 Korzystając z tablicy transformat 6.1 znajdujemy oryginał funkcji Y(s), który jest odpowiedzią układu w dziedzinie czasu: t y(t) = L−1 [Y (s)] = 1 − e− RC . Jeśli sygnałem wejściowym tego filtru będzie impuls Diraca δ(t), wówczas: X(s) = Y (s) = Y (s) = y(t) = L[δ(t)] = 1 H(s) · 1 1 1 1 = · 1 sRC + 1 RC s + RC t 1 · e− RC . L−1 [Y (s)] = RC Ponieważ pobudzeniem jest impuls Diraca, z zależności 6.7 wynika, że otrzymaliśmy jednocześnie odpowiedź impulsową filtru: h(t) = 1 t · e− RC . RC Zadanie. Wyznaczyć odpowiedź układu górnoprzepustowego filtru RC na skok jednostkowy i impuls Diraca. Pojęcie transmitancji upraszcza rozwiązywanie układów złożonych. Rozpatrzmy połączenie równoległe dwóch układów o transmitancjach h1 (t) i h2 (t), przedstawione na rysunku 6.2a. Sygnał x(t) jest podany jednocześnie na wej- Rysunek 6.2: Transmitancja wypadkowa połączenia równoległego (a) i szeregowego (b) układów. ROZDZIAŁ 6. FILTRY ANALOGOWE 88 ścia obu układów, natomiast sygnałem wyjściowym y(t) jest suma sygnałów przefiltrowanych przez każdy układ. ˆ ∞ ˆ ∞ y(t) = y1 (t) + y2 (t) = x(τ )h1 (t − τ )dτ + x(τ )h2 (t − τ )dτ −∞ −∞ ˆ ∞ = x(τ )[h1 (t − τ ) + h2 (t − τ )]dτ. −∞ Otrzymujemy zatem układ o transmitancji wypadkowej: h(t) = h1 (t) + h2 (t). Korzystając z liniowości przekształcenia Laplace’a możemy więc napisać: H(s) = H1 (s) + H2 (s). Połączenie szeregowe dwóch układów przedstawiono na rysunku 6.2b. Sygnał wejściowy x(t) podany jest na wejście pierwszego układu, którego wyjście jest doprowadzone do wejścia drugiego. Wyjście drugiego układu stanowi wyjście y(t). Jeśli sygnałem wejściowym będzie impuls Diraca x(t) = δ(t), wówczas na wyjściu pierwszego układu otrzymamy sygnał będący splotem δ(t) i h(t): ˆ ∞ y1 (t) = h1 (τ )δ(t − τ )dτ = h1 (t) −∞ Wyjście drugiego układu to splot sygnału y1 (t) i h2 (t), korzystając z powyższego równania ˆ ∞ ˆ ∞ y(t) = h2 (τ )y1 (t − τ )dτ = h2 (τ )h1 (t − τ )dτ −∞ −∞ Ponieważ splot w dziedzinie czasu to iloczyn w dziedzinie s, transmitancja wypadkowa układu szeregowego połączenia jest równa: H(s) = H1 (s)H2 (s). 6.4 Rodzaje i charakterystyka filtrów Filtry analogowe to najczęściej układy modyfikujące w odpowiedni sposób widmo częstotliwościowe sygnałów. Projektowanie sprowadza się zwykle do ukształtowania charakterystyki amplitudowo-częstotliwościowej transmitancji filtru. W zależności od pasma częstotliwości przepuszczanych przez filtr wyróżniamy: ROZDZIAŁ 6. FILTRY ANALOGOWE 89 Rysunek 6.3: Charakterystyki filtrów idealnych - dolnoprzepustowego (a), górnoprzepustowego (b), środkowoprzepustowego (c) i pasmowozaporowego (d) • filtry dolnoprzepustowe • filtru górnoprzepustowe • filtry pasmowoprzepustowe • filtry pasmowozaporowe Na rysunku 6.3 przedstawiono charakterystyki filtrów idealnych, a na rysunku 6.4 oczekiwania projektowe (tzw. gabaryty) filtrów rzeczywistych. Charakterystyka amplitudowo-częstotliwościowa może przybierać różne kształty posiadające sprecyzowane założenia. W tablicy 6.3 zebrano najpopularniejsze rodzaje filtrów. W tablicy 6.3 zestawiono cechy podstawowych rodzajów filtrów analogowych, a przykładowe ich charakterystyki amplitudowe i fazowe w dziedzinie częstotliwości na rysunku 6.5. ROZDZIAŁ 6. FILTRY ANALOGOWE 90 Rysunek 6.4: Gabaryty filtrów rzeczywistych - dolnoprzepustowego (a), górnoprzepustowego (b), środkowoprzepustowego (c) i pasmowozaporowego (d) ROZDZIAŁ 6. FILTRY ANALOGOWE Tablica 6.3: Zestawienie rodzajów filtrów. Typ Butterwortha Czebyszewa I Czebyszewa II Bessela Eliptyczny (Cauera) Opis Najbardziej płaska charakterystyka amplitudowo-częstotliwościowa w paśmie przepustowym, słaba stromość zbocza w paśmie przejściowym, charakterystyka fazowa zbliżona do liniowej. Zafalowania charakterystyki amplitudowo-częstotliwościowej w paśmie przepustowym, duża stromość zbocza w paśmie przejściowym, nieliniowa charakterystyka fazowa. Zafalowania charakterystyki amplitudowo-częstotliwościowej występują w paśmie zaporowym. Bez zafalowań charakterystyki amplitudowo-częstotliwościowej, szerokie pasmo przejściowe, najbardziej liniowa charakterystyka fazowa. Zafalowania charakterystyki amplitudowo-częstotliwościowej w paśmie przepustowym i zaporowym, najbardziej strome zbocze w paśmie przejściowym 91 ROZDZIAŁ 6. FILTRY ANALOGOWE 5 0 0 −5 −5 −10 −10 −15 −15 |H(Ω)| |H(Ω)| 5 92 −20 −20 −25 −25 −30 −30 −35 −35 −40 1 10 2 10 f [Hz] −40 1 10 3 10 (a) Butterwortha 5 0 0 −5 −5 −10 −10 −15 −15 |H(Ω)| |H(Ω)| 3 10 (b) Czebyszewa I 5 −20 −20 −25 −25 −30 −30 −35 −40 1 10 2 10 f [Hz] −35 2 10 f [Hz] (c) Czebyszewa II 3 10 −40 1 10 2 10 f [Hz] 3 10 (d) Eliptyczny Rysunek 6.5: Przykładowe charakterystyki amplitudowo-częstotliwościowe i fazowo-częstotliwościowe filtrów opisanych w tablicy 6.3. ROZDZIAŁ 6. FILTRY ANALOGOWE 6.4.1 93 Filtr Butterwortha Filtr Butterwortha w stosunku do innych filtrów ma najbardziej płaski przebieg charakterystyki amplitudowej w paśmie przepustowym, kosztem najszerszego pasma przejściowego i nieliniowej charakterystyki fazowej. Kwadrat charakterystyki amplitudowej dolnoprzepustowego filtru Butterwortha rzędu N wyraża się wzorem: 2 |H(jω)| = H(jω) · H ∗ (jω) = H(jω) · H(−jω) = 1 1 + ( ωω0 )2N (6.16) gdzie N oznacza rząd filtru, ω0 jest pulsacją graniczną przy której wzmocnienie jest mniejsze o 3dB (dwukrotnie) w stosunku do wzmocnienia dla ω = 0. Ponieważ: |H(0)|2 = mamy: 1 1+ 0 ω0 2N = 1, i |H(jω0 )| 2 w mierze decybelowej: 10 · log |H(0)| |H(jω0 )|2 2 |H(0)| ! |H(jω0 )|2 = 2 = 1 2 1 = 1 1+ ω0 ω0 2N = 1 , 2 1 , 2 1 = 10 · log ≈ −3dB. 2 Dla dużych wartości częstotliwości jedynka w mianowniku (6.16) staje się pomijalnie małą wartością i można zauważyć, że: ω 1 2 10 · log |H(jω)| ≈ 10 · log 2N = −20 · N · log ω 0 ω ω0 wzmocnienie maleje liniowo wraz z logarytmem częstotliwości sygnału, z nachyleniem -20dB/dekadę. Na rysunku 6.6 przedstawiona została rodzina charakterystyk amplitudowych oraz fazowych filtru Butterwortha dla kilku wybranych rzędów N. Zauważmy, że im większa wartość N tym charakterystyka jest bliższa idealnej. ROZDZIAŁ 6. FILTRY ANALOGOWE 5 94 5 N= 1 N= 3 N=10 0 N= 1 N= 3 N=10 −5 0 ϕ(jω) [rd] |H(jω)| [dB] −10 −15 −20 −5 −25 −10 −30 −35 −40 1 10 2 −15 1 10 3 10 f [Hz] 10 (a) 2 10 f [Hz] 3 10 (b) Rysunek 6.6: Kwadrat charakterystyki amplitudowo-częstotliwościowej (a) i fazowej (b) filtru Butterwortha rzędu N=1, N=3 i N=10 o częstotliwości granicznej 100Hz. Znormalizowana względem pulsacji granicznej ωo = 1rd/s transmitancja dolnoprzepustowego filtru Butterwortha wyznaczona przez położenie biegunów wyraża się wzorem: QN (−pk ) H(s) = QNk=1 (6.17) k=1 (s − pk ) w którym pk to znormalizowane bieguny transmitancji: pk = ej ( 2 + 2N +(k−1) N ) π π π k = 1, 2, . . . , N (6.18) Na płaszczyźnie Gaussa (płaszczyzna zespolona) wszystkie bieguny leżą po ujemnej stronie osi rzeczywistej, symetrycznie względem niej i układają się na okręgu jednostkowym (o promieniu 1). Położenie biegunów na tej płaszczyźnie przedstawia rysunek 6.7. Widzimy, że dolnoprzepustowy filtr Butterwortha nie posiada zer transmitancji. Stała w liczniku transmitancji 6.17 zapewnia jednostkowe wzmocnienie dla ω = 0; dla podanego wzoru znormalizowanego jest równa jeden. Projektowanie filtrów Butterwortha Parametrami filtru Butterwortha są: trzydecybelowa częstotliwość graniczna ω0 oraz rząd N . Jeśli wymagania projektowe zakładają określone wartości δp , ωp , δs , ωs należy wówczas wyznaczyć parametry ω0 i N . ROZDZIAŁ 6. FILTRY ANALOGOWE 95 Po lo żenie zer i biegunów 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 Im Im Po lo żenie zer i biegunów 1 0 0 −0.2 −0.2 −0.4 −0.4 −0.6 −0.6 −0.8 −0.8 −1 −1 −1 −0.5 0 Re 0.5 1 −1 (a) N parzyste. −0.5 0 Re 0.5 1 (b) N nieparzyste. Rysunek 6.7: Położenie biegunów filtru Butterwortha. Korzystając z 6.16 zapiszmy transmitancję w sposób: 1 H(jω) = q 1 + ( ωω0 )2N (6.19) Następnie szukamy parametrów filtru o najniższym rzędzie, który mieści się w „tunelu” (rysunek 6.4). W granicznym przypadku charakterystyka zawiera punkty o współrzędnych (ωp , 1 − δp ) i (ωs , δs ), z czego możemy ułożyć układ równań: 1 1 − δp = p1+( ωp )2N ω0 (6.20) = p 1ωs 2N δs 1+( ω ) 0 Z powyższego wyznaczamy N i ω0 (obliczenia można znaleźć w [1, 4]): As 10 10 −1 log Ap 10 10 −1 N = 2 · log ωωs p ωs ω0 = 1 2N As 10 10 − 1 (6.21) (6.22) ROZDZIAŁ 6. FILTRY ANALOGOWE 96 Rysunek 6.8: Gabaryty filtru określone przez Ap i As ; przykład dla filtru dolnoprzepustowego. Przez ⌈x⌉ oznaczono najmniejszą liczbę naturalną większą lub równą x, współczynniki Ap = −20 log(1 − δp ), As = −20 log(δs ) określają wzmocnienie filtru w decybelach dla odpowiednich krawędzi projektowych (rys. 6.8). Bieguny transmitancji są rozłożone podobnie jak w 6.17, jedynie promień jest inny, wyznaczony przez nową częstotliwość graniczną ω0 : pk = ω0 ej ( 2 · 2N ·(k−1) N ) π 6.4.2 π π k = 1, 2, . . . , N (6.23) Filtr Czebyszewa I Filtr Czebyszewa charakteryzuje się większą stromością charakterystyki amplitudowoczęstotliwościowej w paśmie przejściowym, posiada jednak zafalowania w paśmie przepustowym. Kwadrat charakterystyki amplitudowej dolnoprzepustowego filtru Czebyszewa wyraża się wzorem: 1 2 |H(jω)| = H(jω) · H ∗ (jω) = H(jω) · H(−jω) = 1 + ε2 · TN2 ω ω0 (6.24) gdzie N jest rzędem filtru, ε określa wielkość zafalowań w paśmie przepustowym, ω0 stanowi krawędź pasma przepuszczania, a TN jest wielomianem Czebyszewa zdefiniowanym w następujący sposób: ω −1 ω cos[N · cos ( )], ω0 ≤ 1 ω ω0 TN = (6.25) cosh[N · cosh−1 ( ω )], ω > 1 ω0 ω0 ω0 ROZDZIAŁ 6. FILTRY ANALOGOWE 97 Z tej definicji wynika, że dla argumentu ω/ω0 mniejszego lub równego jeden (co do wartości bezwzględnej), wielomian przyjmuje wartości z przedziału −1 do 1, a zatem kwadrat charakterystyki amplitudowo-częstotliwościowej oscyluje w granicach 1/(1 + ε2 ) dla częstotliwości −ω0 do ω0 . Dla pozostałych wartości ω wartość wielomianu gwałtownie rośnie do nieskończoności. Współczynniki wielomianu Czebyszewa można obliczyć ze wzoru rekurencyjnego: T0 (ω) = T1 (ω) = 1 ω Tn (ω) = 2 · ω · Tn−1 (ω) − Tn−2 (ω), n>2 Znormalizowana względem pulsacji granicznej ωo = 1rd/s transmitancja dolnoprzepustowego filtru Czebyszewa wyznaczona przez położenie biegunów wyraża się wzorem: QN (−pk ) (6.26) H(s) = H0 QNk=1 k=1 (s − pk ) Współczynnik H0 przybiera jedną z dwóch wartości: ( 1 N nieparzyste H0 = √ 1 N parzyste 1+ε2 (6.27) Bieguny filtru Czebyszewa wylicza się znajdując pierwiastki mianownika z równania 6.24. Rozwiązanie jest bardziej skomplikowane niż w przypadku filtru Butterwortha. Tutaj przedstawimy końcowy wzór na bieguny (znormalizowane): % ! sinh−1 1ε sk 2k − 1 pk = = − sin π · sinh + ω0 2N N % ! sinh−1 1ε 2k − 1 π · cosh , k = 1, 2, . . . , N (6.28) +j cos 2N N Bieguny są rozłożone na elipsie w lewej półpłaszczyźnie zmiennej zespolonej p. Równanie tej elipsy wygląda następująco: sinh Re2 (pk ) + −1 1 2 sinh ( ε ) N Im2 (pk ) =1 sinh−1 ( 1ε ) cosh2 N (6.29) ROZDZIAŁ 6. FILTRY ANALOGOWE 98 W [1] można znaleźć wyprowadzenie powyższych wzorów, natomiast w [4] autor przedstawił w sposób graficzny powiązanie pomiędzy położeniem biegunów filtrów Butterwortha i Czebyszewa. Podobnie jak dolnoprzepustowy filtr Butterwortha, dolnoprzepustowy filtr Czebyszewa nie posiada zer transmitancji. Poziom zafalowań jest wyznaczony przez parametr ε, przy czym we wzorach uwzględniono, że pulsacją graniczną ω0 jest pulsacja, dla której kwadrat charakterystyki amplitudowo-częstotliwościowej maleje do wartości 1/(1 + ε2 ). Projektowanie filtrów Czebyszewa Jeśli w projekcie zadane są gabaryty filtru (δp , ωp , δs , ωs ), należy wyznaczyć parametry filtru: ω0 , ε, N . Najczęściej przyjmuje się pulsację graniczną filtru ωp = ω0 , a zatem dla tej granicznej pulsacji na podstawie 6.24 otrzymamy wartość wzmocnienia: 1 1 r = √1 + ε2 = 1 − δp ω 1 + ε2 · TN2 ωpp (6.30) Jeśli Ap wyrazimy w decybelach otrzymujemy Ap = −20 log(1 − δp ). Po obliczeniu 20 log(·) z obu stron równania i kilku przekształceniach dostajemy: q Ap ε = 10 10 − 1 (6.31) Wymagany rząd filtru możemy wyznaczyć na podstawie 6.24: 1 1 r = r n h io2 = δs ωs 2 −1 ωs 2 1 + ε · T N ωp 1 + ε2 cosh N · cosh ωp (6.32) Dla wzmocnienia w paśmie zaporowym wyrażonego w decybelach As = −20 log(δs ) i podstawieniu ε ze wzoru 6.31 znajdziemy: r Ap As −1 10 10 − 1 / 10 10 − 1 cosh (6.33) N = cosh−1 ωωps ROZDZIAŁ 6. FILTRY ANALOGOWE 6.4.3 99 Filtr Czebyszewa II Filtr Czebyszewa II nie posiada oscylacji w paśmie przepustowym, tylko w paśmie zaporowym. Kwadrat charakterystyki amplitudowo-częstotliwościowej wyraża się wzorem: 1 2 |H(jω)| = (6.34) 1 + γ 2 ·T 21 ω0 ( ) ω N 1 γ=q Ap 10 10 −1 (6.35) Transmitancja dolnoprzepustowego filtru Czebyszewa II jest dana wzorem: H(s) = QN 1 k=1 (s − zk ) H0 Q N , 1 k=1 (s − pk ) N Y zk H0 = pk (6.36) k=1 Zarówno rząd filtru N jak i położenie biegunów pk wyznacza się tak samo jak dla filtru Czebyszewa I, natomiast zera z zależności: π 2k − 1 zk = j · sin + (6.37) 2 2N 6.4.4 Filtr Bessela Podstawową właściwością filtru Bessela jest to, że wprowadza przesunięcie fazowe zależne liniowo od częstotliwości, co skutkuje wnoszeniem stałego opóźnienia, niezależnego od częstotliwości. Dzięki temu jest on najlepszym filtrem do przenoszenia impulsów prostokątnych. Wadą jest natomiast szerokie pasmo przejściowe. Ponieważ jest możliwość zaprojektowania cyfrowego filtru FIR z liniową fazą, posiadającego węższe pasmo przejściowe, filtru Bessela z reguły nie stosuje się jako prototypu do konstrukcji cyfrowego odpowiednika. 6.4.5 Filtr eliptyczny Filtr eliptyczny, zwany też filtrem Cauera, posiada równomierne zafalowania, zarówno w paśmie przepustowym, jak i zaporowym. Zawiera równą liczbę zer i biegunów, a kwadrat jego charakterystyki amplitudowo-częstotliwościowej opisany jest wzorem: ROZDZIAŁ 6. FILTRY ANALOGOWE 2 |H(jω)| = 100 1 1 + ε2 · UN ω ω0 (6.38) gdzie UN (x) jest eliptyczną funkcją Jacobiego rzędu N. Zera leżą na osi urojonej przestrzeni s. Błąd aproksymacji w filtrach eliptycznych jest równy, rozciągnięty na pasmo zaporowe jak i pasmo przepustowe. Dlatego filtry te są najbardziej efektywne z punktu widzenia osiągnięcia parametrów filtru przy najmniejszym możliwym rzędzie. Równoważnie możemy powiedzieć, że dla danego rzędu filtru i dla danego zbioru specyfikacji, filtr eliptyczny ma najwęższe pasmo przejściowe. Rząd filtru potrzebny do potrzymania filtru spełniającego następujące wymagania: tłumienie w paśmie zaporowym δs , zafalowania w paśmie przepustowym δp i stosunek częstotliwości granicznej pasma przepustowego do częstotliwości pasma zaporowego δp /δs szacujący szerokość pasma przejściowego, dany jest wzorem: q ωp ε2 1 − δ2 K ωs K ! N= r 2 %ε ωp K δ K 1 − ωs gdzie K jest całką eliptyczną pierwszego rodzaju, współczynnik δ odnosi się do tłumienia w paśmie zaporowym δs , a parametr ε do zafalowań w paśmie przepustowym. 6.5 6.5.1 Projektowanie filtrów w Matlabie Pierwsza charakterystyka amplitudowo-częstotliwościowa Na początek zaprezentujemy bardzo prosty skrypt Matlaba, którego zadaniem jest wykreślenie charakterystyki amplitudowej, fazowej i rozmieszczenia zer dolnoprzepustowego filtru Butterwortha. %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− % P i er w s za c h a r a k t e r y s t y k a amplitudowo−c z ę s t o t l i w o ś c i o w a % d l a f i l t r u B u tter w o r th a %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− N = 4; % r zą d f i l t r u W0 = 1 ; % pulsacja graniczna kp = 1 :N; % i n d e k s y biegunów ROZDZIAŁ 6. FILTRY ANALOGOWE 101 p = W0 ∗ exp ( j ∗ ( p i /2 + p i / (2 ∗N) + ( kp −1)∗ p i /N ) ) ; % b i eg u n y b = r e a l ( prod(−p ) ) ; % lic zn ik transmitancji a = poly (p ) ; % mianownik t r a n s m i t a n c j i f i gu r e (1) p l o t ( r e a l ( p ) , imag ( p ) , ’ xb ’ , ’ M a r k er S i ze ’ , 1 0 ) ; g r i d on t i t l e ( ’ P o ł o ż e n i e z e r i biegunów ’ ) ; axi s equal ; a x i s ( [ − 1 . 1 1 . 1 −1.1 1 . 1 ] ∗W0) ; p l o t c i r c l e (W0) ; x l a b e l ( ’ Re ’ ) ; y l a b e l ( ’ Im ’ ) f i gu r e (2) w=W0∗ ( 0 . 1 : 0 . 0 1 : 1 0 ) ; % wektor c z ę s t o t l i w o ś c i h = f r e q s (b , a ,w) ; % charakterystyka częstotliwościowa mag = abs ( h ) ; % a m p l i tu d a phase = a n g l e ( h ) ; % faza s u b p l o t ( 2 , 1 , 1 ) , s e m i l o g x (w, 2 0 ∗ l o g 1 0 (mag ) ) t i t l e ( ’ C h a r a k t e r y s t y k a amplitudowa ’ ) ; x l a b e l ( ’ P u l s a c j a [ rad / s ] ’ ) ; y l a b e l ( ’ Amplituda [ dB ] ’ ) g r i d on s u b p l o t ( 2 , 1 , 2 ) , s e m i l o g x (w, unwrap ( phase ) ) t i t l e ( ’ C h a r a k t e r y s t y k a fazowa ’ ) ; x l a b e l ( ’ P u l s a c j a [ rad / s ] ’ ) ; y l a b e l ( ’ Faza [ rad ] ’ ) g r i d on Funkcja plot circle zawarta w pliku plotcircle.m function p l o t c i r c l e ( r ) c i r l c e v e c t o r =0:0.01:2∗ pi ; h o l d on pl ot ( r ∗ s i n ( c i r l c e v e c t o r ) , r ∗ cos ( c i r l c e v e c t o r ) , ’ : ’ ) ; clear cirlcevector hold o f f W skrypcie tym zadaliśmy rząd filtru równy 4 i pulsację graniczną ω0 = 1[rad/s]. Bieguny są liczone zgodnie ze wzorem 6.18. Funkcja poly tworzy reprezentację wielomianu na podstawie podanych pierwiastków (tu - biegunów) w postaci wierszowego wektora współczynników uporządkowanych według malejących potęg zmiennej niezależnej. Funkcja freqs oblicza odpowiedź częstotliwościową filtru analogowego. Jej parametrami są w kolejności: wektor współczynników licznika transmitancji (b), wektor współczynników mianownika transmitancji (a) i wektor częstotliwości (w) określający zakres analizy. Odpowiedź jest wektorem liczb zespolonych, dlatego do narysowania charakterystyki amplitudowej bierzemy moduł wartości, a fazowej - kąt. ROZDZIAŁ 6. FILTRY ANALOGOWE 102 Po lo żenie zer i biegunów Charakterystyka amplitudowa 0 Amplituda [dB] 1 0.8 0.6 0.4 −100 −1 10 0.2 0 −0.2 0 −0.4 −2 Faza [rad] Im −50 −0.6 −0.8 −1 −1 −0.5 0 Re 0.5 (a) Położenie biegunów. 1 10 −4 −6 −8 −1 10 1 0 10 Pulsacja [rad/s] Charakterystyka fazowa 0 10 Pulsacja [rad/s] 1 10 (b) Charakterystyka amplitudowa i fazowa. Rysunek 6.9: Dolnoprzepustowy filtr Butterwortha zasymulowany w Matlabie. W efekcie otrzymujemy wykresy jak na rysunku 6.9. Zwróćmy uwagę na charakterystykę amplitudową. Oś częstotliwości jest logarytmiczna, natomiast na osi amplitudy umieszczone jest wzmocnienie układu wyrażone w decybelach. Ponieważ ten przykładowy filtr nie wnosi żadnego wzmocnienia, a tylko tłumi sygnały o wyższych częstotliwościach, amplituda wyrażona w decybelach przyjmuje wartości mniejsze lub równe 0. Jest to inżynierski sposób przedstawiania charakterystyki, głównie amplitudowej. Taka reprezentacja zapewnia nam dobrą rozdzielczość częstotliwościową dla niskich częstotliwości i dużą dynamikę amplitudy umożliwiającą zaobserwowanie charakterystyki także dla dużych tłumień. Dodatkowo łatwo można zauważyć, że dla tego filtru, rzędu czwartego, charakterystyka powyżej częstotliwości granicznej ma nachylenie 4·20dB/dek. Zatem każde dziesięciokrotne zwiększenie częstotliwości powoduje zmniejszenie amplitudy o 80dB. Pokażmy również, jak wygląda wykres charakterystyki amplitudowej w przypadku liniowej osi częstotliwości i amplitudy wyrażonej stosunkiem amplitudy wyjściowej do wejściowej filtru. W tym celu należy zmodyfikować odpowiednie linie skryptu na poniższe: w=W0∗ ( 0 : 0 . 0 1 : 4 ) ; s u b p l o t ( 2 , 1 , 1 ) , p l o t (w, mag ) s u b p l o t ( 2 , 1 , 2 ) , p l o t (w, unwrap ( phase ) ) Wynikowy wykres przedstawia rysunek 6.10. Taka reprezentacja charakterystyki zapewne będzie mniej przydatna na przykład przy analizie filtrów w za- ROZDZIAŁ 6. FILTRY ANALOGOWE 103 Charakterystyka amplitudowa 1 Amplituda 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 2.5 Pulsacja [rad/s] 3 3.5 4 3 3.5 4 Charakterystyka fazowa 2 Faza [rad] 0 −2 −4 −6 0 0.5 1 1.5 2 2.5 Pulsacja [rad/s] Rysunek 6.10: Dolnoprzepustowy filtr Butterwortha. Charakterystyka w skali liniowej. kresie częstotliwości akustycznych, gdyż dźwięki o poziomie -30dB mogą być jeszcze dobrze słyszalne przez ucho ludzkie, podczas gdy stosunek amplitud wynosi zaledwie 0,03. 6.5.2 Funkcje Matlaba przydatne przy projektowaniu filtrów Matlab zawiera sporo funkcji przydatnych przy projektowaniu filtrów. Szczególnie przydatne jest studiowanie każdej użytej funkcji w celu zapoznania się z jej możliwościami. Często bowiem zarówno argumenty jak i wynik funkcji mogą być w innym formacie, zawierać różną liczbę elementów wejściowych i wyjściowych. Pomoc dotyczącą danej funkcji lub zagadnienia uzyskujemy poprzez wpisanie w oknie komend polecenia doc szukana_nazwa [Enter]. Oto przykładowy skrypt z zastosowaniem funkcji buttord zwracającej rząd i częstotliwość graniczną filtru, który spełni założone gabaryty filtru Butterwortha, a także butter wyznaczającej współczynniki wielomianu. %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− % P r o j e k t o w a n i e f i l t r ó w w M a tl a b i e ROZDZIAŁ 6. FILTRY ANALOGOWE 104 %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− Ap As Wp Ws = = = = 3; 75; 1; 10; % % % % Apass Astop Wpass Wstop [ dB ] [ db ] [ rd / s ] [ rd / s ] % Wyznaczenie r zęd u f i l t r u B u tter w o r th a [ N,W0] = b u t t o r d (Wp, Ws, Ap , As , ’ s ’ ) ; d i s p ( [ ’ Rząd = ’ num2str (N ) ] ) ; d i s p ( [ ’ P u l s a c j a g r a n i c z n a = ’ num2str (W0) ’ rad / s ’ ] ) ; % Wyznaczenie t r a n s m i t a n c j i [ b , a ] = b u t t e r (N,W0, ’ s ’ ) ; f i l t r u B u tter w o r th a printsys (b , a , ’ s ’ ) [ z , p , k]= t f 2 z p ( b , a ) ; f i gu r e (1) p l o t ( r e a l ( p ) , imag ( p ) , ’ xb ’ , ’ M a r k er S i ze ’ , 1 0 ) ; g r i d on t i t l e ( ’ P o ł o ż e n i e z e r i biegunów ’ ) ; axi s equal ; a x i s ( [ − 1 . 1 1 . 1 −1.1 1 . 1 ] ∗W0) ; p l o t c i r c l e (W0) ; x l a b e l ( ’ Re ’ ) ; y l a b e l ( ’ Im ’ ) f i gu r e (2) w= ( 0 . 1 : 0 . 0 1 : 4 ) ; h = f r e q s (b , a ,w) ; % charakterystyka częstotliwościowa mag = abs ( h ) ; % a m p l i tu d a phase = a n g l e ( h ) ; % faza s u b p l o t ( 2 , 1 , 1 ) , s e m i l o g x (w, 2 0 ∗ l o g 1 0 (mag ) ) t i t l e ( ’ C h a r a k t e r y s t y k a amplitudowa ’ ) ; x l a b e l ( ’ P u l s a c j a [ rad / s ] ’ ) ; y l a b e l ( ’ Amplituda [ dB ] ’ ) g r i d on s u b p l o t ( 2 , 1 , 2 ) , s e m i l o g x (w, unwrap ( phase ) ) t i t l e ( ’ C h a r a k t e r y s t y k a fazowa ’ ) ; x l a b e l ( ’ P u l s a c j a [ rad / s ] ’ ) ; y l a b e l ( ’ Faza [ rad ] ’ ) g r i d on Funkcji butter należy podać następujące parametry: rząd filtru (N ), pulsację graniczną (ω0 ) oraz ciąg znakowy ’s’ oznaczający, że interesuje nas filtr analogowy w dziedzinie zmiennej zespolonej s (domyślnie funkcja projektuje filtr cyfrowy). Funkcja butter potrafi zwrócić transmitancję w postaci wielomianowej, zero-biegunowej lub zmiennych stanu. Funkcja tf2zp służy do zmiany postaci wielomianowej transmitancji na zero- ROZDZIAŁ 6. FILTRY ANALOGOWE 105 biegunową. W powyższym przykładzie wykorzystano ją do znalezienia biegunów transmitancji, aby można je było przedstawić na płaszczyźnie zespolonej. Istnieje również funkcja odwrotna - zp2tf. Polecenie printsys w wygodny sposób prezentuje transmitancję w postaci ułamka i uporządkowanych współczynników według malejących potęg argumentu. Do zaprojektowania filtrów o charakterystykach Czebyszewa typu 1 i 2 oraz eliptycznego służą odpowiednio funkcje cheby1, cheby2, ellip. Minimalny rząd filtru spełniający określone wymagania obliczają funkcje buttord, cheb1ord, cheb2ord, ellipord. Rozdział 7 Filtry cyfrowe W tym rozdziale przedstawiamy zasadę filtracji cyfrowej i metody projektowania filtrów cyfrowych. Opis zawężamy do układów liniowych, stacjonarnych (o niezmiennych w czasie parametrach). Pokazujemy, w jaki sposób uzyskać żądaną charakterystykę częstotliwościową filtru, między innymi bazując na szeroko poznanej wiedzy z zakresu projektowania filtrów analogowych. Tytułem wstępu przedstawiamy także podstawową wiedzę dotyczącą transformaty Z. Filtry cyfrowe to jeden z najczęściej implementowanych elementów cyfrowego przetwarzania sygnałów. Szybki rozwój procesorów DSP jak i układów programowalnej logiki stale zwiększa możliwości w przetwarzaniu coraz bardziej złożonych sygnałów, a jednocześnie przetwarzanie to staje się tańsze w realizacji. Wśród zalet filtrów cyfrowych na pewno wymienimy takie cechy jak: • łatwość uzyskiwania złożonych charakterystyk amplitudowo-częstotliwościowych, • możliwość uzyskania liniowej fazy, • możliwa praca z bardzo niskimi częstotliwościami, • duże możliwości rekonfiguracji, • powtarzalność parametrów (stabilność temperaturowa, czasowa, brak rozrzutu parametrów). Wady filtrów cyfrowych to przede wszystkim: • ograniczona szybkość przetwarzania, 106 ROZDZIAŁ 7. FILTRY CYFROWE 107 • ograniczone pasmo częstotliwości do połowy częstotliwości próbkowania. 7.1 Transformata Z Transformatę Z możemy traktować jako odpowiednik transformaty Laplace’a, znanej z układów analogowych. Definiuje się ją następująco: X(z) = ∞ X x(n)z −n , (7.1) n=−∞ gdzie z jest zmienną zespoloną, x spróbkowanym sygnałem. Transformata istnieje dla tych z, dla których szereg jest zbieżny. Przykład. Mamy sygnał cyfrowy o wartościach kolejnych próbek równych: x(0) = 0, 2; x(1) = 0, 6; x(2) = 0, 3. Transformatą Z tego sygnału jest: X(z) = 0, 2 + 0, 6z −1 + 0, 3z −2 . Z powyższego przykładu widzimy, że z transformaty możemy łatwo odtworzyć sygnał, bowiem współczynnik występujący przed n-tą potęgą zmiennej zespolonej jest równy próbce sygnału w chwili n. Przykład. Dana jest funkcja eksponencjalna, zanikająca w czasie: x(n) = e−an , n = 0, 1, 2, . . . Jej transformatą jest: Z e −an = ∞ X n=0 e −an −n z ∞ X % −a −1 n = e z = n=0 1 , 1 − e−a z −1 przy czym e−a z −1 < 1 ⇐⇒ |z| > |e−a | (na podstawie twierdzenia o zbieżności szeregu geometrycznego). Zadanie. Oblicz transformatę Z impulsu δ(n) i skoku jednostkowego 1(n). Podobnie jak w przypadku transformaty Laplace’a, transformaty wielu popularnych sygnałów możemy zebrać w formie tablicy (patrz tabela 7.1). Obszar zbieżności jest istotny, ponieważ istnieją transformaty pozornie identyczne różniące się tylko obszarem zbieżności. ROZDZIAŁ 7. FILTRY CYFROWE 108 Tablica 7.1: Wybrane sygnały i ich transformaty Z x(n) ( 1, n = 0 δ(n) = 0, n = 6 0 δ(n − m), δ(n + m), ( 1, 1(n) = 0, m>0 m>0 n≥0 n<0 n · 1(n) n2 · 1(n) an · 1(n) nan · 1(n) X(z) Obszar zbieżności 1 0 ≤ |z| ≤ ∞ z −m zm |z| > 0 |z| < ∞ 1 1−z −1 |z| > 1 z −1 (1−z −1 )2 |z| > 1 z −1 (1+z −1 ) (1−z −1 )3 1 1−az −1 az −1 (1−az −1 )2 |z| > 1 |z| > |a| |z| > |a| W celu odtworzenia oryginału x(n) na podstawie jego transformaty X(z) i informacji o jej obszarze zbieżności definiuje się transformatę odwrotną Z: ˛ 1 x(n) = X(z)z n−1dz (7.2) 2πj Γ gdzie krzywa Γ jest konturem obejmującym początek układu współrzędnych płaszczyzny zespolonej z, obiegająca go w kierunku dodatnim (przeciwnym do ruchu wskazówek zegara). W wielu przypadkach oryginał można uzyskać stosując prostsze metody. Na przykład, jeśli X(z) jest wielomianem zmiennej z: X(z) = n2 X b(n)z −n , (7.3) n=n1 x(n) można wyznaczyć interpretując współczynniki stojące przy odpowiednich potęgach zmiennej z, czego przykład przytoczono wcześniej. Kolejne metody to dzielenie wielomianów, rozkład na ułamki proste, metoda residuów. Wszystkie są opisane w literaturze [3, 4]. Ponieważ w tej książce wspieramy się środowiskiem Matlab, pokażemy zastoso- ROZDZIAŁ 7. FILTRY CYFROWE 109 wanie funkcji residuez. Format polecenia jest następujący: [ r , p , k ] = residuez (b , a ) gdzie b, a są wektorami reprezentującymi współczynniki wielomianów w liczniku i mianowniku w kierunku malejących potęg zmiennej z −1 . Wektor r reprezentuje współczynniki rozkładu na ułamki proste, odpowiednio do biegunów danych jako wektor p. Wektor k zawiera współczynniki odpowiadające składnikom związanym z kolejnymi potęgami z −1 , które pojawiają się gdy stopień licznika jest większy lub równy stopniowi mianownika. Przykład. z 3 − 10z 2 − 4z + 4 . 2z 2 − 2z − 4 Użycie funkcji Matlaba wymaga przedstawienia wielomianów jako funkcje zmiennej z −1 : % z 3 1 − 10z −1 − 4z −2 + 4z −3 1 1 − 10z −1 − 4z −2 + 4z −3 1 X(z) = = z = zF (z) 2 −1 −2 −1 −2 2z (1 − z − 2z ) 2 1 − z − 2z 2 X(z) = 1 − 10z −1 − 4z −2 + 4z −3 . 1 − z −1 − 2z −2 Wydajemy polecenie i otrzymujemy wyniki: F (z) = >> [ r , p , k ] = r e s i d u e z ( [ 1 −10 −4 4 ] , [ 1 −1 −2]) r = −3 1 p = 2 −1 k = 3 −2 Rozkład X(z) jest zatem następujący: F (z) = 1 −3 + + 3 − 2z −1 −1 1 − 2z 1 + z −1 Aby wyznaczyć transformatę odwrotną należy określić obszar zbieżności funkcji F (z). Granice obszaru zbieżności wyznaczają bieguny z1 = 2, z2 = −1, z3 = 0. Należy pamiętać, że w ten sposób otrzymujemy sygnał x(n), nie x(t), co oznacza, że transformata z zachowuje informacje tylko w chwilach próbkowania. ROZDZIAŁ 7. FILTRY CYFROWE 7.2 110 Opis liniowych układów dyskretnych Liniowość układu dyskretnego możemy opisać tak samo jak układu analogowego, uwzględniając jednak to, że sygnał jest ciągiem wartości (próbek): x1 (n) → y1 (n) i x2 (n) → y2 (n) to ax1 (n) + bx2 (n) → ay1 (n) + by2 (n), (7.4) gdzie x(n) jest sygnałem wejściowym, y(n) sygnałem wyjściowym, a i b dowolnymi stałymi. Bardzo ważną rolę w układach analogowych ogrywa impuls Diraca, którego cyfrowym odpowiednikiem jest delta Kroneckera: ( 1, n = 0 δ(n) = . (7.5) 0 n 6= 0 Wykorzystując powyższe, każdą próbkę dowolnego sygnału x(n) możemy przedstawić jako sumę przesuniętych impulsów jednostkowych pomnożonych przez wartości próbek tego sygnału: x(n) = ∞ X k=−∞ x(k)δ(n − k). (7.6) Jeśli układ jest niezmienny w czasie, a takimi zajmujemy się w tym rozdziale, na przesunięte w czasie pobudzenie odpowiada taką samą lecz przesuniętą w czasie odpowiedzią: x(n) → y(n), x(n − k) → y(n − k). (7.7) W szczególności na pobudzenie deltą Kroneckera mamy: δ(n − k) → h(n − k). (7.8) Zatem powiązanie sygnałów: wejściowego x(n) i wyjściowego y(n) jest następujące: x(n) = ∞ X k=−∞ x(k)δ(n − k) → y(n) = ∞ X k=−∞ x(k)h(n − k) = x(n) ⊗ h(n). (7.9) Operacja ta jest już nam znana - jest to splot sygnałów x(n) i h(n). Podstawiając n − k = m: y(n) = ∞ X m=−∞ h(m)x(n − m) = h(n) ⊗ x(n). (7.10) ROZDZIAŁ 7. FILTRY CYFROWE 111 Rysunek 7.1: Schemat blokowy filtru o skończonej odpowiedzi impulsowej. Jest to równanie opisujące proces filtracji cyfrowej sygnału x(n) przez filtr h(n). Rozważania zawężamy do układów przyczynowych, to znaczy, że odpowiedź nie wyprzedza pobudzenia. Zatem dla m < 0 sygnał jest zerowy i sumowanie rozpoczynamy od m = 0. Jeśli odpowiedź impulsowa h(m) składa się ze skończonej, równej M + 1, liczby niezerowych próbek, otrzymujemy praktyczny przepis (algorytm) realizacji filtracji za pomocą maszyny cyfrowej: y(n) = M X m=0 h(m)x(n − m), (7.11) który w postaci graficznej przedstawiono na rysunku 7.1. Blok oznaczony z −1 opóźnia sygnał o jedną próbkę. Takie założenia doprowadziły nas do opisu filtrów o skończonej odpowiedzi impulsowej (FIR), z którymi bliżej zapoznamy się w rozdziale 7.4. Ze wzoru 7.11 możemy wnioskować, że wyjście układu y(n) w n-tej chwili czasowej zależy tylko od wartości próbki bieżącej i próbek poprzednich x(n). Ciekawą zależność można wyznaczyć dla przykładowego filtru o odpowiedzi impulsowej równej: h(n) = (−a)n , n > 0, |a| < 1. (7.12) Układ charakteryzujący się taką samą odpowiedzią można zapisać w inny sposób: y(n) = x(n) − ay(n − 1). (7.13) Wyjście układu zależy tu nie tylko od bieżącej próbki sygnału wejściowego, ale również od próbki sygnału wyjściowego w chwili n − 1. Graficzną interpretację ROZDZIAŁ 7. FILTRY CYFROWE 112 (a) Schemat blokowy układu opisanego równaniem 7.13. (b) Schemat blokowy układu opisanego równaniem 7.15. Rysunek 7.2: Struktury filtrów o nieskończonej odpowiedzi impulsowej. tego zapisu przedstawia rysunek 7.2a. Wyraźnie widzimy tu sprzężenie zwrotne - próbka sygnału wyjściowego jest zapamiętywana, dodawana do kolejnej próbki sygnału wejściowego i znów zapamiętywana, dodawana do następnej próbki sygnału wejściowego itd. Każdy sygnał różny od zera, w tym również impuls jednostkowy powoduje, że układ odpowiada nieskończenie długim ciągiem na swoim wyjściu. Dlatego te układy nazywamy układami o nieskończonej odpowiedzi impulsowej (IIR). Gdybyśmy chcieli otrzymać równoważnik obliczany na podstawie wzoru (7.10), h(m) musiałoby być ciągiem nieskończonym i suma byłaby również nieskończona. Rozbudowując układ o kolejne elementy opóźniające otrzymamy: y(n) = x(n) − ∞ X k=1 ak y(n − k). (7.14) Biorąc pod uwagę elementy sprzężenia zwrotnego (7.14) jak i te z równania (7.10) otrzymujemy równanie różnicowe opisujące filtr typu IIR: y(n) = ∞ X m=0 bm x(n − m) − ∞ X k=1 ak y(n − k), (7.15) przy czym oznaczenie współczynników h(m) będące odpowiedzią impulsową filtru FIR zastąpiono współczynnikami bm . Na rysunku 7.2b przedstawiono to działanie w postaci graficznej . ROZDZIAŁ 7. FILTRY CYFROWE 113 Praktyczną realizację algorytmu przez maszynę cyfrową otrzymujemy po ograniczeniu do skończonej liczby elementów pamiętających i współczynników: y(n) = M X m=0 N X bm x(n − m) − k=1 ak y(n − k). (7.16) Opis i projektowanie filtrów typu FIR znacząco różni się od IIR, dlatego przedstawiamy je w kolejnych osobnych podrozdziałach. 7.3 Transmitancja układów dyskretnych Układ liniowy niezmienny względem przesunięcia wiąże sygnały wyjściowy z wejściowym w sposób opisany w poprzednim rozdziale (równanie 7.10): y(n) = h(n) ⊗ x(n), (7.17) Y (z) = H(z)X(z). (7.18) czyli splot w dziedzinie czasu, w dziedzinie Z zaobserwujemy iloczyn: H(z) jest transformatą Z odpowiedzi impulsowej i nazywamy transmitancją układu. Przekształćmy równanie 7.15 do bardziej ogólnej postaci równania różnicowego: ∞ ∞ X X ak y(n − k) = bm x(n − m), (7.19) m=0 k=0 (zauważmy, że pojawił się element a0 ). Stosując transformatę Z do obu stron równania otrzymujemy: "∞ # " ∞ # X X Z ak y(n − k) = Z bm x(n − m) m=0 k=0 ∞ X k=0 ak Z [y(n − k)] = ∞ X m=0 bm Z [x(n − m)] . Na podstawie tablicy 7.1: Z [y(n − k)] = z −k Y (z) Z [x(n − m)] = z −m X(z), ROZDZIAŁ 7. FILTRY CYFROWE więc: ∞ X 114 ak z −k Y (z) = ∞ X bm z −m X(z). m=0 k=0 Na podstawie zależności (7.18) mamy: P∞ bm z −m Y (z) H(z) = = Pm=0 . ∞ −k X(z) k=0 ak z (7.20) Postać równania (7.20) jest stosowana do opisu filtrów cyfrowych, przy czym współczynnik a0 przeważnie jest równy 1 (lub całość transmitancji normalizowana tak, aby a0 było równe 1) dla filtrów IIR, a dla filtrów FIR cały mianownik jest równy 1 . Ze względów praktycznych oba sumowania ogranicza się do M i N elementów: H(z) = 7.4 7.4.1 Filtry FIR PM bm z −m Y (z) . = Pm=0 N −k X(z) k=0 ak z (7.21) Współczynniki filtrów FIR Wróćmy do równania 7.11 - splotu sygnału wejściowego i odpowiedzi impulsowej filtru. Jeśli rozważamy sygnały przyczynowe i zbadamy odpowiedź układu na impuls jednostkowy (deltę Kroneckera) wówczas otrzymamy: y(n) = M X m=0 h(m)δ(n − m). (7.22) Załóżmy przykładowo, że M=3; wówczas: y(0) = y(1) = y(2) = y(3) = h(0) · 0 + h(1) · 0 + h(2) · 0 + h(3) · 1 = h(3) h(0) · 0 + h(1) · 0 + h(2) · 1 + h(3) · 0 = h(2) h(0) · 0 + h(1) · 1 + h(2) · 0 + h(3) · 0 = h(1) h(0) · 1 + h(1) · 0 + h(2) · 0 + h(3) · 0 = h(0). Widzimy więc, że w przypadku filtrów FIR odpowiedź impulsowa jest identyczna z wartościami współczynników filtru. Zatem jeśli mówimy o odpowiedzi impulsowej filtru FIR to chodzi nam o jego współczynniki. ROZDZIAŁ 7. FILTRY CYFROWE 115 Równanie (7.11) możemy zapisać w skróconej formie posługując się symbolem splotu: y(n) = h(n) ⊗ x(n). (7.23) Ponieważ dyskretna transformata Fouriera (DFT) splotu odpowiedzi impulsowej filtru i sygnału wejściowego jest równa iloczynowi ich widm (patrz 4), możemy zapisać następującą relację: y(n) = h(n) ⊗ x(n) DF T ⇄ Y (ejΩ ) = H(ejΩ )X(ejΩ ), IDF T (7.24) gdzie Ω oznacza pulsację unormowaną względem częstotliwości próbkowania fs : Ω = 2π 7.4.2 f . fs (7.25) Projektowanie filtrów FIR metodą okien czasowych Metoda okien czasowych jest jedną z prostszych w implementacji. Polega ona na zdefiniowaniu oczekiwanego kształtu charakterystyki w dziedzinie częstotliwości, czyli H(ejΩ ) i obliczeniu za pomocą odwrotnego przekształcenia Fouriera odpowiedzi impulsowej filtra: ˆ π 1 h(n) = H(ejΩ )ejΩn dΩ, −∞ ≤ n ≤ ∞. (7.26) 2π −π Uzyskana nieskończenie długa odpowiedź czasowa musi być skrócona. Dokonuje się tego poprzez wymnożenie odpowiedzi h(n) z funkcją okna w(n): hw (n) = h(n)w(n), −∞ ≤ n ≤ ∞, (7.27) 0 ≤ n ≤ 2M. (7.28) przy czym funkcja okna dla |n| > M posiada wartości równe 0, czyli ma długość N = 2M + 1 próbek. Ponieważ rozważamy układy przyczynowe, odpowiedź impulsowa musi być przyczynowa, tzn. h(n) = 0 dla n < 0. Dokonujemy zatem przesunięcia odpowiedzi w prawo o M próbek i ograniczamy liczbę próbek do 2M + 1: hwsh = hw (n − M ), To przesunięcie czasowe odpowiedzi skutkuje tylko dodatkowym przesunięciem fazowym wprowadzanym przez filtr. ROZDZIAŁ 7. FILTRY CYFROWE 116 Tablica 7.2: Zestawienie wzorów odpowiedzi impulsowych filtrów „idealnych”. F0 , F1 , F2 - unormowane względem częstotliwości próbkowania częstotliwości graniczne: F = ffs , F1 - częstotliwość dolna, F2 - częstotliwość górna. Rodzaj filtru Dolnoprzepustowy Górnoprzepustowy Pasmowoprzepustowy Pasmowozaporowy Odpowiedź impulsowa ( 0 n) 2F0 sin(Ω Ω0 n , n 6= 0 h(n) = 2F0 , n=0 ( sin(Ω0 n) δ(n) − 2F0 Ω0 n , n 6= 0 h(n) = 1 − 2F0 , n=0 ( sin(Ω2 n) sin(Ω1 n) 2F2 Ω2 n − 2F1 Ω1 n , n 6= 0 h(n) = 2(F2 − F1 ), n=0 ( sin(Ω2 n) sin(Ω1 n) δ(n) − 2F2 Ω2 n − 2F1 Ω1 n , n 6= 0 h(n) = 1 − 2(F2 − F1 ), n=0 Tablica 7.3: Definicje wybranych okien czasowych. Nazwa okna Prostokątne Trójkątne Hanninga Hamminga Blackmana Definicja okna, n = 0 . . . N − 1 w(n) = 1 w(n) = 1 − 2|n−N/2| N w(n) = 0, 5 − 0, 5 cos(2πn/N ) w(n) = 0, 54 − 0, 46 cos(2πn/N ) w(n) = 0, 42 − 0, 5 cos(2πn/N) + 0, 18 cos(4πn/N ) q % n−(N −1)/2 2 I0 β Kaisera w(n) = I(x) = 1 + 1− (N −1)/2 I0 (β) P∞ h (x/2)k i2 k=1 k! gdzie (funkcja Bessela) ROZDZIAŁ 7. FILTRY CYFROWE 117 W tablicy 7.2 zestawiono odpowiedzi impulsowe najczęściej stosowanych filtrów o „idealnej” charakterystyce amplitudowo-częstotliwościowej. Proces obliczeniowy tych filtrów nie jest bardzo złożony. Na przykład dla filtru dolnoprzepustowego określamy H(ejΩ ) = 1 dla −Ω0 ≤ Ω ≤ Ω0 i 0 dla pozostałych częstotliwości. Na podstawie (7.26) mamy: ˆ π ˆ Ω0 1 1 1 jΩn Ω0 1 jω jΩn h(n) = H(e )e dΩ = 1 · ejΩn dΩ = e |−Ω0 2π −π 2π −Ω0 2π jn 2j sin(Ω0 n) 1 jΩn sin(Ω0 n) = e − e−jΩn = = j2πn j2πn πn sin(Ω0 n) = 2F0 , n 6= 0 Ω0 n oraz h(0) = 2F0 Ω0 cos(Ω0 n) |n=0 = 2F0 Ω0 (z reguły d’Hospitala). Pozostałe wyprowadzenia znajdują się w [4]. Przykładową odpowiedź impulsową filtru dolnoprzepustowego o częstotliwości granicznej 0, 2fs , funkcję okna Hamminga i odpowiedź impulsową z zastosowaniem tego okna przedstawiono na rysunku 7.3. Charakterystyka amplitudowo-częstotliwościowa tego filtru jest pokazana na rysunku 7.4. Gdy amplituda jest pokazana w skali liniowej nie jesteśmy w stanie odczytać charakterystyki poza pasmem przepustowym. Dopiero ukazanie jej w skali logarytmicznej (wyskalowanej w decybelach) prezentuje kształt charakterystyki w całym zakresie częstotliwości. Istotnie, jeśli przy projektowaniu filtrów opisywaną metodą wybieramy jeden z licznych kształtów okien (tablica 7.3), wpływamy także na charakterystykę amplitudową w zakresie częstotliwości, w których filtr tłumi. Na rysunku 7.5 pokazano charakterystykę filtrów o takiej samej częstotliwości granicznej i długości, ale z zastosowaniem różnych okien. Ze względu na symetrię wokół częstotliwości 0, zakres częstotliwości został ograniczony do 0 . . . 0, 5fs . Zastosowanie różnych okien powoduje przede wszystkim różne tłumienie w paśmie zaporowym filtru. Niestety większe tłumienie w paśmie zaporowym („listków” bocznych) jest okupione większą szerokością „listka” głównego. Długość okna wpływa głównie na szerokość pasma przejściowego. Im dłuższe okno (większa liczba współczynników) tym pasmo przejściowe staje się węższe, ale niestety zwiększa się czas obliczeń, zapotrzebowanie na pamięć i opóźnienie sygnału wyjściowego (o M próbek). Zależność widma Fouriera filtru od liczby ROZDZIAŁ 7. FILTRY CYFROWE 118 0.4 0.3 h(n) 0.2 0.1 0 −0.1 −50 −40 −30 −20 −10 0 n 10 20 30 40 50 −40 −30 −20 −10 0 n 10 20 30 40 50 −40 −30 −20 −10 0 n 10 20 30 40 50 1 w(n) 0.8 0.6 0.4 0.2 0 −50 0.4 hw(n) 0.3 0.2 0.1 0 −0.1 −50 Rysunek 7.3: Odpowiedź impulsowa filtru dolnoprzepustowego h(n), okno Hamminga w(n) i odpowiedź impulsowa filtru po przemnożeniu z funkcją okna hw(n). N=93, F0 = 0, 2. ROZDZIAŁ 7. FILTRY CYFROWE 119 1.2 20 0 1 −20 |H(Ω)| [dB] |H(Ω)| 0.8 0.6 −40 −60 0.4 −80 0.2 −100 0 −0.5 −0.4 −0.3 −0.2 −0.1 0 Ω/2π 0.1 0.2 0.3 0.4 0.5 −120 −0.5 −0.4 −0.3 −0.2 −0.1 0 Ω/2π 0.1 0.2 0.3 0.4 0.5 Rysunek 7.4: Charakterystyka amplitudowo-częstotliwościowa filtru z rysunku 7.3 w skali liniowej i logarytmicznej. współczynników filtru pokazuje rysunek 7.6 (opuszczono fragment ch-ki dla częstotliwości ujemnych). Na szczególną uwagę przy projektowaniu filtrów zasługują parametryczne okna Czebyszewa i Kaisera. Umożliwiają one zaprojektowanie filtru spełniającego zadane założenia: szerokość pasma przejściowego ∆f , maksymalne zafalowania w paśmie przepustowym δp i tłumienie w paśmie zaporowym δs . Oto wzory projektowe filtru z zastosowaniem okna Kaisera: δ = min(δp , δs ) A = −20log(δ), 0, β = 0, 5842(A − 21)0,4 + 0, 07886(A − 21), 0, 1102(A − 8, 7), As < 21dB 21dB ≤ As ≤ 50dB As > 50dB As − 7, 95 fs . 14, 36 ∆f gdzie N jest liczbą całkowitą, nieparzystą. N≥ 7.4.3 Projektowanie filtrów FIR metodą próbkowania w dziedzinie częstotliwości W tej metodzie charakterystykę amplitudową filtru kształtujemy poprzez umieszczenie na niej próbek, a następnie liczymy odwrotną DFT celem uzyskania od- ROZDZIAŁ 7. FILTRY CYFROWE Rectwin Hamming Hanning 0 −20 −40 −40 −60 −60 −80 −80 −100 −100 −120 −120 −140 −140 −160 0 0.1 0.2 0.3 0.4 Bartlett Blackman Kaiser (5) 0 −20 |H(Ω)| [dB] |H(Ω)| [dB] 120 −160 0.5 0 0.1 0.2 Ω/2π 0.3 0.4 0.5 Ω/2π (a) Okna: prostokątne, Hamminga, Hanninga, Bartleta, Blackmana, Kaisera (β = 5). 0 0 β = 0.1 β= 1 β= 5 β = 10 −10 −30 β = 0.1 β= 1 β= 5 β = 10 −10 −30 |H(Ω)| [dB] |H(Ω)| [dB] −50 −70 −90 −70 −90 −110 −110 −130 −150 −50 0 0.1 0.2 0.3 Ω/2π 0.4 0.5 0.15 0.16 0.17 0.18 0.19 0.2 0.21 Ω/2π 0.22 0.23 0.24 0.25 0.26 (b) Okna Kaisera dla β = 0, 1 β = 1 β = 5 β = 10 i powiększenie fragmentu. Rysunek 7.5: Porównanie charakterystyk częstotliwościowych filtrów zaprojektowanych przy użyciu różnych okien. N = 93, F0 = 0, 2. ROZDZIAŁ 7. FILTRY CYFROWE 121 10 N = 31 N = 63 N = 127 N = 511 0 −10 −20 |H(Ω)| [dB] −30 −40 −50 −60 −70 −80 −90 −100 0.16 0.18 0.2 0.22 0.24 Ω/2π 0.26 0.28 0.3 Rysunek 7.6: Zależność charakterystyki częstotliwościowej filtru od liczby współczynników filtru (F0 = 0, 2, okno Hamminga). powiedzi impulsowej, czyli bezpośrednio współczynników filtru FIR. Tu również zastosowanie funkcji okien do odpowiedzi impulsowej filtru pozwala uzyskać większe tłumienie w paśmie zaporowym. Zaprojektujmy przykładowy filtr dolnoprzepustowy za pomocą N = 32 próbek w dziedzinie częstotliwości (rys. 7.7). Próbki te pokrywają zakres pulsacji od „prawie”−π do π, czyli od minus połowy częstotliwości próbkowania do połowy częstotliwości próbkowania. „Prawie” dlatego, że próbka o indeksie m = − N2 + 1 = −15 reprezentuje pulsację Ω = −π NN−2 . Próbka o indeksie m = 0 reprezentuje pulsację Ω = 0, próbka m = N2 = 16 pulsację Ω = π. W okolicy częstotliwości zerowej przyjmijmy K = 7 próbek równych 1, pozostałe równe 0. Aby wyznaczyć h(n) w sposób algebraiczny posłużymy się odwrotną DFT z H(m): 1 h(n) = N N 2 X m=−( N 2 H(m)ej2π mn N , +1) Rozwiązaniem jest: h(n) = co przedstawiono na rysunku 7.8(a). sin(πnK/N ) , sin(πn/N ) −∞ ≤ n ≤ ∞ (7.29) (7.30) ROZDZIAŁ 7. FILTRY CYFROWE 122 (a) Transmitancja idealnego filtru dolnoprzepustowego H(m) 1 0.5 0 −15 −10 −5 0 5 10 m (b) Funkcja z (a) przesuniȩta do zakresu 0..2π 0 5 15 H(m) 1 0.5 0 10 15 m 20 25 30 Rysunek 7.7: Transmitancja idealnego filtru dolnoprzepustowego. (a) Odwrotna DFT funkcji H(m) z rysunku poprzedniego h(n) 0.2 0.1 0 −15 −10 0 5 −5 0 5 10 n (b) Wspó lczynniki dla algorytmu FIR 15 h(n) 0.2 0.1 0 10 15 n 20 25 30 Rysunek 7.8: Odwrotna DFT transmitancji idealnego filtru dolnoprzepustowego. ROZDZIAŁ 7. FILTRY CYFROWE 123 0.25 0.2 h(n) 0.15 0.1 0.05 0 −0.05 0 5 10 15 n 20 25 30 Rysunek 7.9: Wycięty fragment odpowiedzi impulsowej (15 współczynników). Jak widać, jest to postać funkcji sinc(x). Ciąg współczynników można również otrzymać numerycznie wykonując obliczenia algorytmem odwrotnego FFT. W najprostszym przypadku oczekujemy symetrycznej względem próbki środkowej odpowiedzi impulsowej. Odrzucamy zatem próbkę o indeksie 16. Należy jeszcze dostosować indeksowanie do algorytmu filtracji w związku z czym przesuwamy odpowiedź w czasie o 15 próbek. Z twierdzenia o przesunięciu (rozdział ??) wiemy, że taka operacja nie zmienia charakterystyki amplitudowej, a jedynie powoduje liniowe przesunięcie fazy [4]. Do filtracji nie jest konieczne użycie wszystkich współczynników otrzymanych po powyższych operacjach. W praktyce odpowiedź impulsowa może być zbyt długa jak na możliwości pamięci i szybkości działania maszyny liczącej. Pokażmy więc, jak liczba wybranych współczynników wpływa na charakterystykę amplitudową filtru. W tym celu z otrzymanych N − 1 = 31 próbek odpowiedzi impulsowej (rys. 7.8) wybieramy na przykład 15 „środkowych” (rys. 7.9). Pozostałe próbki są równe zero i w konsekwencji zakres sumowania według zależności 7.11 można zmniejszyć (skrócić). Uzyskane charakterystyki częstotliwościowe dla 11, 15, 23 i 31 współczynników filtru przedstawiamy na rys. 7.10. Szarym konturem zaznaczona jest charakterystyka idealna, którą chcieliśmy uzyskać. Większa liczba współczynników filtru FIR powoduje zawężenie obszaru przejściowego i zwiększenie częstotliwości zafalowań. Nie ma jednak wpływu na zwiększenie tłumienia w paśmie zaporowym i nierównomierności w paśmie przepustowym. ROZDZIAŁ 7. FILTRY CYFROWE 124 1.4 id 11 15 23 31 1.2 |H(Ω)| 1 0.8 0.6 0.4 0.2 0 −0.5 0 Ω/2π 0.5 Rysunek 7.10: Wynikowa charakterystyka amplitudowo-częstotliwościowa w zależności od liczby współczynników filtra, na tle charakterystyki idealnej (projektowanej). Źródłem zafalowań charakterystyki amplitudowo-częstotliwościowej jest użycie okna prostokątnego, bowiem wycięcie fragmentu z odpowiedzi impulsowej filtru nastąpiło przez wymnożenie części „środkowych” próbek przez 1, a pozostałych przez 0. Nierównomierności charakterystyki można zmniejszyć przez użycie innego okna niż prostokątne. Definicje najczęściej stosowanych okien czasowych przedstawiono w poprzednim podrozdziale, w tabeli 7.3. Wymnożenie odpowiedzi impulsowej 7.30 przez funkcję wybranego okna powoduje zredukowanie nieciągłości (rys. 7.11). Jakie ma to przełożenie na charakterystykę częstotliwościową pokazano na rysunku 7.12. W stosunku do zastosowanego wcześniej okna prostokątnego obserwujemy większe tłumienie w paśmie zaporowym i znacznie zredukowaną nierównomierność charakterystyki w paśmie przepustowym. Niestety odbywa się to kosztem poszerzenia pasma przejściowego. Stromość charakterystyki można poprawić zwiększając liczbę współczynników filtru. W identyczny sposób można zaprojektować filtr górnoprzepustowy, środkowoprzepustowy, środkowozaporowy lub o innym kształcie. Na rysunku 7.14 przedstawiono projekt filtru środkowoprzepustowego 64-go rzędu z zastosowaniem okna Hamminga. ROZDZIAŁ 7. FILTRY CYFROWE 125 0.25 0.2 h(n) 0.15 0.1 0.05 0 −0.05 0 5 10 15 n 20 25 30 Rysunek 7.11: Odpowiedź impulsowa przykładowego filtru po wymnożeniu przez okno Hamminga. 7.4.4 Projektowanie filtrów FIR metodą Remeza Metoda ta, zwana również metodą Parks-McClellan’a, polega na minimalizowaniu funkcji błędu projektowanej charakterystyki amplitudowej i sumy kosinusoid wziętych ze współczynnikami wagowymi aproksymujących tą charakterystykę. Podstawy matematyczne metody są dość złożone i nie przedstawimy ich w tym miejscu. Więcej na temat algorytmu można przeczytać w [4]. Wystarczy nam wiedza, że filtry zaprojektowane tą metodą mają dużo lepsze parametry od poprzednio opisanych. Przy tej samej liczbie współczynników i tłumieniu w paśmie zaporowym osiąga się węższe pasmo przejściowe. Środowisko Matlab zawiera zbiór funkcji niezbędnych do zaprojektowania filtrów tego typu. 7.4.5 Pozostałe metody projektowania filtrów FIR W literaturze można znaleźć również inne metody projektowania filtrów FIR, na przykład metodę optymalizacji średniokwadratowej. 7.5 Projektowanie filtrów FIR w Matlabie Wszystkie opisane metody opierają się o taki sam schemat działania, który można przedstawić w punktach: ROZDZIAŁ 7. FILTRY CYFROWE 126 1.4 1.2 |H(Ω)| 1 0.8 0.6 0.4 0.2 0 −0.5 0 Ω/2π |H(Ω)| [dB] 0 0.5 rectwin Hamming −50 −100 −150 −0.5 0 Ω/2π 0.5 Rysunek 7.12: Porównanie charakterystyk częstotliwościowych przykładowego filtru z zastosowaniem okna prostokątnego i Hamminga. Wykresy przedstawione w skali liniowej i logarytmicznej. ROZDZIAŁ 7. FILTRY CYFROWE 127 0 32 64 128 512 −10 −20 −30 |H(Ω)| [dB] −40 −50 −60 −70 −80 −90 −100 0 0.05 0.1 0.15 0.2 0.25 Ω/2π 0.3 0.35 0.4 0.45 0.5 (a) Okno Hamminga. 0 32 64 128 512 −10 −20 −30 |H(Ω)| [dB] −40 −50 −60 −70 −80 −90 −100 0 0.05 0.1 0.15 0.2 0.25 Ω/2π 0.3 0.35 0.4 0.45 0.5 (b) Okno Hanninga. Rysunek 7.13: Porównanie charakterystyk częstotliwościowych filtrów środkowoprzepustowych o różnej liczbie współczynników, zaprojektowanych metodą próbkowania w dziedzinie częstotliwości (zaprezentowano część charakterystyki w zakresie częstotliwości 0 . . . 0, 5fs ). ROZDZIAŁ 7. FILTRY CYFROWE 128 (a) Transmitancja zadana filtru środkowoprzepustowego H(m) 1 0.5 0 −30 −20 −30 −20 −10 0 10 m (b) Odwrotna DFT funkcji H(m) 20 30 −10 0 10 20 n (c) Transmitancja filtru z oknem Hamminga 30 0.15 0.1 h(n) 0.05 0 −0.05 −0.1 |H(Ω)| [dB] 0 −20 −40 −60 −80 −0.5 0 Ω/2π 0.5 Rysunek 7.14: Filtr środkowoprzepustowy, zaprojektowany metodą okien, z oknem Hamminga. ROZDZIAŁ 7. FILTRY CYFROWE 129 1. określenie parametrów filtru: kształtu charakterystyki amplitudowej (i ewentualnie fazowej) w dziedzinie częstotliwości, maksymalnych zafalowań w paśmie przepustowym, minimalnego tłumienia w paśmie zaporowym, szerokość pasma przejściowego; wszystkie częstotliwości najlepiej unormować względem częstotliwości próbkowania, 2. wyznaczenie odpowiedzi impulsowej, 3. wybór okna i wymnożenie jego funkcji z odpowiedzią impulsową (dotyczy metody okien czasowych i próbkowania w dziedzinie częstotliwości), 4. sprawdzenie charakterystyki amplitudowo-częstotliwościowej i fazowo-częstotliwościowej. 7.5.1 Metoda okien czasowych Odpowiedź impulsową filtru projektowanego tą metodą zwraca funkcja fir1. Jako parametr należy podać rząd filtru n i częstotliwość graniczną Wn unormowaną do połowy częstotliwości próbkowania (częstotliwości Nyquista). Jeśli Wn jest wektorem 2-elementowym można utworzyć filtr pasmowoprzepustowy. Trzeci parametr może określić typ filtru na dolnoprzepustowy lub pasmowozaporowy. Domyślnie program stosuje okno Hamminga, ale można jako kolejny parametr funkcji podać inne okno. Dokładny opis znajduje się w dokumentacji Matlaba (polecenie doc fir1 ). Do szybkiego sprawdzenia amplitudy i fazy w dziedzinie częstotliwości zaprojektowanego filtru używamy funkcji freqz. Pierwszym parametrem jest wektor współczynników filtru (licznik transmitancji), drugim współczynniki mianownika (dla filtrów FIR wstawiamy 1), trzecim może być liczba punktów tworząca charakterystykę wyjściową. Wywołując funkcję bez przypisania wartości zwracanych do wektora tworzony jest wykres. Przedstawmy na prostym przykładzie projekt filtru dolnoprzepustowego o 32 współczynnikach i częstotliwości granicznej równej 0,2 częstotliwości próbkowania. h = fir1 (32 ,0.2); freqz (h ,1 ,512) W projekcie wygodniej, zamiast częstotliwością unormowaną posługiwać się wartościami bezwzględnymi wyrażonymi w Hercach. Sekwencja poleceń w środowisku Matlaba może być następująca: ROZDZIAŁ 7. FILTRY CYFROWE f s = 1000; f0 = 200; N = 64; h = f i r 1 (N, f 0 / ( f s / 2 ) ) ; freqz (h ,1 ,512 , f s ) 130 % c z ę s t o t l i w o ś ć próbkowania [ Hz ] % częstotl i wość graniczna % r zą d f i l t r u Podając częstotliwość próbkowania funkcji freqz wykres będzie wyskalowany w Hercach. Do zaprojektowania filtru pasmowozaporowego należy użyć funkcji fir1 z parametrami: h = f i r 1 (N , [ f 1 f 2 ] . / ( f s / 2 ) , ’ s to p ’ ) gdzie wektor częstotliwości granicznych f1 (dolnej) i f2 (górnej) jest normalizowany do połowy częstotliwości próbkowania. Jeśli założenia projektowe narzucają maksymalny poziom zafalowań i minimalne tłumienie w paśmie zaporowym wówczas korzystne jest użycie parametrycznego okna Kaisera. Matlab oferuje nam funkcję kaiserord zwracającą parametry β i N . Zaprojektujmy filtr o paśmie przepustowym od 0 do 200Hz z maksymalnymi zafalowaniami 5% i tłumieniu 40dB przy częstotliwości 300Hz. Częstotliwość próbkowania to 1000Hz. fs dp As f1 f2 = = = = = 1000; 0.05; 40; 200; 300; % % % % % c z ę s t o t l i w o ś ć próbkowania [ Hz ] z a f a l o w a n i a w paśmie przepustowym (%) t ł u m i e n i e w paśmie zaporowym (dB) c z ę s t o t l i w o ś ć d o l n a 1 [ Hz ] c z ę s t o t l i w o ś ć d o l n a 2 [ Hz ] mags = [ 1 0 ] ; ds = 10^(−As / 2 0 ) ; % przeliczamy z decybeli d ev s = [ dp ds ] ; [ N,Wn, beta , f t y p e ] = k a i s e r o r d ( [ f 1 f 2 ] , mags , devs , f s ) ; h = f i r 1 (N,Wn, f t y p e , k a i s e r (N+1 , b eta ) ) ; freqz (h ,1 ,512 , f s ) d i s p ( [ ’ b eta = ’ num2str ( b eta ) ’ N = ’ num2str (N ) ] ) Zadanie. Zaprojektuj filtr dolnoprzepustowy o paśmie 15kHz i nierównomierności 5% oraz tłumieniu 65dB przy częstotliwości 16kHz. Częstotliwość próbkowania wynosi 48kHz. ROZDZIAŁ 7. FILTRY CYFROWE 7.5.2 131 Metoda próbkowania w dziedzinie częstotliwości Do projektowania odpowiedzi impulsowej tą metodą przewidziana jest funkcja fir2. Podaje się jej parametry po kolei: rząd filtru, wektor punktów częstotliwości i wektor wartości amplitud w tych punktach. Przykładowy program: f s = 1000; f0 = 400; N = 30; % c z ę s t o t l i w o ś ć próbkowania [ Hz ] % częstotl i wość graniczna % r zą d f = [0 f0 / fs f0 / fs 1 ] ; % wektor punktów c z ę s t o t l i w o ś c i m = [1 1 0 0 ]; % wektor a m p l i tu d h = f i r 2 (N, f ,m) ; [ H,w ] = f r e q z ( h , 1 , 5 1 2 ) ; p l o t ( f s /2∗w/ pi , 2 0 ∗ l o g 1 0 ( abs (H) ) ) g r i d on Wektor f może być dłuższy, czyli zawierać więcej punktów. Każdemu z tych punktów częstotliwości musi odpowiadać wartość amplitudy (wektor m). W ten sposób określa się kształt charakterystyki amplitudowo-częstotliwościowej. W przykładzie pokazano również w jaki sposób można przypisać zwracane wartości funkcji freqz do wektorów - odpowiedzi częstotliwościowej (H, zespolone) i częstotliwości (w), aby wykorzystać te dane do dalszych obliczeń lub prezentacji danych. Zadanie. Zaprojektuj filtr o paśmie przepustowym od 300Hz do 2, 5kHz sygnału spróbkowanego z częstotliwością 8kHz. Porównaj charakterystyki dla kilku wybranych wartości N . 7.5.3 Metoda Remeza Projektowanie filtrów metodą Remeza (algorytmem Parks-McClellan’a) zapewnia funkcja firpm. Kolejność i znaczenie parametrów jest bardzo podobne jak w funkcji fir2, przy czym wartości w wektorze częstotliwości i amplitudy podaje się parami tworząc przedziały zmienności charakterystyki amplitudowoczęstotliwościowej. Zależność pomiędzy wektorem częstotliwości i amplitudy pokazano na rysunku 7.15 (rysunek zaczerpnięty z pliku pomocy programu Matlab). Zadanie. Zbadaj charakterystykę amplitudowo-częstotliwościową filtru o charakterystyce zadanej jak na rysunku 7.15. ROZDZIAŁ 7. FILTRY CYFROWE 132 1 0.9 0.8 0.7 |H(Ω)| 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1 Ω/π Rysunek 7.15: Zasada zadawania charakterystyki częstotliwościowej w funkcji firpm 7.6 7.6.1 Filtry IIR Wprowadzenie Filtry o nieskończonej odpowiedzi impulsowej, inaczej zwane rekursywnymi, znacznie różnią się od filtrów FIR. Przede wszystkim zapewniają dużą stromość charakterystyk amplitudowo-częstotliwościowych przy dużo mniejszej liczbie współczynników wprowadzając równocześnie mniejsze opóźnienie. Pamiętajmy - mniejsza liczba współczynników to mniejsza liczba mnożeń! Niestety ich charakterystyka fazowo-częstotliwościowa jest nieliniowa - filtr wprowadza niejednakowe opóźnienia dla różnych częstotliwości, co powoduje zmianę kształtu sygnału wyjściowego. Należy również pamiętać, że istnienie sprzężenia zwrotnego (rys. 7.2) wiąże się z ryzykiem niestabilności filtru. Mimo, że filtry IIR są trudniejsze w projektowaniu i analizie, mamy do dyspozycji kilka metod ich projektowania. Najpopularniejsze z metod opisujemy w kolejnych podrozdziałach. ROZDZIAŁ 7. FILTRY CYFROWE 7.6.2 133 Projektowanie filtrów IIR metodą niezmienności odpowiedzi impulsowej Metoda ta polega na zaprojektowaniu filtru cyfrowego, którego odpowiedź impulsowa hd (n) jest spróbkowaną wersją ciągłej odpowiedzi filtru analogowego ha (t): hd (n) = Ts · ha (nTs ). (7.31) Mnożenie przez Ts uniezależnia wzmocnienie filtru cyfrowego od okresu próbkowania (Ts = f1s - okres próbkowania). Ponieważ metoda ta bazuje na prototypie filtru analogowego, musimy najpierw zaprojektować filtr analogowy i otrzymać pożądaną funkcję transmitancji w postaci: PM b m sm Ha (s) = Pm=0 . (7.32) N n n=0 an s Następnie musimy policzyć odwrotną transformatę Laplace’a w celu wyznaczenia odpowiedzi impulsowej. Nie zawsze to zadanie jest proste. W celu ułatwienia obliczeń istnieje możliwość rozłożenia transmitancji na sumę ułamków prostych: Ha (s) = N X k=1 Ak . s − pk (7.33) Odpowiedź impulsowa takiego układu dana jest wzorem: ha (t) = N X Ak epk t . (7.34) k=1 Korzystając z zależności (7.31) dostajemy następującą formułę na odpowiedź filtru cyfrowego: N X Ak epk nT . (7.35) hd (n) = Ts · k=1 Transmitancja filtru cyfrowego jest równa transformacie Z jego odpowiedzi impulsowej: N X Ak . (7.36) Hd (z) = 1 − epk Ts z −1 k=1 Należy mieć na uwadze, że próbkowanie sygnału powoduje powielenie widm amplitudowych w dziedzinie częstotliwości i może prowadzić do aliasingu. Dlatego też charakterystyka amplitudowa filtru cyfrowego jest przeważnie zniekształcona w stosunku do prototypu analogowego. ROZDZIAŁ 7. FILTRY CYFROWE 7.6.3 134 Projektowanie filtrów IIR metodą transformacji biliniowej Projektowanie filtrów metodą transformacji biliniowej (inaczej zwanej metodą Tustina), podobnie jak metodą niezmienności odpowiedzi impulsowej, polega na odwzorowaniu charakterystyki prototypu analogowego. Jej sporą zaletą jest przejście bezpośrednio z postaci transmitancji Laplace’a zaprojektowanego filtru analogowego do transmitancji cyfrowej bez stosowania transformacji Laplace’a jak i transformacji Z. Nie występuje także problem aliasingu wspomniany w poprzedniej metodzie. Transformację transmitancji filtru analogowego na cyfrowy dokonujemy przez podstawienie: 2 z−1 · , (7.37) s= Ts z + 1 gdzie Ts jest okresem próbkowania (Ts = f1s ) Mówimy wówczas, że został skonstruowany filtr cyfrowy taki, że: Hd (z) = Ha (s) = Ha ( 2 z−1 · ). Ts z + 1 Charakterystykę amplitudowo-częstotliwościową filtru analogowego określamy podstawiając s = jω, cyfrowego zaś podstawiając z = ejΩ , zatem na podstawie (7.37): 2 ejΩ − 1 s= · , Ts ejΩ + 1 wiedząc, że: ejx − e−jx ejx + e−jx sin x = cos x = , 2j 2 obliczamy: Ω Ω Ω jΩ j −j Ω ej 2 − e−j 2 / (2j) 2 e 2 e 2 −e 2 2 2 ejΩ − 1 =j · = · · Ω jω = Ω Ts ejΩ + 1 Ts ej Ω2 ej Ω2 + e−j Ω2 Ts ej 2 + e−j 2 /2 = j 2 sin Ω2 2 Ω · =j · tan , Ts cos Ω2 Ts 2 zatem związki między pulsacjami analogową ω i cyfrową Ω wyrażają się w następujący sposób: ω= 2 Ω · tan , Ts 2 Ω = 2 arctan ωTs , 2 (7.38) ROZDZIAŁ 7. FILTRY CYFROWE 135 Rysunek 7.16: Odwzorowanie płaszczyzny s w płaszczyznę z w transformacji biliniowej. Rysunek 7.17: Zależność pomiędzy częstotliwością analogową i cyfrową. gdzie Ω = 2πf /fs to unormowana pulsacja cyfrowa zmieniająca się w zakresie −π . . . π, a ω = 2πf to pulsacja analogowa o częstotliwości zmieniającej się od −∞ do ∞. Odwzorowanie płaszczyzny s w płaszczyznę z przedstawia rysunek 7.16. W szczególności zaznaczono, że wnętrze koła jednostkowego jest odwzorowaniem lewej półpłaszczyzny s. Rysunek 7.17 pokazuje nieliniową zależność częstotliwości analogowej i cyfrowej w tym przekształceniu. Zaprojektowanie filtru tą metodą polega na: • określeniu typu filtru analogowego i jego transmitancji • określeniu pulsacji granicznych filtru cyfrowego i przeliczeniu ich na pulsacje ’analogowe’ (wzór 7.38), • wyznaczeniu transmitancji cyfrowej przez podstawienie (wzór 7.37), • odczytaniu współczynników an i bm z postaci transmitancji. ROZDZIAŁ 7. FILTRY CYFROWE 136 Przykład. Zaprojektujmy filtr dolnoprzepustowy Czebyszewa, drugiego rzędu, o częstotliwości granicznej 100Hz i nierównomierności charakterystyki w paśmie przepustowym ≤ 1dB. Częstotliwość próbkowania w systemie cyfrowym wynosi fs = 1kHz. Transmitancja prototypu analogowego: Ha (s) = s2 a , + bs + c a = 414949 b = 713, 351 c = 465580. Wykonujemy podstawienie (wzór 7.37): Hd (z) = = = = a 2 1−z −1 Ts 1+z −1 2 Ts 2 2 + b T2s 1−z 1+z −1 + c % 2 a 1 + z −1 −1 2 2 (1 − z −1 ) + b T2s (1 − z −1 ) (1 + z −1 ) + c (1 + z −1 ) % a 1 + 2z −1 + 2z −2 2 2 2 2 2 2 2 2 −1 + + b + c + 2c − 2 z − b + c z −2 Ts Ts Ts Ts Ts % a 1 + 2z −1 + 2z −2 2 ( T2s ) +b T2s +c . 2 2c−2( 2 ) ( 2 )2 −b 2 +c 1 + 2 2 Ts2 z −1 + T2s 2 T2s z −2 ( Ts ) +b Ts +c ( Ts ) +b Ts +c Podstawiając dane numeryczne: Hd (z) = 0, 0704224 + 0, 140844z −1 + 0, 0704224z −2 . 1 − 1, 19967z −1 + 0, 515738z −2 Współczynniki filtru IIR: b0 = 0, 0704224 b1 = 0, 140844 a1 = 1, 19967 . b2 = 0, 0704224 a2 = 0, 515738 Zadanie. Zaprojektuj metodą transformacji biliniowej cyfrowy filtr dolnoprzepustowy o charakterystyce Butterwortha pierwszego rzędu i częstotliwości granicznej 8kHz. Częstotliwość próbkowania: 25kHz. ROZDZIAŁ 7. FILTRY CYFROWE 7.6.4 137 Projektowanie filtrów IIR metodami iteracyjnymi Użycie komputera umożliwia projektowanie filtrów na wiele innych sposobów. Na przykład w Signal Processing Toolbox Matlaba znajdziemy funkcję (yulewalk) projektowania w zasadzie dowolnego kształtu charakterystyki amplitudowoczęstotliwościowej. Działa ona na zasadzie minimalizacji wskaźnika jakości zdefiniowanego w następujący sposób: E= K X % jΩ % jΩ 2 Hp e k − H e k , (7.39) k=1 gdzie Hp to projektowana charakterystyka filtru zadana dla K pulsacji Ωk . Minimalizując funkcję (7.39) uzyskujemy optymalne współczynniki transmitancji. Więcej o metodach projektowania filtrów cyfrowych można znaleźć w [3]. 7.7 Projektowanie filtrów IIR w Matlabie 7.7.1 Metoda niezmienności odpowiedzi impulsowej Metoda ta jest rzadziej stosowana niż opisywane w kolejnych podrozdziałach. Przedstawimy tu gotowe rozwiązanie w postaci funkcji impinvar pakietu Signal Processing Toolbox. Na początek należy zaprojektować filtr analogowy, którego transmitancja (w postaci wektorów ze współczynnikami licznika i mianownika) jest parametrem wejściowym funkcji impinvar. W wielkim uproszczeniu filtr można zaprojektować w dwóch linijkach: [ b , a ] = butter (4 , 0. 3 , ’ s ’ ) ; [ bz , az ] = i m p i n v a r ( b , a , 1 0 ) ; Poniżej przedstawiamy przykładowy skrypt porównujący odpowiedzi impulsowe i charakterystyki amplitudowo-częstotliwościowe filtru analogowego i zaprojektowanego metodą niezmienności odpowiedzi impulsowej filtru cyfrowego. f s = 1000; fg = 100; R = 1; N = 2; TMAX = 0 . 0 2 5 ; % r i p p l e , dB % czas obserwacji Ts=1/ f s ; wg = 2∗ p i ∗ f g ; % p u l s a c j a g r a n i c z n a analogowego ROZDZIAŁ 7. FILTRY CYFROWE wa = 2∗ p i ∗ [ 0 : f s / 1 0 0 0 : f s / 2 ] ; wd = ( 0 : 1 / f s : 1 ) ; 138 % wektor p u l s a c j i a n a l o g o w e j % wektor p u l s a c j i c y f r o w e j [ ba , aa ]= cheby1 (N, R, wg , ’ s ’ ) ; % projekt f i l t r u f i gu r e (1) clf h o l d on % odpowiedź impulsowa f i l t r u analogowego i m p u l s e ( ba , aa ,TMAX) ; % pr oj ekt f i l t r u cyfrowego [ bd , ad ] = i m p i n v a r ( ba , aa , f s ) ; g = fs ; % s k a l o w a n i e a m p l i tu d y % odpowiedź impulsowa f i l t r u c y f r o w e g o impz ( g ∗bd , ad , [ ] , f s ) ; legend ( [ ’ h( t ) ’ ; ’h(n ) ’ ] ) ; hold o f f f i gu r e (2) clf h o l d on % c h a r a k t e r y s t y k a amplitudowo−c z ę s t o t l i w o ś c i o w a % f i l t r u analogoweg o [ Ha , w]= f r e q s ( ba , aa , wa ) ; p l o t ( wa / (2 ∗ p i ) , 2 0 ∗ l o g 1 0 ( abs (Ha ) ) ) ; % i f i l t r u cyfrowego [ Hd , wd]= f r e q z ( bd , ad , 5 1 2 ) ; p l o t (wd/ (2 ∗ p i )∗ f s , 2 0 ∗ l o g 1 0 ( abs (Hd ) ) , ’ : ’ ) ; x l a b e l ( ’ f [ Hz ] ’ ) ; y l a b e l ( ’ |H| [ dB ] ’ ) ; l e g e n d ( [ ’H( s ) ’ ; ’H( z ) ’ ] ) ; a x i s ( [ 0 500 −40 5 ] ) ; g r i d on 7.7.2 Metoda transformacji biliniowej Matlab daje kilka możliwości zaprojektowania filtrów tą metodą. Oto skrypt pokazujący możliwie dużo etapów obliczeniowych, czyli obliczający współczynniki filtru IIR „na piechotę”: f s = 1000; fg = 100; R = 1; % c z ę s t o t l i w o ś ć próbkowania % częstotl i wość graniczna f i l t r u % z a f a l o w a n i a , dB ROZDZIAŁ 7. FILTRY CYFROWE Ts=1/ f s ; 139 % o b l i cza m y o k r e s próbkowania wga = 2/ Ts∗ tan ( ( 2 ∗ p i ∗ f g / f s ) / 2 ) ; f g a = wga / (2 ∗ p i ) ; % p u l s a c j a g r a n i c z n a f . analogoweg o % c z ę s t o t l i w o ś ć graniczna f . analog . wa = 2∗ p i ∗ [ 0 : f s / 1 0 0 0 : f s / 2 ] ; wd = ( 0 : 1 / f s : 1 ) ; % wektor p u l s a c j i a n a l o g o w e j % wektor p u l s a c j i c y f r o w e j % p r o j e k t f i l t r u analogowego ( Czebyszewa , 2−go r zęd u ) [ ba , aa ]= cheby1 ( 2 ,R, wga , ’ s ’ ) ; % c h a r a k t e r y s t y k a c z ę s t o t l i w o ś c i o w a f . analogoweg o f i gu r e (1) [ Ha , w]= f r e q s ( ba , aa , wa ) ; h o l d on p l o t ( wa / (2 ∗ p i ) , 2 0 ∗ l o g 1 0 ( abs (Ha ) ) ) ; p r i n t s y s ( ba , aa , ’ s ’ ) % p o s t a ć t r a n s m i t a n c j i ( zmienna s ) a=ba ( 3 ) ; b=aa ( 2 ) ; c=aa ( 3 ) ; % p o d s t a w i e n i e wg p r zy k ł a d u TS2 = (2 / Ts ) ^ 2 ; % podstawienie upraszczające % o b l i c z e n i e współczynników f i l t r u c y f r o w e g o b0 = a / ( TS2+b ∗2/ Ts+c ) ; b1 = 2∗ a / ( TS2+b ∗2/ Ts+c ) ; b2 = a / ( TS2+b ∗2/ Ts+c ) ; a0 = 1 ; a1 = (2 ∗ c −2∗TS2 ) / ( TS2+b ∗2/ Ts+c ) ; a2 = ( TS2−b ∗2/ Ts+c ) / ( TS2+b ∗2/ Ts+c ) ; % wektor bd = [ b0 % wektor ad = [ a0 współczynników ( l i c z n i k t r a n s m i t a n c j i z ) b1 b2 ] ; współczynników ( mianownik t r a n s m i t a n c j i z ) a1 a2 ] ; % p o s t a ć t r a n s m i t a n c j i c y f r o w e j ( zmienna z ) p r i n t s y s ( bd , ad , ’ z ’ ) % charakterystyka częs totl i w oś ci ow a f . cyfrowego [ Hd , wd]= f r e q z ( bd , ad , 5 1 2 ) ; p l o t (wd/ (2 ∗ p i )∗ f s , 2 0 ∗ l o g 1 0 ( abs (Hd ) ) , ’ : ’ ) ; x l a b e l ( ’ f [ Hz ] ’ ) ; y l a b e l ( ’ |H| [ dB ] ’ ) ; l e g e n d ( [ ’H( s ) ’ ; ’H( z ) ’ ] ) ; a x i s ( [ 0 500 −40 5 ] ) ; g r i d on ROZDZIAŁ 7. FILTRY CYFROWE 140 Oznaczenia zmiennych a, b, c, b0, b1, b2, a1, a2 pokrywają się z przykładem obliczeniowym zawartym w podrozdziale 7.6.3. Pominęliśmy tu etap projektowania od podstaw prototypu analogowego, ponieważ było to przedmiotem rozdziału 6. Użyliśmy funkcji Matlaba - cheby1, której podajemy częstotliwość graniczną przeliczoną według wzoru 7.38. W wektorach bd i ad znajdują się zebrane współczynniki odpowiednio licznika i mianownika transmitancji filtru cyfrowego, poukładane w kolejności od najwyższej do najniższej potęgi zmiennej z. Należy zauważyć, że struktura programu nie pozwala dokonać obliczeń dla filtru innego rzędu niż 2. O funkcji freqz napisaliśmy przy okazji filtrów FIR (7.5.1). Pierwszym, dużym ułatwieniem jest użycie funkcji bilinear. Funkcji tej podajemy współczynniki licznika i mianownika transmitancji filtru analogowego oraz częstotliwość próbkowania. W wyniku otrzymujemy współczynniki licznika i mianownika transmitancji układu cyfrowego. Zatem nasz kod znacząco się skróci, ponieważ tuż po obliczeniu ba, aa filtru analogowego można obliczyć bd, ad: [ ba , aa ]= cheby1 ( 2 ,R, wga , ’ s ’ ) ; [ bd , ad ]= b i l i n e a r ( ba , aa , f s ) ; % p r o j e k t f i l t r u analogowe g o % współczynniki f i l t r u cyfrowego Co więcej, nie jesteśmy ograniczeni co do stopnia wielomianów licznika i mianownika, zatem bez problemów możemy obliczać transmitancje filtrów dowolnych rzędów. Kolejnym ułatwieniem jest użycie wprost funkcji cheby1 (butter i pozostałych) do obliczenia współczynników filtru cyfrowego. W naszym przykładzie byłaby to linijka: [ bd , ad ]= cheby1 (N, R, wga ) Jak widać, brakuje parametru ’s’, co Matlab traktuje jako chęć zaprojektowania filtru cyfrowego z użyciem transformacji biliniowej. 7.7.3 Metoda Yule’a-Walkera Do zaprojektowania filtru tą metodą służy funkcja yulewalk. Jej parametrami są rząd filtru, oraz dwa wektory kształtujące charakterystykę amplitudowoczęstotliwościową. Wektor częstotliwości zawiera współrzędną częstotliwości dla punktów, a wektor amplitud - wartości modułu transmitancji dla wymienionych częstotliwości. Zakres częstotliwości to 0 . . . 1, przy czym 1 oznacza połowę częstotliwości próbkowania. Poniżej znajduje się przykładowy projekt dolnoprzepustowego filtru IIR ósmego rzędu o częstotliwości granicznej 0, 3 · fs . ROZDZIAŁ 7. FILTRY CYFROWE 141 f = [0 0.6 0.6 1 ] ; m = [1 1 0 0 ]; [ b , a ] = y u l e w a l k ( 8 , f ,m) ; [ h ,w ] = f r e q z ( b , a , 1 2 8 ) ; p l o t ( f ,m,w/ pi , abs ( h ) , ’ − − ’) l e g e n d ( ’ i d e a l n a ’ , ’ y u l ew a l k ’ ) Zadanie. Zaprojektuj metodą Yule’a-Walkera filtr pasmowoprzepustowy o częstotliwościach fd = 300Hz, fg = 2200Hz, czwartego rzędu. Częstotliwość próbkowania jest równa 8kHz. Przedstaw jego charakterystykę amplitudowo-częstotliwościową w skali liniowej na tle charakterystyki projektowanej (’idealnej’), na drugim wykresie przedstaw tę charakterystykę w skali decybelowej. 7.8 7.8.1 Proces filtracji cyfrowej Struktury filtrów Zasadniczo algorytm filtracji opisuje równanie różnicowe (7.16), które tu powtórzymy: M N X X y(n) = bm x(n − m) − ak y(n − k). (7.40) m=0 k=1 Schemat blokowy tego algorytmu przedstawiliśmy już na rysunku 7.2b. Jest to tak zwana postać bezpośrednia typu I. Dzięki liniowości układów można zamienić kolejność struktur FIR i IIR, w wyniku czego powstaje układ postaci bezpośredniej typu II. Oba układy dla porównania przedstawiamy na rysunku 7.18 (dla M=N=2). Oczywiście, jeśli budujemy filtr tylko FIR, współczynniki a1 . . . an są równe 0 i układ sprowadza się do przedstawionego na rysunku 7.1. Można budować również inne postacie. Wykorzystując zasady transpozycji elementów filtrów FIR i IIR, przedstawione na rysunku 7.19, uzyskujemy schematy jak na rysunkach 7.20. Zauważmy, że w postaciach II filtrów ulega redukcji liczba komórek pamiętających (bloków z −1 ). W przypadku filtrów FIR o liniowej fazie odpowiedź impulsowa, a zatem współczynniki filtru, są symetryczne wokół próbki środkowej, to znaczy spełniają równanie: h(m) = h(M − m). ROZDZIAŁ 7. FILTRY CYFROWE 142 (a) Postać bezpośrednia typu I. (b) Postać bezpośrednia typu II. Rysunek 7.18: Postacie bezpośrednie realizacji algorytmu 7.40. Rysunek 7.19: Transpozycje filtrów cyfrowych. Wykorzystując ten fakt możemy zmniejszyć o połowę (lub prawie o połowę, dla M nieparzystego) liczbę mnożeń realizując filtr w postaci przedstawionej na rysunku 7.21. Współistnienie różnych struktur filtrów ma swoje podłoże w stosowanych uproszczeniach, ograniczeniach arytmetyki danego rozwiązania sprzętowego jak i dopasowania obliczeniowego do współpracujących bezpośrednio z filtrem układów przetwarzania [3, 4]. Na przykład filtr w postaci bezpośredniej typu I jest najlepszym rozwiązaniem w przypadku stałoprzecinkowego procesora sygnałowego, ze względu na istnienie jednego punktu sumacyjnego (procesory DSP posiadają dłuższy akumulator pozwalający na chwilowe przepełnienie). Natomiast postać bezpośrednia typu II jest lepsza dla procesora zmiennoprzecinkowego, gdyż oszczędza się na pamięci. Dodatkowe przekształcenie do postaci transponowanej typu II poprawia dokładność obliczeń zmiennoprzecinkowych z ROZDZIAŁ 7. FILTRY CYFROWE 143 (a) Transponowana postać filtru typu I. (b) Transponowana postać filtru typu II. Rysunek 7.20: Transponowane wersje filtru IIR. uwagi na sumowanie zbliżonych wartości. Filtry IIR wyższych rzędów, ze względu na istnienie sprzężenia zwrotnego mogą mieć problemy ze stabilnością, przepełnieniami arytmetycznymi i wymagają starannego projektowania. Dlatego też często buduje się filtry IIR z sekcji układów drugiego rzędu, tzw. sekcji bikwadratowych (ang. biquad), a dla wyższych rzędów łączy te sekcje w kaskady (jeden za drugim). Niestety, dla niskich częstotliwości filtracji sekcje bikwadratowe są bardziej podatne na błędy kwantyzacji, głównie od współczynników a1 i a2 oraz pamięci. 7.8.2 Filtracja sygnałów w Matlabie Matlab posiada bardzo proste narzędzie do cyfrowej filtracji sygnału w postaci funkcji filter. Wystarczy funkcji przekazać takie parametry jak wektor współczynników bm , ak i sygnał wejściowy. Na wyjściu otrzymujemy przefiltrowany sygnał w postaci wektora. 7.8.2.1 Przykład 1 Pokażmy jednak na przykładzie więcej szczegółów. Oto skrypt Matlaba generujący sygnał złożony z sygnałów sinusoidalnych o dwóch różnych częstotliwościach. Następnie sygnał jest filtrowany za pomocą dolnoprzepustowego filtru FIR zaprojektowanego tak, aby pozbyć się drugiej - wyższej częstotliwosci. Algorytm filtracji jest wykonywany według schematu pokazanego na rysunku 7.1. ROZDZIAŁ 7. FILTRY CYFROWE 144 (a) M=6 (parzyste). (b) M=7 (nieparzyste). Rysunek 7.21: Redukcja liczby mnożeń w filtrze FIR o liniowej fazie. ROZDZIAŁ 7. FILTRY CYFROWE 145 Na koniec dokonaliśmy porównania naszej metody „na piechotę” z funkcją filter. Okazuje się, że wyniki są praktycznie identyczne. f s =1000; L=250; A1=5; f x 1 =10; A2=3; f x 2 =131; M=20; f g =50; % % % % % % % % c z ę s t o t l i w o ś ć próbkowania l i c z b a próbek a m p l i tu d a 1 częstotliwość 1 a m p l i tu d a 2 częstotliwość 2 długość f i l t r u częstotl i wość graniczna f i l t r u wg = 2∗ f g / f s ; dt=1/ f s ; t=dt ∗ ( 0 : L−1); % p r z e l i c z e n i e na c z ę s t o t l i w o ś ć zn o r m a l i zo w a n ą % o k r e s próbkowania % wektor c z a s u % z ł o ż o n y s y g n a ł tes to w y : x=A1∗ s i n (2 ∗ p i ∗ f x 1 ∗ t )+A2∗ s i n (2 ∗ p i ∗ f x 2 ∗ t ) ; f i gu r e (1) plot ( t , x ) ; grid ; ylabel ( ’x( t ) ’) ; xlabel ( ’ t [ s ] ’ ) ; t i t l e ( ’ Sygnał w ej ś ci o w y x ( t ) ’ ) %p r o j e k t d o l n o p r zep u s t o w e g o f i l t r u h = f i r 1 (M−1 ,wg , hanning (M) ) ; f i r z oknem hanninga b u f = z e r o s ( 1 ,M) ; % wyzerowanie b u f o r a o d ł u g o ś c i M clear y % c z y s z c z e n i e c i ą g u w y j ś ci o w eg o for n = 1:L % p r z e s u n i ę c i e próbek w b u f o r z e i d o d a n i e nowej b u f = [ x ( n ) b u f ( 1 :M− 1 ) ] ; y ( n ) = sum ( b u f . ∗ hr ) ; % mnożenie z dodawaniem end f i gu r e (2) % s y g n a ł po f i l t r a c j i : plot ( t , y ) ; grid ; ylabel ( ’y( t ) ’) ; xlabel ( ’ t [ s ] ’ ) ; t i t l e ( ’ Sygnał p r z e f i l t r o w a n y y ( t ) ’ ) y2 = f i l t e r ( h , 1 , x ) ; % filtracja f i gu r e (3) p l o t ( t , y2−y ) ; g r i d ; y l a b e l ( ’ y2 ( t )−y ( t ) ’ ) ; x l a b e l ( ’ t [ s ] ’ ) ; t i t l e ( ’ Porównanie z f u n k c j ą " f i l t e r " ’ ) 7.8.2.2 Przykład 2 Drugi przykładowy skrypt pozwala zaobserwować skuteczność filtracji. Sygnałem wejściowym jest ten sam co wyżej, złożony z dwóch przebiegów sinusoidal- ROZDZIAŁ 7. FILTRY CYFROWE 146 nych o częstotliwościach 10Hz i 131Hz i o różnych amplitudach. Tym razem zaprojektowaliśmy filtr IIR o charakterystyce Butterwortha, piątego rzędu, o częstotliwości granicznej 50Hz. Filtracja odbywa się za pomocą funkcji filter. Na koniec, za pomocą transformaty DFT, sporządzany jest wykres widma sygnału wejściowego i przefiltrowanego, na którym widać, że składowa sygnału o częstotliwości 131Hz została wytłumiona. f s =1000; L=250; A1=5; f x 1 =10; A2=3; f x 2 =131; N=5; f g =50; % % % % % % % % wg = 2∗ f g / f s ; dt=1/ f s ; t=dt ∗ ( 0 : L−1); częstotliwość l i c z b a próbek a m p l i tu d a 1 częstotliwość a m p l i tu d a 2 częstotliwość r zą d f i l t r u częstotliwość próbkowania 1 2 graniczna f i l t r u % p r z e l i c z e n i e na c z ę s t o t l i w o ś ć zn o r m a l i zo w a n ą % o k r e s próbkowania % wektor c z a s u % z ł o ż o n y s y g n a ł tes to w y : x=A1∗ s i n (2 ∗ p i ∗ f x 1 ∗ t )+A2∗ s i n (2 ∗ p i ∗ f x 2 ∗ t ) ; f i gu r e (1) plot ( t , x ) ; grid ; ylabel ( ’x( t ) ’) ; xlabel ( ’ t [ s ] ’ ) ; t i t l e ( ’ Sygnał w ej ś ci o w y x ( t ) ’ ) [ b , a ]= b u t t e r (N, wg ) ; % projekt f i l t r u y= f i l t e r ( b , a , x ) ; % filtracja % s y g n a ł po f i l t r a c j i : f i gu r e (2) plot ( t , y ) ; grid ; ylabel ( ’y( t ) ’) ; xlabel ( ’ t [ s ] ’ ) ; t i t l e ( ’ Sygnał p r z e f i l t r o w a n y y ( t ) ’ ) % DFT powyższych sygnałów : NFFT = 2^ nextpow2 (L ) ; % Długość 2^ x X = f f t ( x ,NFFT)/ L ; Y = f f t ( y ,NFFT)/ L ; f = f s /2∗ l i n s p a c e ( 0 , 1 ,NFFT/ 2 + 1 ); % Rysowanie spektrum c z ę s t o t l i w o ś c i : f i gu r e (3) p l o t ( f , 2 ∗ abs (X( 1 :NFFT/ 2 + 1 ) ) , ’ r −−’, f , 2 ∗ abs (Y( 1 :NFFT/ 2 + 1 ) ) , ’ b − ’) t i t l e ( ’ Spektrum c z ę s t o t l i w o ś c i o w e sygnałów x ( t ) i y ( t ) ’ ) x l a b e l ( ’ f [ Hz ] ’ ) y l a b e l ( ’ Amplituda ’ ) l e g e n d ( ’ |X( f ) | ’ , ’ | Y( f ) | ’ ) g r i d on ROZDZIAŁ 7. FILTRY CYFROWE 7.8.2.3 147 Przykład 3 Oczywiście jest również możliwość filtracji sygnałów zewnętrznych, na przykład zawartych w pliku dźwiękowym w formacie wav. Kolejny skrypt wczytuje do wektora x nagranie dźwiękowe wraz z informacją o liczbie kanałów i wielkości próbek w bitach. Zaprojektowany jest filtr środkowoprzepustowy metodą Yule’a Walkera tłumiący wszystkie częstotliwości poniżej 1, 6kHz i powyżej 5kHz. Jego charakterystykę amplitudowo-częstotliwościową pokazano za pomocą funkcji freqz. Jeśli filtrujemy sygnał mowy lub muzyczny „brakuje” nam rozdzielczości dla niskich częstotliwości szczególnie, jeśli f1 miałoby być równe na przykład 500Hz. Wówczas szczególnie przydatna jest skala logarytmiczna osi częstotliwości. Dlatego można zamienić odpowiednie komentarze w linijkach poczynając od F = logspace. Następnie jest pokazane widmo sygnału przed i po filtracji. Na koniec oba nagrania zostają odtworzone. clear all ; clf ; f1 = 1600; f2 = 5000; N = 15; % c z ę s t o t l i w o ś ć dolna % c z ę s t o t l i w o ś ć górna % r zą d f i l t r u [ x , f s , n b i t s ]= wavread ( ’ r e p u b l . wav ’ ) ; [ n ,m]= s i z e ( x ) ; i f m==2, x=x ( : , 1 ) + x ( : , 2 ) ; end L = n; % d ł u g o ś ć wektora danych x=x/max( abs ( x ) + 0 . 0 0 1 ) ; % n o r m a l i z a c j a danych d i s p ( [ ’ b i tó w na próbkę = ’ num2str ( n b i t s ) ] ) ; d i s p ( [ ’ f s = ’ num2str ( f s ) ’ Hz ’ ] ) ; d i s p ( [ ’ d ł u g o ś ć = ’ num2str (L ) ’ próbek ’ ] ) ; F1 = 2∗ f 1 / f s ; F2 = 2∗ f 2 / f s ; % normalizacja c z ę s t o t l i w o ś c i granicznych % do połowy c z ę s t o t l i w o ś c i próbkowania % wektory k s z t a ł t u j ą c e pasmo i p r o j e k t f i l t r u f = [ 0 F1 F1 F2 F2 1 ] ; m = [0 0 1 1 0 0]; [ b , a ] = y u l e w a l k (N, f ,m) ; % charakterystyka f i l t r u % ( oś c z ę s t o t l i w o ś c i l i n i o w a lub logarytmiczna ) figure (1); %F = l o g s p a c e ( l o g 1 0 ( 1 0 ) , l o g 1 0 ( f s / 2 ) , 1 2 8 ) ; % ch−ka F = linspace (0 ,( fs /2) ,128); % ch−ka H = freqz (b , a ,F, f s ) ; %s e m i l o g x (F , 20∗ l o g 1 0 ( abs (H) ) ) % ch−ka p l o t (F , 20∗ l o g 1 0 ( abs (H) ) ) % ch−ka log lin log lin ROZDZIAŁ 7. FILTRY CYFROWE g r i d on %f i l t r a c j a y = f i l t e r (b , a , x ) ; y = y /max ( abs ( y ) + 0 . 0 0 1 ) ; % n o r m a l i z a c j a po f i l t r a c j i % DFT powyższych sygnałów : NFFT = 2^ nextpow2 (L ) ; % Długość 2^ x X = f f t ( x ,NFFT)/ L ; Y = f f t ( y ,NFFT)/ L ; f = f s /2∗ l i n s p a c e ( 0 , 1 ,NFFT/ 2 + 1 ); % r y s o w a n i e spektrum c z ę s t o t l i w o ś c i : f i gu r e (2) p l o t ( f , 2 ∗ abs (X( 1 :NFFT/ 2 + 1 ) ) , ’ r − ’ , f , 2 ∗ abs (Y( 1 :NFFT/ 2 + 1 ) ) , ’ b − ’) t i t l e ( ’ Spektrum c z ę s t o t l i w o ś c i o w e sygnałów x ( t ) i y ( t ) ’ ) x l a b e l ( ’ f [ Hz ] ’ ) y l a b e l ( ’ Amplituda ’ ) l e g e n d ( ’ |X( f ) | ’ , ’ | Y( f ) | ’ ) g r i d on % o d t w o r z e n i e dźwięków sound ( x , f s ) ; sound ( y , f s ) ; 148 Bibliografia [1] Izydorczyk J., Płonka G., Tyma G.: „Teoria sygnałów. Wstęp (teoria, przykłady zadania)”, Wyd. Helion, Gliwice, 1999. [2] Lyons R.G.: „Wprowadzenie do cyfrowego przetwarzania sygnałów”, WKiŁ, 1999. [3] Oppenheim A.V., Schafer R.W.: „Cyfrowe przetwarzanie sygnałów”, WKiŁ, 1979. [4] Zieliński T.: „Cyfrowe przetwarzanie sygnałów. Od teorii do zastosowań”, WKiŁ, 2005 („Od teorii do cyfrowego przetwarzania sygnałów”, Wydział EAIiE AGH, 2002). [5] Steven W. S.: „The Scientist and Engineer’s Guide to Digital Signal Processing”, California Technical Publishing, 1997, [dostęp: 30 września 2011], <http://www.dspguide.com>. [6] Szabatin J., „Podstawy przetwarzania sygnałów”, Warszawa 2003. [7] Białasiewicz T., „Falki i aproksymacje”, WNT, Warszawa 2000. [8] Schwartz L., „Kurs analizy matematycznej”, Tom I i II. PWN, Warszawa 1980. [9] Candes E., Romberg J., and Tao T., „Robust uncertainty principles: Exact signal reconstruction from highly incomplete frequency information”, IEEE Trans. on Information Theory, 52(2) pp. 489 - 509, 2006. [10] Donoho D., „Compressed sensing”, (IEEE Trans. on Information Theory, 52(4), pp. 1289 - 1306, 2006. 149 BIBLIOGRAFIA 150 [11] Candes E., Tao T., „Near optimal signal recovery from random projections: Universal encoding strategies?”, IEEE Trans. on Information Theory, 52, pp. 5406 - 5425, 2006. [12] Boufonos P., Romberg J., Baraniuk R., „Compressive Sensing, Theory and Applications”, (IEEE Int. Conf. on Acoustics, Speech, and Signal Processing (ICASSP), Las Vegas, Nevada, April 2008. [13] Shannon C.E.: „A mathematical theory of communication” Bell Syst. Techn. Journal, vol. 27, July 1948. [14] V. A. Kotelnikov V. A.: „On the carrying capacity of the ether and wire in telecommunications”, Material for the First All-Union Conference on Questions of Communication, Izd. Red. Upr. Svyazi RKKA, Moscow, 1933 (Russian). (english translation, PDF) [15] C. E. Shannon, „Communication in the presence of noise”, Proc. Institute of Radio Engineers, vol. 37, no. 1, pp. 10–21, Jan. 1949. Reprint as classic paper in: Proc. IEEE, vol. 86, no. 2, (Feb. 1998) [16] Herdegen A.: „Wykłady z algebry liniowej i geometrii”, Wydawnictwo Discepto, Kraków, 2005.