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

Podobne dokumenty