Dyskretna transformata Fouriera. Maskowanie. Szybka transformata

Transkrypt

Dyskretna transformata Fouriera. Maskowanie. Szybka transformata
Przetwarzanie i
A nal iza S y g nał ó w
Rozdział 4 – A n al iza
8 5
w idm ow a
4. 1 0 . D y s k r e t n a t r an s f or m at a
F ou r ie r a
4.10. DYSKRETNA TRANSFORMATA FOURIERA (DFT)
Analiza sygnałów w sytuacjach praktycznych odbywa się
zwyczajowo na drodze cyfrowej
⇓
badany (ciągły) przebieg czasowy x(t) podlega przetwarzaniu
A/C co prowadzi do dyskretnego szeregu xr
x(t) ⇒ xr;
r = 0, 1, 2, ..., (N-1)
(4.60)
N – liczba próbek
okres sygnału
T = ∆t⋅N
(4.61)
x(t) = x(t + ∆t⋅N) = ... = x(t + k⋅∆t⋅N)
(4.62)
warunek okresowości
Rozdział 4 – A n al iza
8 6
w idm ow a
4. 1 0 . D y s k r e t n a t r an s f or m at a
F ou r ie r a
Przetwarzanie i
A nal iza S y g nał ó w
Wyprowadźmy zależność opisującą dyskretną transformatę
Fouriera startując z definicji zespolonej transformaty Fouriera
sygnału ciągłego
1T
 2πkt 
X k = ∫ x( t ) exp − i
 dt
T0
T


(4.16)
wprowadzając zmiany wynikające z dyskretnego charakteru
sygnału
dt → ∆t =
tak więc
T
N
and
∫
→∑
(4.63)
1 r = N −1
Xk =
∑ xr exp[(− i 2πk / T ) (r∆t )] ∆t
T r =0
para dyskretnych przekształceń Fouriera
DFT:
IDFT:
1 r = N −1
 2πkr 
Xk =
x
exp
∑ r −i N 
N r =0


xr =
∑
k = N −1
k =0
 2πkr 
X k exp i

 N 
(4.64a)
(4.64b)
odległość pomiędzy sąsiednimi harmonicznymi (rozdzielczość
spektralna) jest taka sama jak w przypadku szeregu Fouriera
∆ω =
2π
2π
=
T
∆t ⋅ N
(4.3)
Przetwarzanie i
A nal iza S y g nał ó w
Rozdział 4 – A n al iza
8 7
w idm ow a
4. 1 0 . D y s k r e t n a t r an s f or m at a
F ou r ie r a
dziedzina spektralna DFT jest ograniczona
k = 0, 1, 2, ..., (N-1)
⇒
ωk = 0 ÷ 2π/∆t
podczas gdy dla ciągłych sygnałów była nieograniczona
(częstotliwości harmonicznych mogły dążyć do
nieskończoności)
Własności dyskretnej transformaty Fouriera
• Symetria modułu względem k = 0 (ω = 0)
X −k =
1
xr exp( i 2πkr / N ) = X *k
∑
N
X *k - transformata sprzężona do X k
X −k = X k* = X k
(4.65)
• Symetria modułu względem k = N/2 (ω = π/∆t)
X N −k =
=
1
∑ xr exp[( −i 2πr / N )( N − k )] =
N
1
xr exp( −i 2πr ) exp( i 2πkr / N ) = X *k
∑
N
X N −k = X *k = X k
(4.66)
Przetwarzanie i
A nal iza S y g nał ó w
• Okresowość
X N +k =
=
Rozdział 4 – A n al iza
8 8
w idm ow a
4. 1 0 . D y s k r et n a t r an s f or m at a
F ou r ier a
1
∑ xr exp[( −i 2πr / N )( N + k )] =
N
1
∑ xr exp( −i 2πr ) exp( −i 2πkr / N ) = X k
N
X N +k = X k
(4.67)
zakres użytecznych częstotliwości
ω ≤
π ωs
=
= ωN
∆t 2
f ≤
for
k ≤
f
1
= s = fN
2 ∆t 2
fs (ωs ) – częstość kołowa próbkowania
fN (ωN ) – częstość kołowa Nyquista
N
2
(4.68)
(4.68a)
Rozdział 4 – A n al iza
w idm ow a
Przetwarzanie i
A nal iza S y g nał ó w
8 9
4. 1 1 . M as k ow an ie
4.11. MASKOWANIE
twierdzenie Parsevala dla DFT
1
moc =
N
∑
r = N −1
r =0
xr2
(4.69)
wykorzystując IDFT
1
moc =
N
=
∑
k = N −1
k =0
∑
r = N −1
1
Xk 
N
r =0
∑
k = N −1
 2πkr 
xr  ∑ X k exp i
 =
N


 k =0
r = N −1
r =0
1
N
 2πkr  k = N −1
*
xr exp i
 = ∑ X k X k
 N  k =0
∑
r = N −1
r =0
xr2
=
∑
k = N −1
k =0
Xk
2
(4.70)
Rozważmy następujący przypadek:
• sygnał o paśmie częstotliwości 0 ÷ ωmax
• próbkowanie z częstotliwością ωs < 2ωmax (nie spełniającą
warunku Nyquista)
• DFT
⇓
wyznaczone spektrum będzie błędne !!!
Rozdział 4 – A n al iza
w idm ow a
Przetwarzanie i
A nal iza S y g nał ó w
9 0
4. 1 1 . M as k ow an ie
wynik DFT
oryginalne
spektrum
strzałka pokazuje przepływ mocy z zakresu
ω > π / ∆t
do użytecznego zakresu częstotliwości
0 ≤ ω ≤ π / ∆t
zjawisko to (zniekształcania widma) zwane jest maskowaniem
i jest wynikiem nieprawidłowego próbkowania (przy nie
spełnionym warunku Nyquista)
Jak uniknąć maskowania ?
• przyspieszyć (dostatecznie) próbkowanie: ωs ≥ 2ωmax
• zastosować filtrację dolno-przepustową (utrata części
informacji o sygnale)
Rozdział 4 – A n al iza
w idm ow a
Przetwarzanie i
A nal iza S y g nał ó w
9 1
4. 1 1 . M as k ow an ie
Mechanizm zjawiska maskowania (niepożądanego
przepływu mocy)
Rozważmy proces próbkowania z okresem próbkowania ∆t.
Zobaczmy co ”stanie się” z falami monoharmonicznymi o
częstościach kołowych większych niż częstość Nyquista
przypadek 1
5
4
ω = ωN =
5π
4 ∆t
⇒ T=
2π
8
= ∆t
ω 5
5
⇒ ∆t = T
8
intuicyjne odtworzenie sygnału z próbek daje (również) falę
monoharmoniczną o okresie T* (linia kropkowana)
8 ∆t = 5T = 3T*
⇓
ω* = 2π / T* =
ω* <
3π
5π
≠ω =
4 ∆t
4 ∆t
π
= ωN
∆t
Przetwarzanie i
A nal iza S y g nał ó w
Rozdział 4 – A n al iza
w idm ow a
9 2
4. 1 1 . M as k ow an ie
przypadek 2
ω=
7π
4 ∆t
8 ∆t = 7T = T*
⇒ T=
⇒
2π
8
= ∆t
ω 7
7
⇒ ∆t = T
8
ω* = 2π / T* =
1π π
<
= ωN
4 ∆t ∆t
☞ częstotliwości zrekonstruowanych harmonicznych są
lustrzanymi odbiciami względem ωN częstotliwości
oryginalnych
☞ amplitudy pozostają niezmienne
Rozdział 4 – A n al iza
w idm ow a
Przetwarzanie i
A nal iza S y g nał ó w
9 3
4. 1 1 . M as k ow an ie
reguła opisująca zmianę częstotliwości (maskowanie – ”alias”)
harmonicznych z przedziału ω∈(ωs/2;ωs〉
ω* = ω s − ω
(4.71)
ogólnie
częstość kołowa fali
ω
wynik DFT
ω*
0÷ωs/2
ω
ωs/2÷ωs
ωs
ωs-ω
0
ωs÷3ωs/2
ω-ωs
Rozdział 4 – A n al iza
9 4
w idm ow a
4. 1 2 . S zy b k a t r an s f or m at a
F ou r ier a
Przetwarzanie i
A nal iza S y g nał ó w
4.12. SZYBKA TRANSFORMATA FOURIERA (F.F.T.)
FFT – algorytm numeryczny szybkiego wyznaczania
dyskretnej transformaty Fouriera (DFT)
DFT szeregu czasowego
{xr}, r = 0, 1, 2, ..., (N - 1)
jest także szeregiem
{Xk}, k = 0, 1, 2, ..., (N - 1)
wymagającym N 2 operacji matematycznych o postaci
 2πkr 
xr ⋅ exp − i

N


W 1965 Cooley i Tukey opublikowali ideę algorytmu FFT,
który pozwolił na bardzo istotną redukcję czasu
obliczeniowego
przy zastosowaniu algorytmu FFT szereg {Xk} może być
wyznaczony w
operacjach
N⋅log2N
(4.72)
warunek konieczny
procedura FFT może być zrealizowana tylko wtedy gdy
N = 2p
N – liczba próbek
p – liczba naturalna
(4.73)
Rozdział 4 – A n al iza
9 5
w idm ow a
4. 1 2 . S zy b k a t r an s f or m at a
F ou r ier a
Przetwarzanie i
A nal iza S y g nał ó w
Zyski płynące z używania FFT
przyspieszenie obliczeń
liczba
próbek
N
4
16
64
256
1024
4096
log2N
2
4
6
8
10
12
przyspieszenie w
porównaniu z DFT
N2/N⋅log2N
2
4
10.7
32.0
102.4
341.3
wyższa dokładność obliczeń
mniej operacji
⇓
redukcja błędów wynikających z obcięcia słowa
komputerowego
zasada FFT:
• podział szeregu {xr} na podszeregi
• DFT podszeregów
• określenie {Xk} na podstawie cząstkowych DFT
Rozdział 4 – A n al iza
9 6
w idm ow a
4. 1 2 . S zy b k a t r an s f or m at a
F ou r ier a
Przetwarzanie i
A nal iza S y g nał ó w
przykład
Rozważmy szereg czasowy {xr}, r = 0, 1, .. (N-1) gdzie N jest
liczbą parzystą
x1
xr
x2
x3
x0
x4
x5
x6 x7
t
Podzielmy szereg {xr} na 2 podszeregi {yr} {zr} w taki sposób, że
y r = x2 r
(4.74)
r = 0 ,1,2 ,...,( N / 2 − 1 )
z r = x2 r +1
y1=x2
yr
y0=x0
y2=x4
y3=x6
t
zr
z0=x1
z1=x3
z2=x5
z3=x7
t
Rozdział 4 – A n al iza
9 7
w idm ow a
4. 1 2 . S zy b k a t r an s f or m at a
F ou r ier a
Przetwarzanie i
A nal iza S y g nał ó w
transformaty DFT podszeregów (zgodnie z 4.63a) będą równe

1 N / 2−1
2πkr 
Yk =
y r exp − i

∑
( N / 2 ) r =0
 ( N / 2 )  k = 0 ,1,..., N − 1

1 N / 2−1
2πkr 
2
Zk =
z r exp − i

∑
( N / 2 ) r =0
 ( N / 2 )
(4.75)
Powróćmy teraz do DFT oryginalnego szeregu {xr} i
zmodyfikujmy porządek sumowania tak, aby uzyskać dwie
sumy podobne do tych, które występują w (4.75)
1
Xk =
N
 2πkr 
x
exp
∑ r −i N  =


r =0
N −1
1  N / 2−1
 2πk ( 2 r ) 
=  ∑ x2 r exp − i
+
N  r =0
N


+
∑
N / 2 −1
r =0
 2πk ( 2 r + 1 ) 
x2 r +1 exp − i

N


wykorzystując związki (4.74)
1  N / 2−1
 2πkr 
X k =  ∑ y r exp − i
+
N  r =0
 N / 2
 2πk  N / 2−1
 2πkr 
+ exp − i
 ∑ z r exp − i

N
N
/
2

 r =0


uzyskuje się związek pomiędzy transformatami Yk i Zk oraz Xk
1
N
 2πk  
X k = Yk + exp − i
 Z k ; k = 0 ,1,..., − 1
2
N  
2

(4.76)
Przetwarzanie i
A nal iza S y g nał ó w
Rozdział 4 – A n al iza
9 8
w idm ow a
4. 1 2 . S zy b k a t r an s f or m at a
F ou r ier a
DFT {Xk} oryginalnego szeregu {xr} może być wyznaczona
wprost z transformat DFT {Yk} i {Zk} podszeregów {yr} i
{zr} zgodnie z formułą (4.76) – ”sercem” algorytmu FFT
formułę (4.76) stosuje się jedynie dla wartości k w zakresie
0 ÷ N/2-1, co pozwala na określenie tylko połowy
współczynników {Xk}
transformaty {Yk} i {Zk} są funkcjami okresowymi
(z okresem N/2)
Yk + N / 2
 2πr( k + N / 2 ) 
1 N / 2−1
y r exp − i
=
∑
=
( N / 2 ) r =0
(
N
/
2
)


1 N / 2−1

2πrk 
=
y r exp − i
exp(− i 2πr )
∑

1
4 43
4
( N / 2 ) r =0
 ( N / 2 )  42
1
tak więc
Yk+N/2 = Yk = Yk-N/2
(4.77a)
Zk+N/2 = Zk = Zk-N/2
(4.77b)
pozostałe współczynniki transformaty {Xk} dla k = N/2, ... , N-1
mogą być wyznaczone z określonych już wartości {Yk} i {Zk}
1

 2π ( k + N / 2 ) 
X k + N / 2 = Yk + N / 2 + exp − i
 Z k+N / 2  =
N
2




1 
 2πk 
= Yk + exp − i
exp(− iπ ) Z k 
1
4243
2
N




−1
Rozdział 4 – A n al iza
9 9
w idm ow a
4. 1 2 . S zy b k a t r an s f or m at a
F ou r ier a
Przetwarzanie i
A nal iza S y g nał ó w
Wprowadzając nową zmienną W
W = exp(-i2π/N)
(4.78)
uzyskujemy tzw. algorytm ”motylkowy” ("butterfly")
X k+N / 2
{
{
1
Yk + W k Z k
2
1
= Yk − W k Z k
2
Xk =
}
}
k = 0 ,1,2 ,...,
N
−1
2
(4.79)
PRZYKŁAD OBLICZENIOWY
Dla zilustrowania algorytmu FFT "w akcji" rozważymy prosty
przypadek obliczeniowy, w którym oryginalny szereg {xr}
posiada jedynie cztery wyrazy.
krok 1 – podział na podszeregi
1a.
{xr} = x0, x1, x2, x3
{yr} = x0, x2
{zr} = x1, x3
1b.
{yr} = x0, x2
{tr} = x0
{ur} = x2
{zr} = x1, x3
{vr} = x1
{qr} = x3
Rozdział 4 – A n al iza
1 0 0
w idm ow a
4. 1 2 . S zy b k a t r an s f or m at a
F ou r ier a
Przetwarzanie i
A nal iza S y g nał ó w
krok 2 – DFT 1-elementowych podszeregów
1
Xk =
N
∑ xr exp(− i 2πkr / N )
N −1
r =0
dla N=1, k=0, r=0
Xk = xr (X0 = x0)
DFT 1-elementowego szeregu równa jest jemu samemu
{Tk} = {x0};
{Uk} = {x2};
{Vk} = {x1};
{Qk} = {x3}
krok 3 – konstrukcja {Xk} z cząstkowych DFT
etap a
Yk = f(Tk, Uk) oraz
Zk = f(Vk, Qk)
Ponieważ {Yk} i {Zk} są szeregami 2-elementowymi, zatem
N = 2; k = 0
oraz
W = exp(-i2π/N) = exp(-iπ) = -1
Y0
= ½ {T0 + W0 ⋅U0} = ½ (x0 + x2)
Y0+1 = ½ {T0 – W0 ⋅U0} = ½ (x0 – x2)
Z0
= ½ {V0 + W0 ⋅Q0} = ½ (x1 + x3)
Y0+1 = ½ {V0 – W0 ⋅Q0} = ½ (x1 – x3)
Rozdział 4 – A n al iza
1 0 1
w idm ow a
4. 1 2 . S zy b k a t r an s f or m at a
F ou r ier a
Przetwarzanie i
A nal iza S y g nał ó w
etap b
Xk = f(Yk, Zk)
Ponieważ {Xk} jest szeregiem 4-elementowym, zatem
N = 4; k = 0, 1
oraz
W = exp(-i2π/N) = exp(-iπ/2) = -i
X0
= ½ {Y0 + W0 ⋅Z0} = ¼ {x0 + x2 + x1 + x3}
X1
= ½ {Y1 + W1 ⋅Z1} = ¼ {x0 – x2 + (-i)(x1 – x3)}
X0+2 = ½ {Y0 – W0 ⋅Z0} = ¼ {x0 + x2 – (x1 + x3)}
Y0+1 = ½ {Y1 – W1 ⋅Z1} = ¼ {x0 – x2 + i(x1 – x3)}
N=4
{xr}
N=2
{yr}
{zr}
N=1
{tr}
{ur}
{vr}
{qr}
N=1
{Tk}
{Uk}
{Vk}
{Qk}
N=2
N=4
{Yk}
{Zk}
{Xk}

Podobne dokumenty