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:
 x3 · 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.

Podobne dokumenty