Podstawy Teorii Systemów, Sygnałów i Informacji Zakres zagadnień
Transkrypt
Podstawy Teorii Systemów, Sygnałów i Informacji Zakres zagadnień
Zakres zagadnień Podstawy Teorii Systemów, Sygnałów i Informacji DFT, FFT oraz DTTs (DCTs i DSTs) Adam Dąbrowski Politechnika Poznańska Wydział Informatyki i Zarządzania Katedra Sterowania i Inżynierii Systemów Pracownia Układów Elektronicznych i Przetwarzania Sygnałów 25 marca 2010 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 1 / 54 Definicja dyskretnej transformacji Fouriera DFT sygnału x(n), n = 0, 1, ..., N − 1, polega na obliczeniu próbek X (k) w tzw. dziedzinie częstotliwości X (k) = n=0 Odmiany DFT 3 „Motylek” dwupunktowej DFT 4 Twierdzenie Parsevala-Rayleigha dla DFT 5 Złożoność obliczeniowa bezpośrednio obliczanej DFT 6 Szybka transformacja Fouriera (FFT) 7 Rozmieszczenie próbek DFT na płaszczyźnie zespolonej 8 Rozkład sygnału na harmoniczne 9 Optyczna transformacja Fouriera 10 Obliczanie DFT w środowisku Matlab 11 Dwu- i wielowymiarowa DFT 12 Standardowa i optyczna transformata 2D DFT 13 Dyskretna transformacja cosinusowa (DCT) Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji X (k) = N−1 n=0 2π IDFT - inverse discrete Fourier transformation 2 / 54 x(n)WNkn , x(n) = 1 N−1 X (k)WN−nk N k=0 DFT / IDFT – wariant 2 (współczynnik 1/N występuje w DFT) X (k) = 1 N−1 x(n)WNkn , N n=0 x(n) = N−1 k=0 X (k)WN−nk √ DFT / IDFT – wariant 3 („sprawiedliwy” ze współczynnikami 1/ N) Przekształcenie odwrotne do DFT jest określone wzorem 1 N−1 X (k)WN−nk N k=0 1 N−1 X (k) = √ x(n)WNkn , N n=0 przy czym n = 0, 1, ..., N − 1. Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 DFT / IDFT – wariant 1 (współczynnik 1/N występuje w IDFT) x(n)WNkn , k = 0, 1, ..., N − 1 oraz WN = e−j N . Należy zauważyć, że założono okres próbkowania Ts = 1 i próbki sygnału zapisano jako x(n) zamiast x(nTs ). Można także pisać zamiennie xn i Xk . x(n) = Definicja dyskretnej transformacji Fouriera (DFT) 2 Odmiany dyskretnej transformacji Fouriera DFT - discrete Fourier transformation N−1 1 25 marca 2010 3 / 54 Dwupunktowa dyskretna transformacja Fouriera 1 N−1 x(n) = √ X (k)WN−nk N k=0 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 4 / 54 Graf („motylek”) dwupunktowej DFT – wariant 1 Przykład x(0) = 2 , x(1) = 1 , W2 = e−j 2π 2 = −1 x(0) DFT – wariant 1 X (0) = 1 x(n)(−1)0·n = 2 + 1 = 3 , X (1) = n=0 1 x(n)(−1)1·n = 2 − 1 = 1 n=0 DFT – wariant 2 1 3 1 1 X (0) = (2 + 1) = , X (1) = (2 − 1) = 2 2 2 2 x(1) u HH HH Hj HH HH H W20 = 1 u X (0) * W20 = 1 HH H HH 0 HH W2 = 1 HH H HH Hu X (1) u - W21 = −1 DFT – wariant 3 1 3 1 1 X (0) = √ (2 + 1) = √ , X (1) = √ (2 − 1) = √ 2 2 2 2 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 5 / 54 Twierdzenie Parsevala-Rayleigha dla DFT DFT – wariant 1 N−1 |x(n)|2 = n=0 1 N−1 |X (k)|2 N k=0 x(0) = 2 , x(1) = 1 , E = 22 + 12 = 4 + 1 = 5 , P = E /4 = 5/2 DFT – wariant 1 X (0) = 3 , X (1) = 1 , |X (0)|2 + |X (1)|2 = 32 + 12 = 9 + 1 = 10 = 2E DFT – wariant 2 N−1 1 1 N−1 |x(n)|2 = |X (k)|2 , PDC = |X (0)|2 E= N N n=0 k=0 DFT – wariant 3 X (0) = N−1 n=0 |x(n)|2 = N−1 3 1 X (0) = √ , X (1) = √ , |X (0)|2 +|X (1)|2 = 2 2 |X (k)|2 k=0 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 3 1 , X (1) = , |X (0)|2 + |X (1)|2 = 2 2 25 marca 2010 2 3 2 2 1 2 = 2 2 + 5 =P 2 DFT – wariant 3 (|X (k)|2 to widmowa gęstość energii) E= 6 / 54 Przykład DFT – wariant 2 (|X (k)|2 to widmowa gęstość mocy średniej a jednocześnie X (0) to składowa stała tj. składowa DC sygnału) P= 25 marca 2010 Sprawdzenie słuszności twierdzenia Parsevala-Rayleigha (brak „eleganckiej” interpretacji |X (k)|2 ) E= Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 7 / 54 3 √ 2 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 1 + √ 2 =5=E 25 marca 2010 8 / 54 Złożoność obliczeniowa DFT sygnału zespolonego Idea szybkiej transformacji Fouriera FFT (fast Fourier transformation) Dla zespolonego ciągu x(n) równanie DFT przyjmuje postać X (k) = N−1 n=0 [x(n)][WNkn ] − [x(n)][WNkn ] + +j [x(n)][WNkn ] + [x(n)][WNkn ] Równanie to pokazuje, że dla każdej wartości X (k) konieczne jest wykonanie 4N mnożeń rzeczywistych oraz 4N − 2 sumowań liczb rzeczywistych. Ponieważ konieczna jest znajomość wartości X (k) dla N różnych wartości k, więc bezpośrednie obliczenie dyskretnej transformaty Fouriera ciągu x(n) wymaga wykonania 4N 2 mnożeń liczb rzeczywistych oraz N(4N − 2) sumowań takich liczb, co odpowiada N 2 mnożeniom liczb zespolonych i N(N − 1) sumowaniom liczb zespolonych. Wniosek W systemach przetwarzania sygnałów obliczanie przekształcenia Fouriera odbywa się wielokrotnie. Duża złożoność obliczeniowa spowodowałaby więc znaczne opóźnienie działania systemu. O wiele bardziej efektywną metodą obliczania DFT są algorytmy szybkiej transformacji Fouriera (FFT– fast Fourier transformation). Jest to idealne rozwiązanie dla zastosowań wykorzystywanych w przetwarzaniu sygnałów. Złożoność obliczeniowa N-punktowej FFT zmniejsza się z N 2 do wielkości N × log N. Przykład Jeśli będziemy chcieli obliczyć transformatę 256-punktową (256 = 28 ), 2 liczba operacji zmaleje z około 28 = 216 = 65536 (w przypadku transformaty wyznaczonej bezpośrednio ze wzoru definicyjnego) do około 28 × 8 = 211 = 2048 (dla FFT). Złożoność obliczeniowa N-punktowej DFT jest proporcjonalna do N 2 . Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 9 / 54 Wyjaśnienie złożoności obliczeniowej FFT Załóżmy, że obliczamy N = DFT. Dekomponujemy ją sukcesywnie na przekształcenia o mniejszej liczbie punktów. Najpierw rozkładamy ją na dwa N/2-punktowe przekształcenia. Wskutek tego pojawia się końcowy etap obliczenia N próbek N-punktowej DFT (co wymaga N operacji – sumowań zespolonych). Liczbę operacji redukujemy z N(N − 1) do 2 N 2 N −1 2 +N =N N 4 N N −1 + 4 2 +N =N 10 / 54 N −1 +N . 2 N − 1 + 2N 4 25 marca 2010 X (k) = 11 / 54 FFT z podpróbkowaniem czasu – kontynuacja x(n)WNkn + n nieparzyste x(n)WNkn . Po podstawieniu n = 2r dla n parzystych i n = 2r + 1 dla n nieparzystych otrzymujemy X (k) = operacji. Postępujemy tak dalej K − 1 razy. Zauważmy, że pierwszy człon maleje do N(2 − 1) = N, a drugi rośnie do (K − 1)N. Zatem ostatecznie liczba operacji to K × N = (log2 N) × N . Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji N-punktową DFT rozkładamy na dwa przekształcenia. Pierwsze z nich zawiera jedynie próbki parzyste sygnału wejściowego, drugie natomiast próbki nieparzyste n parzyste W drugim kroku rozkładamy każde N/2-punktowe przekształcenie DFT na dwa N/4-punktowe. W wyniku wykonujemy więc 2 2 25 marca 2010 FFT z podpróbkowaniem czasu 2K -punktową Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji N −1 2 r =0 = N −1 2 r =0 x(2r )WNk2r + x(2r ) WN2 N −1 2 r =0 kr k(2r +1) x(2r + 1)WN + WNk N −1 2 r =0 x(2r + 1) WN2 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji kr . 25 marca 2010 12 / 54 Graf 4-punktowej FFT z podpróbkowaniem czasu Na podstawie równości WN2 = e−j2 N = e 2π 2π −j N/2 x(0) qHH jH q X (0) q R * 0 @ 0 H @ W W4 2 HH @ -HHqq q X (1) @ x(2) @ R W21 @ 1 @ @ W @ @4 -@q X (2) q @ x(1) qH H jH @ W2 * W20 H @ 4 H HH @ q - Hq -@q X (3) x(3) = WN 2 otrzymuje się X (k) = N −1 2 r =0 A zatem x(2r )W Nkr + WNk 2 N −1 2 x(2r + 1)W Nkr . 2 r =0 X (k) = G (k) + WNk H(k) W21 przy czym G (k) – H(k) – N 2 -punktowe N 2 -punktowe W43 przekształcenie DFT parzystych próbek x(n), przekształcenie DFT nieparzystych próbek x(n). Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 13 / 54 Graf 8-punktowej FFT z podpróbkowaniem czasu p p X (0) p@ UA HH * R 0 0 0 W W W 4 A HHH2 @ p 8 - p p A @ x(4) p X (1) 1@ @ 1UA A W2R W 1 W4 A A @ @ p p A A p X8 (2) @ -@x(2) pH jH * U 2 @ W4A A A H W 0 @ A A A W 2 H HH2p p -@ p A A A p X8 (3) x(6) U 1 3 W2 W4A AA A 3 A A A AW8 p p A A A- Ap X (4) x(1) pH jH *R 4 0@ H 0 A A AW8 W W HH 2 @ A A A 4 A H p p p p @ x(5) A A X (5) 1@ @ 1 A AW85 W2R W4 A A @ @ p @ -@p x(3) pH (6) A- Ap X jH * 6 @ W42 0 AW8 H W HH 2 @ A p - Hp -@p - Ap X (7) x(7) W43 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 14 / 54 Zapiszmy wyrażenie definiujące DFT dzieląc blok N próbek (N – liczba parzysta) na połowy: X (k) = N −1 2 n=0 = N −1 2 n=0 = N −1 2 n=0 x(n)WNkn + x(n)WNkn + x(n)WNkn N−1 n= N2 N−1 x(n)WNkn x n+ n=0 N −1 2 N k 2 + WN N 2 k(n+ N2 ) WN x n+ n=0 N 2 WNkn . Otrzymane wyrażenia nie są jeszcze N2 -punktowymi transformatami Fouriera, ponieważ występują w nich czynniki WNkn , a nie W Nkn . W87 25 marca 2010 25 marca 2010 FFT z podpróbkowaniem częstotliwości x(0) pH j W21 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 2 15 / 54 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 16 / 54 FFT z podpróbkowaniem częstotliwości – kontynuacja N FFT z podpróbkowaniem częstotliwości – kontynuacja Pamiętając, że WN2rn = W Nrn , uzyskane zależności można zmodyfikować do k Wiedząc, że WN2 = (−1)k , możemy zapisać X (k) = N −1 2 2 postaci: N 2 x(n) + (−1)k x n + n=0 WNkn . X (k) = X (2r ) = N x(n) + x n + 2 n=0 X (k) = N −1 2 x(n) − x n + n=0 N 2 25 marca 2010 17 / 54 x(0)U - H - p X (0) p p pjH * @ A R H H @ A W20 -HHp A p p p p p p X (4) @ x(1) R UA A @ −1 @ 0 @ A A @ W4 p A p p p H pp p X (2) @ -@x(2)jH * UA A A −1 @ A H A A A @ W41 HH W20 -@- Hp A p p p p p p X (6) x(3)UA A A A −1 −1 A A A A A A W 0 p 8p p H pp p X (1) x(4) p A A A- AjH * A A −1 R @ H A A A W 1 @ HHHW20 A p 8- p p p p p X (5) @ x(5) p A A- A A −1 R @ −1 @ A A W2 @ 0 @ W4 A p 8p p pp p X (3) @ -@x(6) p A- AjH * −1 −1 H @ A H 3 1 @ W4 HH W20 W -AA- 8 p -@- Hp p p p X (7) x(7) p 25 marca 2010 r r r r 19 / 54 25 marca 2010 21 / 54 x1 (n) = X (1)ej N n + X (N − 1)e−j N n 2π 2π Ogólnie k-ta harmoniczna xk (n) sygnału x(n) (przy czym k < N/2) jest wyrażona wzorem xk (n) = X (k)ek (j N )n + X (N − k)e−k (j N )n 2π 2π Maksymalna możliwa częstotliwość harmonicznej, występująca (w przypadku, gdy liczba N jest liczbą parzystą) przy k = N2 , to częstotliwość znormalizowana N2 · 2π = π lub częstotliwość N naturalna ωs /2. Ta harmoniczna składa się z próbek X (N/2) naprzemiennie różniących się znakiem i wyraża się wzorem N 2 ejπn = X k N−1 x(n)zk−n Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 20 / 54 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 22 / 54 Koncepcja optycznej transformacji Fouriera Pierwsza harmoniczna x1 (n) sygnału x(n) jest wyrażona wzorem 2π X (0) jest próbką DFT (dla k = 0) reprezentującą składową stałą sygnału. W przypadku DFT w wariancie 2 jest to wręcz po prostu składowa DC sygnału. próbka X (1) reprezentuje składową sygnału o częstotliwości znormalizowanej 2π/N, czyli o częstotliwości naturalnej 2π/(NTs ) = ωs /N, przy czym Ts – okres próbkowania. Należy zauważyć, że jest to częstotliwość pierwszej harmonicznej sygnału. Tę samą częstotliwość fizyczną (tj. pozbawioną znaku) co próbka X (1) reprezentuje również próbka X (N − 1). Istotnie częstotliwość 2π(N − 1)/N = 2π − 2π/N pełni tę samą rolę co częstotliwość −2π/N, a fizycznie tę samą rolę co Ω1 = 2π/N lub ω1 = ωs /N. Podobnie składowe X (2) i X (N − 2) reprezentują tę samą częstotliwość znormalizowaną Ω2 = 2Ω1 (częstotliwość drugiej harmonicznej sygnału) i ogólnie składowe X (k) i X (N − k) reprezentują tę samą częstotliwość znormalizowaną Ωk = kΩ1 (częstotliwość k-tej harmonicznej sygnału). Rozkład sygnału na harmoniczne xN/2 (n) = X Rozmieszczenie próbek DFT na płaszczyźnie zespolonej Analiza rozmieszczenia i znaczenia próbek DFT k =N −1 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 18 / 54 Próbki dyskretnej transformacji Fouriera są obliczane w N punktach zk , k = 0, 1, . . . , N − 1, równomiernie rozmieszczonych na okręgu jednostkowym na płaszczyźnie zespolonej. Sąsiednie punkty zk są oddalone od siebie o kąt 2π N . r r 25 marca 2010 Wniosek z 2π/N r 1 k =0 r dla k nieparzystego . Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji n=0 r r 2 X (k) = r r WNn W Nkn dla k parzystego Wówczas wzór na próbki DFT przyjmuje postać z r 6 r N 2 2 zk = WN−k = e j N Rozmieszczenie próbek DFT na płaszczyźnie zespolonej r x(n) − x n + W Nkn Wprowadźmy oznaczenie −1 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji r x(n) − x n + N2 przemnożonego przez współczynnik WNk , a następnie obliczeniu N/2-punktowych transformacji obu ciągów. W następnych etapach dekomponuje się kolejno transformacje N/2-punktowe do N/4-punktowych, te zaś do N/8-punktowych itd., kończąc na motylkach transformacji 2-punktowych. Graf 8-punktowej FFT z podpróbkowaniem częstotliwości −1 N −1 2 N 2 Zatem pierwszy etap tworzenia algorytmu FFT z podpróbkowaniem częstotliwości polega na wyznaczeniu ciągu x(n) + x n + N2 oraz ciągu WNn WN2rn . Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji −1 x(n) + x n + n=0 WN2rn natomiast dla nieparzystych wskaźników k = 2r + 1 uzyskujemy X (2r + 1) = n=0 Dla parzystych wskaźników k = 2r otrzymujemy N −1 2 N −1 2 N 2 (−1)n . Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 23 / 54 W standardowej transformacie DFT próbka X (0) reprezentująca składową o zerowej częstotliwości występuje skrajnie „po lewej stronie” transformaty. Posuwając się w prawo częstotliwości rosną do połowy transformaty (do częstotliwości π w przypadku transformaty o parzystej liczbie 2π N−1 próbek N lub do wartości N−1 2 · N = N π w przypadku transformaty o nieparzystej liczbie próbek), a następnie stopniowo maleją do wartości 2π N , czyli do częstotliwości pierwszej harmonicznej dla ostatniej próbki X (N − 1) Celowe jest przesunięcie górnej części transformaty w dół poniżej składowej stałej X (0), zastępując oznaczenie X (N − 1) oznaczeniem X (−1) i ogólnie X (N − k) oznaczeniem X (−k) dla 1 k N/2. To postępowanie prowadzi do uzyskania tzw. optycznej transformaty Fouriera, w której środkowej części znajduje się składowa stała, a częstotliwości rosną, oddalając się od niej zarówno w prawo jak i w lewo. Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 24 / 54 Optyczna DFT dla parzystej liczby N próbek bloku Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji Optyczna DFT dla nieparzystej liczby N próbek bloku 25 marca 2010 25 / 54 Harmoniczne sygnału o próbkach rzeczywistych Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 26 / 54 Harmoniczne sygnału o próbkach rzeczywistych Jesli sygnał x = [x(1) x(2) . . . x(N − 1)] ma próbki rzeczywiste, to próbki X (k) i X (−k) DFT sygnału, 1 k N/2, są sprzężone Jesli sygnał x = [x(1) x(2) . . . x(N − 1)] ma próbki rzeczywiste, to próbki X (k) i X (−k) DFT sygnału, 1 k N/2, są sprzężone X (k) = X (k) + jX (k) oraz X (−k) = X (k) − jX (k) X (k) = X (k) + jX (k) oraz X (−k) = X (k) − jX (k) Zatem n-ta próbka xk (n) k-tej harmonicznej sygnału x(n) (przy czym k < N/2) jest wyrażona wzorem Zatem n-ta próbka xk (n) k-tej harmonicznej sygnału x(n) (przy czym k < N/2) jest wyrażona wzorem xk (n) = X (k)ek (j N )n + X (−k)e−k (j N )n 2π 2π = (X (k) + jX (k))ek (j N )n + (X (k) − jX (k))e−k (j N )n 2π 2π = 2X (k) cos k n − 2X (k) sin k n N N 2π = 2 X2 (k) + X2 (k) cos k n − ϕ N przy czym xk (n) = X (k)ek (j N )n + X (−k)e−k (j N )n 2π 2π = (X (k) + jX (k))ek (j N )n + (X (k) − jX (k))e−k (j N )n 2π 2π = 2X (k) cos k n − 2X (k) sin k n N N 2π = 2|X (k)| cos k n − ϕ N przy czym 2π tg ϕ = 2π X (k) X2 (k) + X2 (k) = |X (k)| oraz X (k) Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 2π tg ϕ = 25 marca 2010 27 / 54 Obliczanie DFT w środowisku Matlab 2π X (k) X2 (k) + X2 (k) = |X (k)| oraz X (k) Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 Obliczanie DFT w środowisku Matlab Zadeklarujmy sygnał x = [x(0) x(1) x(2) x(3)] w postaci wektora >> x = [6 −2 2 −2] Obliczmy dyskretną transformatę Fouriera X = [X (0) X (1) X (2) X (3)] wektora x; do tego służy polecenie fft >> X = fft(x) X = 4 4 12 4 Zadeklarujmy sygnał x = [x(0) x(1) x(2) x(3)] w postaci wektora >> x = [6 −2 2 −2] Obliczmy dyskretną transformatę Fouriera X = [X (0) X (1) X (2) X (3)] wektora x; do tego służy polecenie fft >> X = fft(x) X = 4 4 12 4 Wniosek Wniosek W systemie Matlab jest obliczana standardowa DFT w wariancie 1. W systemie Matlab jest obliczana standardowa DFT w wariancie 1. Obliczmy z kolei optyczną wersję DFT; do tego służy polecenie fftshift >> Xoptic = fftshift(X) Xoptic = 12 4 4 4 Obliczmy z kolei optyczną wersję DFT; do tego służy polecenie fftshift >> Xoptic = fftshift(X) Xoptic = 12 4 4 4 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 29 / 54 Rozkład sygnału na harmoniczne DFT (wariant 2) sygnału x = [x(0) x(1) x(2) x(3)] = [6 − 2 1 Zatem x0 = xDC = [X (0) X (0) X (0) X (0)] = [1 3 2 − 2] , 1]. 1 1 25 marca 2010 30 / 54 Przykład Dla przypomnienia rozważamy sygnał x = [x(0) x(1) x(2) x(3)] = [6 − 2 Otrzymaliśmy rozkład 1]. Próbki pierwszej harmonicznej x1 wyznaczamy ze wzoru 2 − 2] . x = xDC + x1 + x2 przy czym x1 (n) = X (1)ej N n + X (3)ej N 3n 2π Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji Sprawdzenie poprawności rozkładu sygnału na harmoniczne Przykład to wektor X = [X (0) X (1) X (2) X (3)] = [1 28 / 54 2π xDC = [1 π π π = X (1)ej 2 n + X (3)e−j 2 n = 1 · jn + 1 · (−j)n = 2 cos n 2 Stąd x1 = [x1 (0) x1 (1) x1 (2) x1 (3)] = [2 0 − 2 0] x1 = [2 1 1 1] 0 −2 0] x2 = [3 − 3 Próbki drugiej harmonicznej x2 to 3 − 3] Dodając prawe strony trzech powyższych wyrażeń w istocie otrzymujemy x2 (n) = X (2)ej N 2n = 3 · ejπn = 3 · cos πn = 3(−1)n Stąd x2 = [x2 (0) x2 (1) x2 (2) x2 (3)] = [3 − 3 3 − 3] 2π Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 x = [6 − 2 31 / 54 2 − 2] Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 32 / 54 Ilustracja rozkładu sygnału na harmoniczne Dwuwymiarowa DFT (2D DFT) 6 5 4 6 −2 2 −2 3 2D DFT - two dimensional discrete Fourier transformation 2 x x= 1 DFT dwuwymiarowego sygnału x(m, n), m = 0, 1, ..., M − 1, n = 0, 1, ..., N − 1, jest bezpośrednim uogólnieniem jednowymiarowej DFT 0 −1 −2 −3 0 0.5 1 1.5 n 2 2.5 3 6 5 4 1 1 1 1 X (k, l) = 3 x0 = x DC x0 = xDC = 2 1 m=0 n=0 0 −2 0 0.5 1 1.5 n 2 2.5 km x(m, n)WM WNln , k = 0, 1, ..., M − 1, l = 0, 1, ..., N − 1. −1 −3 M−1 N−1 3 6 5 4 2 0 −2 0 2D IDFT - two dimensional inverse discrete Fourier transformation 3 2 x1 x1 = 1 Przekształcenie odwrotne do 2D DFT jest określone wzorem 0 −1 −2 −3 0 0.5 1 1.5 n 2 2.5 3 x(m, n) = 6 5 3 −3 3 −3 3 2 N−1 1 M−1 −km X (k, l)WM WN−ln , M · N k=0 l=0 przy czym m = 0, 1, ..., M − 1, n = 0, 1, ..., N − 1. x2 x2 = 4 1 0 −1 −2 −3 0 0.5 1 1.5 n 2 2.5 3 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 33 / 54 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji Odmiany dwuwymiarowej dyskretnej transformacji Fouriera 2D DFT obrazu kwadratowego N × N pikseli 2D DFT / 2D IDFT – wariant 1 2D DFT / 2D IDFT – wariant 1 M−1 N−1 km x(m, n)WM WNln , x(m, n) = X (k, l) = m=0 n=0 N−1 1 M−1 −km X (k, l)WM WN−ln M·Nk=0 l=0 2D DFT / 2D IDFT – wariant 2 X (k, l) = x(m, n)WNkm WNln , x(m, n) = m=0 n=0 34 / 54 N−1 1 N−1 X (k, l)WN−km WN−ln 2 N k=0 l=0 2D DFT / 2D IDFT – wariant 2 M−1 N−1 N−1 1 M−1 −km km x(m, n)WM WNln , x(m, n) = X (k, l)WM WN−ln M·Nm=0 n=0 k=0 l=0 2D DFT / 2D IDFT – wariant 3 „sprawiedliwy” X (k,l) = √ N−1 N−1 X (k, l) = 25 marca 2010 N−1 N−1 N−1 1 N−1 x(m, n)WNkm WNln , x(m, n) = X (k, l)WN−km WN−ln 2 N m=0 n=0 k=0 l=0 2D DFT / 2D IDFT – wariant 3 „sprawiedliwy” N−1 N−1 1 M−1 1 M−1 −km −ln km ln x(m,n)WM WN , x(m,n) = √ X (k,l)WM WN M·Nm=0n=0 M·Nk=0 l=0 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji X (k, l) = 25 marca 2010 35 / 54 Obliczanie i złożoność obliczeniowa 2D DFT X (k, l) = N−1 N−1 1 N−1 1 N−1 x(m, n)WNkmWNln , x(m, n) = X (k, l)WN−kmWN−ln Nm=0 n=0 N k=0 l=0 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 36 / 54 Standardowa i optyczna transformata 2D DFT Dwuwymiarowa dyskretna transformacja Fouriera nie wymaga specjalnych algorytmów. Oblicza się ją w dwóch zagnieżdżonych pętlach transformacji jednowymiarowych. Na przykład najpierw oblicza się DFT każdej kolumny tablicy x, a następnie oblicza się DFT każdego wiersza. X (k, l) = N−1 N−1 m=0 n=0 x(m, n)WNln WNkm , Wniosek Złożoność obliczeniowa 2D DFT wyznaczanej bezpośrednio jest równa N · (N 2 ) = N 3 . Natomiast złożoność obliczeniowa 2D DFT wyznaczanej za pomocą algorytmów FFT to N · (N log N) = N 2 log N . Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 37 / 54 Obraz oryginalny – przykład Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 38 / 54 Standardowa i optyczna transformata 2D DFT – przykład 25 marca 2010 39 / 54 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 40 / 54 Uwagi do przykładu Dwuwymiarowy przebieg harmoniczny Obrazy ilustrują wartości bezwzględne standardowej 2D DFT (po lewej stronie) i optycznej 2D DFT (po prawej stronie) Wartości bezwzględne transformat znormalizowano dzieląc je przez ich wartości maksymalne w obrębie całego obrazu, czyli ich wartości sprowadzono do przedziału < 0, 1 > W celu uzyskania różnych poziomów szarości a nie tylko praktycznie czerni dla większości pikseli obliczono pierwiastek 8-go stopnia ze znormalizowanych wartości bezwzględnych transformat Na koniec tak wartości przeniesiono do przedziału < 0, 255 > przez pomnożenie ich przez 255 Stosowne instrukcje w środowisku Matlab to: adamDFTabsdo1nej8mej = uint8(255*(abs(adamdft2)/maxadamfft).∧.125); adamDFTopticabsdo1nej8mej = uint8(255*(abs(fftshift(adamdft2))/maxadamfft).∧.125); Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 41 / 54 Usuwanie zakłóceń harmonicznych za pomocą filtracji w dziedzinie 2D-DFT Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 43 / 54 Główna idea i główna zaleta zastosowania DFT Główną zaletą DFT jest możliwość jej obliczania za pomocą algorytmów FFT o radykalnie zredukowanej złożoności obliczeniowej. Trudno nie poddać się iluzji, że znaleźliśmy doskonałą metodę stratnej kompresji danych audio i wideo, a prawdopodobnie i większości innych danych! 25 marca 2010 25 marca 2010 42 / 54 25 marca 2010 44 / 54 Okres sygnału 2D przy obliczaniu DFT Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji Główne wady DFT Główną ideą zastosowania DFT jest domniemanie, że w dziedzinie częstotliwości ważne (z punktu widzenia dokładności reprezentacji sygnału) są jedynie małe częstotliwości i reprezentujące je współczynniki DFT, duże częstotliwości są zaś mniej ważne i odpowiadające im współczynniki w dziedzinie częstotliwości można reprezentować oszczędniej – za pomocą mniejszej liczby bitów (tj. mniej dokładnie), co potencjalnie prowadzi do kompresji danych. Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 45 / 54 Pomysł eliminacji wad DFT Główną wadą DFT jest to, że przetwarzany blok próbek (obraz) jest bezpośrednio okresem rozważanego sygnału. Zatem lewa strona obrazu sąsiaduje z prawą, prawa z lewą, góra z dołem, a dół z górą. Ponieważ te strony nie muszą mieć ze sobą nic wspólnego, możemy spodziewać się wyraźnych krawędzi na granicach okresu sygnału. Zatem do prawidłowej jego reprezentacji konieczne są nie tylko dokładnie odwzorowane małe lecz także i duże częstotliwości – poczynione domniemanie o możliwości kompresji danych „bierze w łeb”. Dalszą ważną wadą DFT jest to, że choć blok N próbek jest transformowany do N współczynników w dziedzinie częstotliwości, co stwarza iluzję zachowania tej samej liczby danych, to w rzeczywistości próbki sygnału są zazwyczaj liczbami rzeczywistymi, a współczynniki transformaty są liczbami zespolonymi. Następuje zatem dwukrotny przyrost liczby danych. Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 46 / 54 25 marca 2010 48 / 54 Okres sygnału 2D przy obliczaniu DFT i DCT Główną wadą DFT jest to, że przetwarzany blok próbek (obraz) jest bezpośrednio okresem rozważanego sygnału. Zatem lewa strona obrazu sąsiaduje z prawą, prawa z lewą, góra z dołem, a dół z górą. Ponieważ te strony nie muszą mieć ze sobą nic wspólnego, możemy spodziewać się wyraźnych krawędzi na granicach okresu sygnału. Zatem do prawidłowej jego reprezentacji konieczne są nie tylko dokładnie odwzorowane małe lecz także i duże częstotliwości – poczynione domniemanie o możliwości kompresji danych „bierze w łeb”. Dalszą ważną wadą DFT jest to, że choć blok N próbek jest transformowany do N współczynników w dziedzinie częstotliwości, co stwarza iluzję zachowania tej samej liczby danych, to w rzeczywistości próbki sygnału są zazwyczaj liczbami rzeczywistymi, a współczynniki transformaty są liczbami zespolonymi. Następuje zatem dwukrotny przyrost liczby danych. Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 47 / 54 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji Warianty dyskretnej transformacji cosinusowej (DCT) Wariant 1-szy dyskretnej transformacji cosinusowej (DCT-I) DCT-I (w przód) Xk = N−2 π 1 x0 + (−1)k xN−1 + xn cos nk 2 N −1 n=1 k = 0, . . . , N − 1 DCT-I wstecz (DCT-I ze współczynnikiem 2/(N − 1)) xn = 2 N −1 N−2 1 π (X0 + (−1)n XN−1 ) + nk Xk cos 2 N −1 k=1 n = 0, . . . , N − 1 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 49 / 54 Wariant 2-gi dyskretnej transformacji cosinusowej (DCT-II) DCT-II (w przód) N−1 π xn cos Xk = N n=0 50 / 54 Wariant 3-ci dyskretnej transformacji cosinusowej (DCT-III) N−1 π 1 1 n k+ xn cos Xk = x0 + 2 N 2 n=1 k = 0, . . . , N − 1 2 N 25 marca 2010 DCT-III (w przód) 1 n+ k 2 k = 0, . . . , N − 1 DCT-II wstecz (DCT-III ze współczynnikiem 2/N) xn = Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji N−1 1 π 1 Xk cos X0 + k n+ 2 N 2 k=1 DCT-III wstecz (DCT-II ze współczynnikiem 2/N) xn = n = 0, . . . , N − 1 2 N N−1 k=0 Xk cos π N k+ 1 n 2 n = 0, . . . , N − 1 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 51 / 54 Wariant 4-ty dyskretnej transformacji cosinusowej (DCT-IV) Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 52 / 54 Obraz oryginalny i transformata 2D DCT – przykład DCT-IV (w przód) Xk = N−1 n=0 xn cos π N n+ 1 2 k+ 1 2 k = 0, . . . , N − 1 DCT-IV wstecz (DCT-IV ze współczynnikiem 2/N) xn = π 2 N−1 1 1 Xk cos k+ n+ N k=0 N 2 2 n = 0, . . . , N − 1 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 53 / 54 Adam Dąbrowski (Politechnika Poznańska)Podstawy Teorii Systemów, Sygnałów i Informacji 25 marca 2010 54 / 54