Euler Veen
Transkrypt
Euler Veen
Systemy i sygnały dyskretne w czasie Podstawowe definicje: Sygnały dyskretne w czasie reprezentowane są przez ciągi liczb, oznacza się przez {x[n]} Elementy tych ciągów nazywa się próbkami, wartości próbek sygnałów oznacza się jako x[n] dla n całkowitych w zakresie −∞ < n < ∞ Przykładowy zapis sygnału dyskretnego: −1.2,K} {x ⎡⎣n⎤⎦} = {K,1.1, −0.2,2.1,3.0, ↑ lub K x ⎡⎣ −1⎤⎦ = −0.2, x ⎡⎣0⎤⎦ = 2.1, x ⎡⎣1⎤⎦ = 3.0 K Graficzna reprezentacja sygnału dyskretnego w czasie: MATLAB clear; n=-8:1:27; x=0.2+sin(0.13*n); plot(n,x); grid 1.5 1 0.5 n 0 T -0.5 x[-3]=xa(-3T) -1 -10 -5 0 5 10 15 20 25 30 Sygnał dyskretny najczęściej otrzymuje się w wyniku próbkowania w równych odstępach czasu sygnału ciągłego w czasie (analogowego). Wtedy n-tą próbkę opisuje zależność: x ⎡⎣ n ⎤⎦ = xa ( t ) t =nT = xa ( nTp ) , n = K, −2, −1,0,1,2,K p Odległość między kolejnymi próbkami Tp (T) to - przedział próbkowania lub okres próbkowania. Odwrotność okresu próbkowania nosi nazwę częstotliwości próbkowania i oznacza się fp fp = 1 Tp Systemy dyskretne W systemie dyskretnym, przetwarzanie obejmuje operacje arytmetyczne przeprowadzane na sygnale wejściowym x[n], w wyniku, których na wyjściu systemu otrzymuje się sygnał wyjściowy y[n] w postaci ciągu liczb. W większości przypadków systemy czasu dyskretnego są systemami o jednym wejściu i jednym wyjściu. x[n] y[n] Sygnał wejściowy System dyskretny Sygnał wyjściowy Systemy dyskretne można opisywać, podobnie jak układy analogowe, w konwencji wejście-wyjście, przy czym do opisu stosuje się w tym przypadku równanie różnicowe, stanowiące algebraiczną zależność między ciągiem wejściowym i wyjściowym. Klasyfikacja systemów dyskretnych w czasie Systemy można klasyfikować ze względu następujących własności: Liniowość Stacjonarność Przyczynowość Stabilność Pasywność System dyskretny liniowy: Definicja: Jeżeli y1 [ n ] jest sygnałem wyjściowym systemu zależnym od sygnału wejściowego x1 [ n ] oraz y2 [ n ] jest sygnałem wyjściowym dla sygnału wejściowego x2 [ n ] to dla sygnału wejściowego: x [ n ] = α x1 [ n ] + β x2 [ n ] na wyjściu systemu otrzymamy y [ n ] = α y1 [ n ] + β y2 [ n ] Zależność powyższa zachodzi dla dowolnie wybranych stałych α , β oraz dowolnych sygnałów wejściowych x1 [ n ] , x2 [ n ] . Przykład systemu liniowego: y [ n] = − x [ n] 2 x1 [ n ] = sin(ω nTp ) o częstotliwości f=1Hz próbkowany z fp=20Hz x2 [ n ] = sin(3ω nTp ) o częstotliwości f=3Hz próbkowany z fp=20Hz Superpozycja sygnałów wejściowych x [ n ] = x1 [ n ] + x2 [ n ] = sin(ω nTp ) + sin(3ω nTp ) Na wyjściu systemu dla kolejnych sygnałów wejściowych otrzymamy: y1 [ n ] = − 12 sin(ω nTp ) y2 [ n ] = − 12 sin(3ω nTp ) y [ n ] = y1 [ n ] + y2 [ n ] = − 12 sin(ω nTp ) − 12 sin(3ω nTp ) oraz inaczej y0 [ n ] = − 12 ( x1 [ n ] + x2 [ n ]) = − 12 ( sin(ω nTp ) + sin(3ω nTp ) ) Dla sygnału liniowego zachodzi równość: y [ n ] = y0 [ n ] MATLAB clear; fp=20; T=1/fp; f=1; omega=2*pi*f; t=0:T:1-T; x1=sin(omega*t); figure(1); stem(t,x1); grid y1=-x1/2; figure(2); stem(t,y1); grid x2=sin(3*omega*t); figure(3); stem(t,x2); grid y2=-x2/2; figure(4); stem(t,y2); grid x=x1+x2; figure(5); stem(t,x); grid y=y1+y2; figure(6); stem(t,y); grid yy=-x/2; figure(7); stem(t,yy,'-r'); grid x1[n] 1 0.5 0.8 0.4 0.6 0.3 0.4 0.2 0.2 0.1 0 system -0.2 0 -0.1 -0.4 -0.2 -0.6 -0.3 -0.8 -1 -0.4 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 -0.5 1 x2[n] 1 0.4 0.6 0.3 0.4 0.2 system 0.2 0 -0.4 -0.2 -0.6 -0.3 -0.8 -0.4 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 -0.5 1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 -0.1 0.1 0.1 y2[n] 0.1 -0.2 0 0 0.5 0.8 -1 y1[n] 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 y1[n]+y2[n] 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 x[n]=x1[n]+x2[n] y[n] 2 0.8 1.5 0.6 1 0.4 0.5 0.2 0 system -0.5 0 -0.2 -1 -0.4 -1.5 -0.6 -2 0 0.1 0.2 0.3 0.4 0.5 0.6 0 0.7 0.8 0.9 1 -0.8 0 0.1 0.2 Przykład systemu nieliniowego: y [ n ] = ( x [ n ]) 2 x1 [ n ] = sin(ω nTp ) o częstotliwości f=1Hz próbkowany z fp=20Hz x2 [ n ] = sin(3ω nTp ) o częstotliwości f=3Hz próbkowany z fp=20Hz Superpozycja sygnałów wejściowych x [ n ] = x1 [ n ] + x2 [ n ] = sin(ω nTp ) + sin(3ω nTp ) Na wyjściu systemu otrzymamy: 1 y1 [ n ] = ⎡⎣1 − cos(2ω nTp ) ⎤⎦ 2 1 y2 [ n ] = ⎡⎣1 − cos(6ω nTp ) ⎤⎦ 2 Sygnał jako suma sygnałów wyjściowych y [ n ] = 1 − 12 cos(2ω nTp ) − 12 cos(6ω nTp ) oraz jako sygnał wyjściowy sumy sygnałów wejściowych y0 [ n ] = 1 + 12 cos(2ω nTp ) − cos(4ω nTp ) − 12 cos(6ω nTp ) Nierówność wskazuje na nieliniowość systemu y [ n ] ≠ y0 [ n ] MATLAB clear; fp=20; T=1/fp; f=1; omega=2*pi*f; t=0:T:1-T; x1=sin(omega*t); figure(1); stem(t,x1); grid y1=x1.^2; figure(2); stem(t,y1); grid x2=sin(3*omega*t); figure(3); stem(t,x2); grid y2=x2.^2; figure(4); stem(t,y2); grid x=x1+x2; figure(5); stem(t,x); grid y=y1+y2; figure(6); stem(t,y); grid yy=x.^2; figure(7); stem(t,yy,'-r'); grid x1[n] y1[n] 1 1 0.9 0.8 0.8 0.6 0.7 0.4 0.6 0.2 0 system -0.2 0.4 0.3 -0.4 0.2 -0.6 0.1 -0.8 -1 0.5 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x2[n] 1 0.9 0.6 0.8 0.4 0.7 system 0.2 0 0.4 0.3 -0.6 0.2 -0.8 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.5 -0.4 0.1 0.2 0.6 -0.2 0 0.1 1 0.8 -1 0 y2[n] 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 y1[n]+y2[n] 2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 x[n]=x1[n]+x2[n] y[n] 2 2.5 1.5 2 1 0.5 1.5 0 system -0.5 1 -1 0.5 -1.5 -2 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0 System stacjonarny W systemie stacjonarnym przesunięcie w czasie w ciągu wejściowym powoduje równoważne przesunięcie w ciągu wyjściowym Jeżeli na wymuszenie x odpowiedź wynosi y system x [ n ] ⎯⎯⎯ → y [ n] to na wymuszenie x przesunięte w czasie o k próbek układ odpowie sygnałem y tak samo przesuniętym system x [ n − k ] ⎯⎯⎯ → y [n − k ] Przykład systemu stacjonarnego y [ n] = − x [ n] 2 system x2 [ n ] = x [ n + 4] ⎯⎯⎯ → y2 [ n ] = y [ n + 4 ] MATLAB clear; fp=20; T=1/fp; f=1; omega=2*pi*f; t=0:T:1-T; x1=sin(omega*t); figure(1); stem(x1); grid y1=-x1/2; figure(2); stem(y1); grid x2=x1(5:20);figure(3); stem(x2); grid y2=-x2/2; figure(4); stem(y2); grid x1[n] y1[n] 1 0.5 0.8 0.4 0.6 0.3 0.4 0.2 0.2 0.1 0 system -0.2 0 -0.1 -0.4 -0.2 -0.6 -0.3 -0.8 -1 -0.4 0 2 4 6 8 10 12 14 16 18 20 -0.5 x2[n] 0 y2[n] 1 2 4 6 8 10 12 14 16 18 20 0.5 0.8 0.4 0.6 0.3 0.4 0.2 0.2 system 0 -0.2 0 -0.1 -0.4 -0.2 -0.6 -0.3 -0.8 -1 0.1 0 2 4 6 8 10 12 14 16 -0.4 -0.5 0 2 4 6 8 10 12 14 16 Analiza systemów LTI w dziedzinie czasu System spełniający obie własności – liniowości i stacjonarności nazywa się systemem liniowym - stacjonarnym (SLS, en. LTI) Systemy dyskretne SLS są matematycznie łatwe do opisania i analizowania, a także w konsekwencji łatwe w projektowaniu. W przypadku układu liniowego-stacjonarnego zależność pomiędzy sygnałem wejściowym x[n] i wyjściowym y[n] ma postać równania różnicowegoliniowego o stałych współczynnikach, które można zapisywać w ogólnej postaci jako: a0 y ⎡⎣ n ⎤⎦ + a1 y ⎡⎣ n − 1⎤⎦ + K + aN −1 y ⎡⎣ n − ( N − 1)⎤⎦ + aN yn− N = = b0 x ⎡⎣ n ⎤⎦ + b1 x ⎡⎣ n − 1⎤⎦ + K + bM x ⎡⎣ n − M ⎤⎦ Analiza równania różnicowego jest przeprowadzana zarówno w dziedzinie czasu, jak i częstotliwości. Analiza czasowa może być dokonywana bezpośrednio na podstawie równania. Przykład: System dyskretny opisany jest równaniem różnicowym, należy rozwiązać równanie, obliczyć przebieg wyjściowy przy zadanym warunku początkowym. y [ n + 1] − 0.9 y [ n ] = 1, y [ 0] = 1 Rozwiązanie przez bezpośrednie podstawienie: Dla kolejnych wartości n: y [1] = 1 + 0.9 y [ 2] = 1 + (1 + 0.9 ) ⋅ 0.9 = 1 + 0.9. + 0.92 y [3] = 1 + (1 + 0.9 + 0.92 ) ⋅ 0.9 = 1 + 0.9 + 0.92 + 0.93 Stąd ogólnie: y [ k ] = 1 + 0.9 + 0.92 + 0.93 + L + 0.9k Korzystając z zależności na sumę cząstkową ciągu geometrycznego: 1 − 0.9k +1 y [k ] = = 10 (1 − 0.9k +1 ) , k = 0,1, 2,... 1 − 0.9 MATLAB clear; % % obliczane rekurencyjnie y0=1; y=y0; for k=1:20 y=1+0.9*y; yy(k)=y; end yw=[y0 yy]; figure(1); stem(yw); % % wykorzystanie rozwiązania i=0:20; yu=10*(1-0.9.^(i+1)) figure(2); stem(yu) 9 8 7 6 5 4 3 2 1 0 0 5 10 15 20 25 Rozwiązanie metodą klasyczną: y [ n + 1] − 0.9 y [ n ] = 1, y [ 0] = 1 Spodziewane rozwiązanie jest sumą składowych – wymuszonej i swobodnej y [ n ] = y s [ n ] + yw [ n ] Składowa swobodna jest rozwiązaniem ogólnym równania jednorodnego: ys [ n + 1] − 0.9 ys [ n ] = 0 Równanie charakterystyczne: s − 0.9 = 0 Pierwiastek równania charakterystycznego s0 = 0.9 Składowa swobodna ma postać szeregu wykładniczego: ys [ n ] = A1 ⋅ 0.9n Składowa wymuszona ma charakter wymuszenia i jest szczególnym rozwiązaniem równania niejednorodnego yw [ n ] = A (const ) Współczynnik A obliczymy z równania różnicowego poprzez porównanie współczynników z lewej i prawej strony dla składowej wymuszonej: yw [ n + 1] − 0.9 yw [ n ] = 1 A − 0.9 A = 1 A = 10 Stałą A1 obliczamy z warunków początkowych ys [ 0] = A1 = y [ 0] − yw [ 0] = 1 − 10 = −9 Rozwiązanie końcowe: y [ n ] = yw [ n ] + ys [ n ] = 10 + ( −9 ) ⋅ 0.9n = 10 (1 − 0.9 ⋅ 0.9n ) y [ n ] = 10 (1 − 0.9n +1 ) , n = 0,1, 2,... Matematyczna reprezentacja sygnału dyskretnego Matematycznie proces próbkowania polega pomnożeniu sygnału analogowego f(t) z nieskończonym szeregiem impulsów (delt) Diraca d(t). Impulsy w takim szeregu powtarzają się z okresem próbkowania Tp. Szereg impulsów Diraca opisuje zależność: ∞ d ( t ) = ∑ δ ( t − nTp ) −∞ Na wykresie przedstawia się taki szereg w postaci strzałek o jednostkowej długości ( jest to miara pola powierzchni delty), oddalonych od siebie o stały przedział czasu równy T (okres próbkowania). d(t) δ (t − nT p ) 1 t 0 t0 = nT p Tp f * (t ) = f (t ) ⋅ d (t ) ∞ f * ( t ) = f ( t ) ⋅ ∑ δ ( t − nTp ) −∞ Wykorzystując własność filtracyjną delty Diraca otrzymujemy opisujące sygnał dyskretny: ∞ f * ( t ) = ∑ f ( nTp ) ⋅ δ ( t − nTp ) −∞ wyrażenie Zapis ten należy interpretować jako szereg impulsów Diraca o polach równych wartościom próbkowanej funkcji analogowej w punktach, w których znajdują się delty szeregu d(t). f (nTp )⋅ δ (t − nTp ) f*(t) t 0 t0 = nTp Widmo sygnału dyskretnego. F{ f * ( t )} Analiza sygnałów w dziedzinie częstotliwości pozwala na lepiej rozumieć zagadnienia przetwarzania sygnałów. Przetwarzaniu sygnałów dyskretnych, technikami Fouriera będą poświęcone osobne wykłady wyjaśniające zagadnienia dyskretnej transformaty Fouriera (DFT oraz FFT). Tu wykorzystamy znane już ciągłe przekształcenie Fouriera. Widmo delty Diraca zgodnie z definicją przekształcenia Fouriera wynosi: ∞ F{δ ( t )} = ∫ δ ( t ) e − jωt dt = 1 −∞ F →1 δ ( t ) ⎯⎯ Pary transformat wynikające z właściwości przekształcenia Fouriera: F→ e − jωT δ ( t − T ) ⎯⎯ F→ 2πδ ω 1 ⎯⎯ ( ) F→ 2πδ ω − ω e jω t ⎯⎯ ( 0) 0 zauważyć charakterystyczną Widmo przebiegu okresowego, pozwala właściwość widma sygnału dyskretnego. Wykorzystamy zespolony szereg Fouriera. Przebieg okresowy f(t) w postaci zespolonego szeregu Fouriera ma postać f (t ) = ∞ ∑ce jkω0t k k =−∞ Jego transformata Fouriera { F ( jω ) = F F ( jω ) = ∞ ∑ce k =−∞ jkω0t k ∞ } ∑ c F{e ω } jk k =−∞ F ( jω ) = 2π 0t k ∞ ∑ c δ (ω + kω ) k k =−∞ 0 gdzie 1T c k = ∫ f ( t ) e − jkω t dt T0 0 0 0 ω0 = 2π T0 współczynniki szeregu odstępy między impulsami widma t t ω ω Wynika z tego, że widmo dowolnego sygnału okresowego, opisuje szereg impulsów Diraca oddalonych od siebie o stałą wartość ω0 i o polach równych odpowiednio 2π c k . Wykorzystując właściwość symetrii przekształcenia Fouriera można stwierdzić, że sygnał złożony z impulsów Diraca odległych od siebie o stałą wartość (sygnał dyskretny) posiada okresowe widmo. Ta właściwość charakterystyki widmowej sygnału dyskretnego, ma swoje ważne konsekwencje w teorii próbkowania. Szereg impulsów Diraca rozpatrzymy jako szczególny przypadek przebiegu okresowego d (t ) = ∞ ∑ δ ( t − kT ) p k =−∞ Po przedstawieniu d(t) w postaci zespolonego szeregu Fouriera d (t ) = ∞ ∑ce k =−∞ jkω p t k współczynniki tego szeregu wynoszą Tp / 2 1 1 − jω kt ck = δ (t ) e dt = ∫ Tp − T / 2 Tp p p Stąd charakterystyka widmowa szeregu impulsów Diraca przyjmuje postać D ( jω ) = 2π Tp ∞ ⎛ k =−∞ ⎝ ∑ δ ⎜⎜ ω + k 2π Tp ⎞ ⎟⎟ ⎠ Transformata Fouriera szeregu impulsów Diraca powtarzających się z okresem Tp (w dziedzinie czasu) jest również szeregiem impulsów Diraca powtarzających się z okresem 2π / Tp (w dziedzinie częstotliwości). Ważne spostrzeżenie, że zmniejszając odstępy między impulsami w dziedzinie czasu ( większa częstotliwość próbkowania ) zwiększają się odstępy miedzy deltami w dziedzinie częstotliwości (i odwrotnie). Ta prosta zależność ma fundamentalne znaczenie podczas realizacji zadania próbkowania przebiegów analogowych. Do obliczenia transformaty Fouriera wykorzystamy wcześniejsze zależności. sygnału dyskretnego F{ f * ( t )} Transformata Fouriera iloczynu dwóch przebiegów ( twierdzenie o splocie z dziedzinie częstotliwości ): F{ f ( t ) ⋅ d ( t )} = F{ f * ( t )} = 1 F{ f ( t )} ∗ F{d ( t )} 2π 1 F{ f ( t )} ∗ F{d ( t )} 2π W uproszczonej postaci zapiszemy transformatę Fouriera sygnału dyskretnego jako 1 F * ( jω ) = F ( jω ) ∗ D ( jω ) 2π oraz znając transformatę szeregu impulsów Diraca otrzymamy: F * ( jω ) = F ( jω ) ∗ 1 ∞ ⎛ 2π δ ⎜⎜ ω + k ∑ Tp k =−∞ ⎝ Tp ⎞ ⎟⎟ ⎠ Pamiętamy, że splot funkcji z impulsem Diraca powoduje przesunięcie tej funkcji do punktu, w którym znajduje się delta. f T (t ) ∗ δ (t − t 0 ) = f T (t − t 0 ) f T (t ) A 0 T δ (t − t 0 ) f T (t − t 0 ) t0 przesunięcie t Dodatkowo jeżeli funkcja splatana jest z szeregiem impulsów, to następuje powielanie tej funkcji i przesuwanie powieleń do miejsc, w których znajdują się impulsy Diraca. f T (t ) ∗ (δ (t − t 0 ) + δ (t − t1 )) = f T (t − t 0 ) + f T (t − t1 ) f T (t ) A 0 δ (t − t 0 ) f T (t − t 0 ) t0 T δ (t − t1 ) f T (t − t1 ) t1 t przesunięcie i powielenie Wnioskujemy zatem, że widmo sygnału dyskretnego powstaje w wyniku powielania widma sygnału analogowego nieskończoną ilość razy i przesuwania tych powieleń o wielokrotności ωp. ωp = 2π Tp Transformata Fouriera sygnału dyskretnego ma zatem następującą postać: F * ( jω ) = 1 ∞ ⎛ 2π ⎞ F ⎜ jω + jk ⎟ ∑ Tp k =−∞ ⎜⎝ Tp ⎟⎠ Operację próbkowania sygnału analogowego f(t) można przedstawić graficznie w postaci wykresów w dziedzinie czasu i częstotliwości. f(t) f(t) ω t 0 0 D(ω) d(t) 2π 1 ω t 0 0 ωp Tp f*(t) F*(ω) ω t 0 0 ωp Jak wynika z wyprowadzeń postać widma sygnału dyskretnego zależy od częstotliwości próbkowania. W niektórych wypadkach w wyniku powieleń i przesunięć widma sygnału analogowego, może występować nakładanie się powieleń. Ten niepożądany efekt nazywany aliasingiem wymusza stosowanie dodatkowej filtracji analogowej (filtry antyaliasingowe) oraz odpowiednich technik próbkowania. - 1- Analiza systemów dyskretnych w dziedzinie czasu Równanie różnicowe x[n] y[n] System dyskretny Wymuszenie x[n] i odpowiedź y[n] w układy liniowych-stacjonarnych spełniają równanie różnicowe N-tego rzędu, liniowe, o stałych współczynnikach w postaci: N ∑ k =0 ak y ⎡⎣ n − k ⎤⎦ = M ∑ bl x ⎡⎣n − l ⎤⎦ l =0 Przykład: Należy obliczyć odpowiedź dwóch różnych systemów (dyskretnego i ciągłego) metodą klasyczną przy zadanych równaniach opisujących systemy, warunkach początkowych, i wymuszeniach (analogia w metodzie klasycznej). System dyskretny System ciągły Równanie różnicowe: Równanie różniczkowe y [ n + 1] + α ⋅ y [ n ] = 1 + β − n , y [0 ] = γ d dt y ( t ) + α ⋅ y ( t ) = 1 + e β t , y (0 ) = γ Rozwiązanie w postaci 2 składowych: y [ n ] = yw [ n ] + ys [ n ] y ( t ) = yw ( t ) + ys ( t ) Składowa swobodna: ys [ n + 1] + α ⋅ ys [ n ] = 0 d dt ys ( t ) + α ⋅ y s ( t ) = 0 - 2- s +α = 0 Równanie charakterystyczne: s +α = 0 s = −α ys [ n ] = A1 ( −α ) s = −α ys ( t ) = A1e −α t n Składowa wymuszona: yw [ n + 1] + α ⋅ yw [ n] = 1 + β − n w postaci: ] dtd yw ( t ) + α ⋅ yw ( t ) = 1 + e β t yw [ n ] = A + B ⋅ β − n A + B ⋅ β −( n+1) + α ( A + B ⋅ β − n ) = 1 + β − n ⎛ 1 ⎞ −n −n ⎟⋅β = 1+ β β⎠ ⎝ 1 A= 1+α A (1 + α ) + B ⎜α + B= yw [ n ] = yw ( t ) = A + B ⋅ e β t d dt ( A + Beβ ) + α ⋅ ( A + Be β ) = 1 + eβ t α A + B (α + β ) e β t = 1 + e β t A= β αβ + 1 B= 1 β + ⋅ β −n 1 + α αβ + 1 Stała z warunków początkowych: ys [0 ] = A1 = y [0 ] − yw [0 ] A1 = γ − t yw ( t ) = 1 α 1 α 1 α+β + 1 ⋅ eβ t α+β ys ( 0 ) = A1 = y ( 0 ) − yw ( 0 ) 1 1+α A1 = γ − 1 α Odpowiedź systemu: y [ n] = 1 β 1 ⎞ + ⋅ β − n + ⎛⎜ γ − ( −α )n ⎟ 1 + α αβ + 1 1+α ⎠ 42444 3 144424443 ⎝144 odp .wymuszona odp .swobodna y (t ) = 1 1 ⋅ e β t + ⎛⎜ γ − ⎞⎟ e−α t α α+β α⎠ 3 4244 1442443 ⎝14 1 + odp .wymuszona odp .swobodna t - 3- Odpowiedź impulsowa i splot Odpowiedź impulsowa h[n] systemu jest to sygnał na wyjściu systemu, gdy na jego wejściu wymuszono w chwili n=0 impuls jednostkowy δ [ n ] . δ[n] h[n] System dyskretny Impuls Diraca: δ[n] ... ... n ⎧1, n = 0 ⎩0, n ≠ 0 δ [ n] = ⎨ Odpowiedź impulsowa h[n] jest kompletną charakterystyką sytemu LTI, pozwalającą określić odpowiedź systemu na dowolne inne wymuszenie. Iloczyn sygnału x[n] oraz impulsu δ [ n ] możemy zapisać jako: x [ n ] ⋅ δ [ n ] = x [ 0] ⋅ δ [ n ] Ogólnie dla zależność ta dla impulsu przesuniętego w czasie jest następująca: x [ n] ⋅ δ [ n − k ] = x [ k ] ⋅ δ [ n − k ] gdzie n reprezentuje indeks czasu, x[n] opisuje sygnał. - 4- Można zauważyć, że mnożenie sygnału i impulsu przesuniętego daje w wyniku impuls przesunięty o polu równym wartości funkcji w miejscu przesunięcia impulsu. Ta właściwość pozwala zapisać dowolny sygnał dyskretny x[n] jako: x [ n ] = K + x [ −2] ⋅ δ [ n + 2] + x [ −1] ⋅ δ [ n + 1] + x [ 0] ⋅ δ [ n ] + x [1] ⋅ δ [ n − 1] + x [ 2] ⋅ δ [ n − 2] + K lub w skróconej formie: x [ n] = ∞ ∑ x[k ] ⋅ δ [n − k ] k =−∞ Wykorzystując własność liniowości i stacjonarności odpowiedź systemu wynosi: y [ n] = ∞ ∑ x [ k ] ⋅h [ n − k ] k =−∞ Tzn. jeżeli wymuszeniem systemu LTI jest superpozycja „ważonych” impulsów przesuniętych w czasie to jego odpowiedzią będzie superpozycja identycznie „ważonych” odpowiedzi impulsowych identycznie przesuniętych w czasie. Operację pozwalającą wyznaczyć odpowiedź systemu na dowolne wymuszenie nazywa się splotem i oznacza gwiazdką * jak w wyrażeniu: x [ n] ∗ h [ n] = Przykład: Odpowiedź impulsowa systemu LTI wynosi: ∞ ∑ x [ k ] ⋅h [ n − k ] k =−∞ - 5- ⎧1, n = ±1 ⎪ h [ n ] = ⎨2, n = 0 ⎪ 0, inne ⎩ h[n] 2 -1 n 0 1 2 3 4 5 Należy wyznaczyć odpowiedź systemu na wymuszenie: ⎧ 2, n = 0 ⎪ 3, n = 1 ⎪ x [ n] = ⎨ ⎪−2, n = 2 ⎪⎩ 0, inne Rozwiązanie: Wymuszenie wynosi: x [ n ] = 2 ⋅ δ [ n ] + 3 ⋅ δ [ n − 1] − 2 ⋅ δ [ n − 2] Odpowiedź będzie superpozycją odpowiedzi impulsowych: - 6- y [ n ] = 2 ⋅ h [ n ] + 3 ⋅ h [ n − 1] − 2 ⋅ h [ n − 2] Ponieważ odpowiedź impulsowa wynosi: h [ n ] = δ [ n + 1] + 2 ⋅ δ [ n ] + δ [ n − 1] Zatem odpowiedź systemu y [ n ] = 2 ⋅ (δ [ n + 1] + 2 ⋅ δ [ n ] + δ [ n − 1]) +3 ⋅ (δ [ n ] + 2 ⋅ δ [ n − 1] + δ [ n − 2]) −2 ⋅ (δ [ n − 1] + 2 ⋅ δ [ n − 2] + δ [ n − 3]) y [ n ] = 2δ [ n + 1] + 4δ [ n ] + 2δ [ n − 1] +3δ [ n ] + 6δ [ n − 1] + 3δ [ n − 2] −2δ [ n − 1] − 4δ [ n − 2] − 2δ [ n − 3] Stąd ostatecznie odpowiedź wynosi: y[ n] = 2δ [ n +1] + 7δ [ n] + 6δ [ n −1] −δ [ n − 2] − 2δ [ n − 3] Matlab (splot dwóch sygnałów) - 7- h=[1 2 1]; x=[2 3 –2]; y=conv(h,x)) Rozwiązanie graficznie: - 8- x[n] v0[n] 6 4 2 -1 0 2 n 1 2 3 4 5 -1 0 1 -4 v1[n] 1 2 3 4 5 -1 0 v2[n] 2 1 -2 2 3 4 5 -4 3 0 5 n 1 -4 -1 4 4 2 n x[n] 3 6 3 0 2 -4 x[n] -1 n 6 4 2 n 1 2 3 4 5 -1 0 n 1 2 3 4 5 -4 y[n] 6 x[n] 2 -1 0 -2 4 2 n 1 2 3 4 5 -1 0 n 2 1 3 4 5 -4 Schematy blokowe: Systemy LTI można przedstawić w postaci schematu blokowego, który jest graficznym zapisem równania różnicowego. - 9- Elementy: Mnożenie skalarne x[n] y[n]=cx[n] Dodawanie x[n] + y[n]=x[n]+w[n] w[n] Przesuwanie w czasie x[n] z-1 y[n]=x[n-1] Połączenia: Połączenie równoległe: h1[n] + y[n] x[n] + h2[n] x[n] y[n] h1[n]+ h2[n] x [ n ] ∗ h1 [ n ] + x [ n ] ∗ h2 [ n ] = x [ n ] ∗ ( h1 [ n ] + h2 [ n ]) Połączenie kaskadowe: - 10- x[n] h1[n] h2[n] x[n] y[n] h1[n]* h2[n] { x [ n] ∗ h [ n]} ∗ h [ n] = x [ n] ∗ {h [ n] ∗ h [ n]} 1 2 1 2 Przykład: Wyznacz odpowiedź systemu dyskretnego na wymuszenie: x [ n ] = 2 ⋅ δ [ n ] − δ [ n − 1] h1[n] + + h3[n] + x[n] h2[n] h4[n] jeżeli odpowiedzi impulsowe poszczególnych systemów wynoszą: h1 [ n ] = 1[ n ] h2 [ n ] = 1[ n + 2] − 1[ n ] h3 [ n ] = δ [ n − 2] h4 [ n ] = a n ⋅ 1[ n ] Rozwiązanie: h [ n ] = ( h1 [ n ] + h2 [ n ]) ∗ h3 [ n ] − h4 [ n ] - y[n] y[n] - 11- h12 [ n ] = 1[ n ] + 1[ n + 2] − 1[ n ] = 1[ n + 2] h123 [ n ] = 1[ n + 2] ∗ δ [ n − 2] = 1[ n ] Odpowiedź impulsowa całego systemu wynosi: h [ n ] = (1 − a n ) ⋅ 1[ n ] Odpowiedź na zadane wymuszenie: y [ n ] = 2 ⋅ (1 − a n ) ⋅ 1[ n ] − (1 − a n −1 ) ⋅ 1[ n − 1] Przykład: Wyznaczyć odpowiedź układu (dla zerowych warunków początkowych) -6 x[n] y[n+2] y[n] y[n+1] + Z -1 5 na wymuszenie w postaci skoku jednostkowego: Z -1 - 12- 1[n] 1 ... ... Skok jednostkowy: ⎧1, n ≥ 0 1[ n ] = ⎨ ⎩0, n < 0 Rozwiązanie: Równanie różnicowe ze schematu blokowego: y [ n + 2] = x [ n ] − 6 y [ n ] + 5 y [ n + 1] lub y [ n + 2] − 5 y [ n + 1] + 6 y [ n ] = x [ n ] Wstawiając do równania wymuszenie: y [ n + 2] − 5 y [ n + 1] + 6 y [ n ] = 1 Metoda klasyczna: Zakładamy rozwiązanie z postaci 2 składowych: y [ n ] = yw [ n ] + ys [ n ] Dla składowej swobodnej: ys [ n + 2] − 5 ys [ n + 1] + 6 ys [ n ] = 0 Równanie charakterystyczne s 2 − 5s + 6 s = 0 Pierwiastki równania charakterystycznego: n - 13- s1 = 2, s2 = 3 Składowa swobodna będzie miała postać: *) ys [ n ] = A1 2n + A2 3n Dla składowej wymuszonej: yw [ n ] = A yw [ n + 2] − 5 yw [ n + 1] + 6 yw [ n ] = 1 A − 5A + 6A = 1 A − 5A + 6A = 1 yw [ n ] = A = 1 2 Stałe A1 i A2 oblicza się z warunków początkowych: *) ys [ 0] = A1 + A2 ys [1] = 2 A1 + 3 A2 oraz 1 1 =− 2 2 1 1 ys [1] = y [1] − yw [1] = 0 − = − 2 2 ys [ 0 ] = y [ 0 ] − yw [ 0 ] = 0 − **) Porównując prawe strony *) i **) obliczamy stałe: A1 = −1 A2 = 1 2 Ostatecznie odpowiedź systemu wynosi: y [ n] = Schemat układu 2 rzędu 1 1 − 2n + 3n 2 2 - 14- Schemat przedstawia typowy dyskretny system LTI opisany równaniem różnicowym 2 rzędu: b0 x[n] + w[n] y[n] + z-1 x[n-1] z-1 b1 + + -a1 y[n-1] z-1 z-1 b2 x[n-2] -a2 y[n-2] Sygnał wejściowy jest dwa razy przesunięty w czasie, na wyjściach bloków opóźniających otrzymuje się sygnały x[n-1] i x[n-2]. Sygnały te są skalowane oraz sumowane w wyniku czego otrzymuje się sygnał: w[ n ] = b0 x [ n ] + b1 x [ n − 1] + b2 x [ n − 2] Następnie możemy napisać dla sygnału wyjściowego y[n] w zależności od w[n]: y [ n ] = w[ n ] − a1 y [ n − 1] − a2 y [ n − 2] Stąd: y [ n ] = b0 x [ n ] + b1 x [ n − 1] + b2 x [ n − 2] − a1 y [ n − 1] − a2 y [ n − 2] y [ n ] + a1 y [ n − 1] + a2 y [ n − 2] = b0 x [ n ] + b1 x [ n − 1] + b2 x [ n − 2] lub 2 2 k =0 l =0 ∑ ak y [ n − k ] = ∑ bl x [ n − l ] - 15- Alternatywny schemat blokowy dla układu 2 rzędu x[n] b0 + + f[n] y[n] z-1 -a1 + b1 + f[n-1] z-1 -a2 b2 f[n-2] Przykład: System opisany równaniem należy przedstawić w postaci schematu blokowego: y [ n ] + 12 y [ n − 1] − 13 y [ n − 3] = x [ n ] + 2 x [ n − 2] Rozwiązanie x[n] + y[n] + z-1 z-1 + z-1 -1/2 z-1 2 z-1 1/3 - 16- Metoda równań stanu. Opis systemu w przestrzeni stanu polega na utworzeniu układu równań różnicowych pierwszego rzędu opisujących przebiegi zmiennych stanu systemu oraz zależności odpowiedzi systemu od zmiennych stanu i wymuszenia. Równania te przedstawia się w formie macierzowej. Na schemacie blokowym sygnały f[n-1], f[n-2], które znajdują się na wyjściach bloków opóźniających oznaczymy odpowiednio q1[n] oraz q2[n]. Wielkości te nazywa się zmiennymi stanu. x[n] + + y[n] z-1 + -a1 b1 q1[n] + z-1 -a2 b2 q2[n] Wartości zmiennych stanu zgodnie ze schematem blokowym wynoszą: q1 [ n + 1] = −a1q1 [ n ] − a2 q2 [ n ] + x [ n ] q2 [ n + 1] = q1 [ n ] Ze schematu możemy także wyznaczyć zależność odpowiedzi od wymuszenia i zmiennych stanu: y [ n ] = x [ n ] − a1q1 [ n ] − a2 q2 [ n ] + b1q1 [ n ] + b2 q2 [ n ] - 17- W formie macierzowej powyższe równania: ⎡ q1 [ n + 1] ⎤ ⎡ −a1 ⎢ ⎥=⎢ ⎣ q2 [ n + 1]⎦ ⎣ 1 − a2 ⎤ ⎡ q1 [ n ] ⎤ ⎡1 ⎤ x [ n] ⎢ ⎥+ 0 ⎥⎦ ⎣ q2 [ n ]⎦ ⎢⎣ 0 ⎥⎦ ⎡ q [ n] ⎤ y [ n ] = [b1 − a1 b2 − a2 ] ⎢ 1 ⎥ + [1] x [ n ] ⎣ q2 [ n ]⎦ Definiując wektor stanu jako : ⎡ q [ n] ⎤ Q [ n] = ⎢ 1 ⎥ ⎣ q 2 [ n ]⎦ Równania stanu zapiszemy: Q [ n + 1] = AQ [ n ] + bx [ n ] y [ n ] = cQ [ n ] + Dx [ n ] gdzie: ⎡ −a A=⎢ 1 ⎣ 1 − a2 ⎤ ⎡1 ⎤ , b = ⎢0⎥ 0 ⎥⎦ ⎣ ⎦ c = [b1 − a1 b2 − a2 ] , D = [1] Opis systemu w przestrzeni stanu wykorzystuje się często w obliczeniach numerycznych. - 18- Klasyfikacja systemów: Charakterystyki takie jak: • Równanie różnicowe • Odpowiedź impulsowa • Schemat blokowy • Macierze stanu są równoznacznymi modelami matematycznymi systemów dyskretnych. Pozwalają analizować systemy w dziedzinie czasu, badać ich właściwości i odpowiednio klasyfikować. Pamięć systemów W układach bez pamięci odpowiedź systemu zależy tylko od teraźniejszych wartości wymuszenia. Ponieważ odpowiedź układu dyskretnego można przedstawić jako splot: y [ n] = ∞ ∑ h [ k ] ⋅x [ n − k ] k =−∞ w układach bez pamięci musi być spełniony warunek dla odpowiedzi impulsowej: h [ k ] = 0 dla k ≠ 0 - 19- Przyczynowość systemów: Odpowiedź układu przyczynowego zależy tylko od przeszłych i teraźniejszych wartości sygnału wejściowego. y [ n] = ∞ ∑ h [ k ] ⋅x [ n − k ] k =−∞ Przeszłe i teraźniejsze wartości wymuszenia x [ n ] , x [ n − 1] , x [ n − 2] ,... są związane z indeksem k ≥ 0 sumy splotowej, natomiast przyszłe wartości wymuszenia są związane z k < 0 . Zatem dla systemów przyczynowych musi być spełniony warunek dla odpowiedzi impulsowej: h [ k ] = 0 dla k < 0 Oraz suma splotowa: ∞ y [ n ] = ∑ h [ k ] ⋅x [ n − k ] k =0 Stabilność systemów: Układ jest stabilny w sensie BIBO (bounded input, bounded output), jeżeli przy ograniczonym sygnale wejściowym sygnał wyjściowy jest także ograniczony. Formalnie można warunek zapisać: x [ n] ≤ M x < ∞ ⇒ y [ n] ≤ M y < ∞ Możemy wyznaczyć warunki jakie musi spełniać odpowiedź impulsowa, aby gwarantowała stabilność systemu. y [ n] = h [ n] ∗ x [ n] - 20- y [ n] = ∞ ∑ h [ k ] ⋅x [ n − k ] k =−∞ Ponieważ a + b ≤ a + b y [ n] ≤ ∞ ∑ h[k ] x[n − k ] k =−∞ oraz a ⋅ b = a ⋅ b y [ n] ≤ ∞ ∑ h[k ] x[n − k ] k =−∞ Jeżeli wymuszenie jest ograniczone x [ n ] ≤ M x < ∞, oraz x [ n − k ] ≤ M x < ∞ to odpowiedź ∞ y [ n] ≤ M x ∑ h [ k ] k =−∞ Zatem aby odpowiedź była ograniczona musi być spełniony warunek ograniczonej absolutnej sumy odpowiedzi impulsowej. Zatem wystarczającym warunkiem stabilności systemu LTI jest warunek: ∞ ∑ h[k ] < ∞ k =−∞ Pasywność systemów: System dyskretny jest pasywny jeżeli dla każdego sygnału wejściowego x[n] o skończonej energii sygnał wyjściowy y[n] posiada energię mniejszą lub równą energii x[n]. ∞ ∑ y [k ] k =−∞ 2 ≤ ∞ ∑ x[k ] k =−∞ 2 <∞ 1 Próbkowanie równomierne Próbkowanie równomierne, jest procesem konwersji sygnału analogowego (o czasie ciągłym) do postaci próbek pobieranych w równych odstępach czasu. Próbkowanie przeprowadza się poprzez podanie na wejście przetwornika analogowo-cyfrowego (A/C) sygnału ciągłego. Na jego wyjściu otrzymuje się ciąg wartości liczbowych. Sygnał analogowy można próbkować z dowolną szybkością. Należy sobie jednak zadać pytanie, na ile dobrze te wartości reprezentują sygnał oryginalny. Odpowiedź na to pytanie daje teoria próbkowania. Proces konwersji analogowo-cyfrowej można podzielić na trzy podstawowe etapy: • filtrowanie antyaliasingowe • próbkowanie • pamiętanie przetwornik A/C filtr antyaliasingowy wejściowy sygnał analogowy próbkowanie przefiltrowany sygnał analogowy sygnał dyskretny pamiętanie sygnał cyfrowy 2 Filtrowanie antyaliasingowe Widmo rzeczywistych sygnałów jest ze względu na zniekształcenia i szumy bardzo szerokie. Filtrowanie antyalisingowe, dolnoprzepustowym filtrem analogowym stosowane jest w celu ograniczenia szerokości widma rzeczywistego sygnału. Zastosowanie tego typu filtracji ma na celu zapobieżenie zjawisku nakładania się widm powstających w wyniku ich powielania podczas wykonywania próbkowania sygnału. sygnał szum szum f -B B f -2fp -fp 0 fp 2fp Na rys. pokazano widmo ciągłe sygnału o szerokości pasma B zawierającego szum oraz efekt nakładania się widm sygnału i szumu w wyniku próbkowania przebiegu. Taki efekt zniekształcenia widma występuje w wyniku braku filtru antyaliasingowego. 3 charakterystyka filtru antyaliasingowego szum szum f -B B f -2fp -fp 0 fp 2fp Rysunek przedstawia przypadek zastosowania filtru analogowego dolnoprzepustowego o częstotliwości odcięcia równej B przy częstotliwości próbkowania fp. Zastosowanie filtru analogowego dolnoprzepustowego pozwala unikać nakładania się widm. Próbkowanie: Pytanie: Czy znając jedynie zbiór próbek sygnału f[n] : n=...,-2,-1,0,1,2,3,... oddalonych o przedział próbkowania Tp możemy dokładnie odtworzyć sygnał analogowy ? Inaczej mówiąc czy dysponujemy informacją o zachowaniu się sygnału między danymi próbkami ? 4 Odpowiedź: W ogólnym przepadku NIE ! (jest to oczywiste) Ale: Jeżeli jednak sygnał próbkowany spełniałby pewien dodatkowy warunek odpowiedź może brzmieć TAK! Ten dodatkowy warunek dotyczy szybkości zmian przebiegu, który jeżeli analizujemy sygnał w dziedzinie częstotliwości jest związany z szerokością pasma sygnału. Jeżeli sygnał nie może się szybko zmieniać to znaczy, że nie zawiera składowych o dużych częstotliwościach powyżej częstotliwości B, sygnał ma ograniczone pasmo. W praktyce termin sygnał o ograniczonym paśmie oznacza jedynie to, że energia zawarta w sygnale poza zakresem ±B jest poniżej czułości naszego systemu. Widmo amplitudowe f -B B 5 Twierdzenie o próbkowaniu (Shannona) Niech f(t) będzie sygnałem ciągłym, którego widmo spełnia warunek ograniczonego pasma 1: F ( jω ) = 0 dla ω ≥ 2π B Zgodnie z kryterium Nyquista, sygnał f(t) można odtworzyć z pełną dokładnością z jego próbek gdy częstotliwość próbkowania spełnia zależność: f p ≥ 2B ω p ≥ 4π B Częstotliwość B wyznacza szerokość widma sygnału i nazywa się częstotliwością Nyquista. Proces próbowania sygnału analogowego oraz odtwarzanie sygnału z jego próbek przedstawiono na wykresach Rozpatrzymy trzy różne przypadki wyboru częstotliwości próbkowania: • f p = 2B • f p > 2B • f p < 2B Ostatni przypadek jest niezgodny z twierdzeniem o próbkowaniu. Z tak wybranych próbek nie można odtworzyć oryginalnego sygnału analogowego. Przyczyną jest nakładanie się powielanych widm i ich nieodwracalne zniekształcenie. 1 Widmo nie zawiera dystrybucji w punktach ±B 6 f p = 2B Jest to przypadek graniczny. Powielane widma „stykają się” ze sobą. f(t) ⎛ω ⎞ F⎜ ⎟ ⎝ 2π ⎠ f t 0 0 d(t) ⎛ω ⎞ D⎜ ⎟ ⎝ 2π ⎠ 2π 1 f t 0 f p = 2B Tp 0 2B fp ⎛ω F *⎜ ⎝ 2π f * (t ) = f (t ) ⋅ d (t ) ⎞ ⎛ω ⎟ = F⎜ ⎠ ⎝ 2π ⎞ ⎛ω ⎞ ⎟ ∗ D⎜ ⎟ ⎠ ⎝ 2π ⎠ f t 0 0 fp h(t) 1 -2Tp -3Tp 2Tp 0 -Tp Tp ⎛ω ⎞ H⎜ ⎟ ⎝ 2π ⎠ t f 3Tp -B f (t ) = h(t ) ∗ f * (t ) 0 ⎛ω ⎞ ⎛ω ⎞ ⎛ω ⎞ F⎜ ⎟ = H⎜ ⎟ ⋅ F *⎜ ⎟ ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ 2π ⎠ f t 0 B 0 7 Proces próbowania sygnału analogowego oraz odtwarzanie sygnału z jego próbek dla f p = 2B f p > 2B Powielane widma są rozłączne. f(t) ⎛ω ⎞ F⎜ ⎟ ⎝ 2π ⎠ f t 0 0 d(t) ⎛ω ⎞ D⎜ ⎟ ⎝ 2π ⎠ 2π 1 f t 0 0 f p > 2B Tp 2B fp ⎛ω ⎞ ⎛ω ⎞ ⎛ω ⎞ F * ⎜ ⎟ = F ⎜ ⎟ ∗ D⎜ ⎟ ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ 2π ⎠ f * (t ) = f (t ) ⋅ d (t ) f t 0 0 fp h(t) 1 -2Tp -3Tp 2Tp 0 -Tp Tp ⎛ω ⎞ H⎜ ⎟ ⎝ 2π ⎠ t f 3Tp -B f (t ) = h(t ) ∗ f * (t ) 0 ⎛ω ⎞ ⎛ω ⎞ ⎛ω ⎞ F⎜ ⎟ = H⎜ ⎟ ⋅ F *⎜ ⎟ ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ 2π ⎠ f t 0 B 0 8 Proces próbowania sygnału analogowego oraz odtwarzanie sygnału z jego próbek dla f p > 2B f p < 2B Widma nakładają się. f(t) ⎛ω ⎞ F⎜ ⎟ ⎝ 2π ⎠ f t 0 0 d(t) ⎛ω ⎞ D⎜ ⎟ ⎝ 2π ⎠ 2π 1 f t 0 f p < 2B Tp 0 2B fp ⎛ω F *⎜ ⎝ 2π f * (t ) = f (t ) ⋅ d (t ) ⎞ ⎛ω ⎟ = F⎜ ⎝ 2π ⎠ ⎞ ⎛ω ⎞ ⎟ ∗ D⎜ ⎟ ⎠ ⎝ 2π ⎠ f t 0 0 fp h(t) 1 -2Tp -3Tp 2Tp 0 -Tp Tp ⎛ω ⎞ H⎜ ⎟ ⎝ 2π ⎠ t f 3Tp -B f (t ) = h(t ) ∗ f * (t ) 0 B ⎛ω ⎞ ⎛ω ⎞ ⎛ω ⎞ F⎜ ⎟ = H⎜ ⎟ ⋅ F *⎜ ⎟ ⎝ 2π ⎠ ⎝ 2π ⎠ ⎝ 2π ⎠ f t 0 aliasing 0 9 Proces próbowania sygnału analogowego oraz odtwarzanie sygnału z jego próbek dla f p < 2B Przykład: Dany jest ciąg próbek, oraz wiadomo, że reprezentują one wartości chwilowe pewnego przebiegu sinusoidalnego. Pobrane są w równych odstępach czasu. Zadanie polega na odtworzeniu przebiegu ( wyznaczeniu jego parametrów – amplitudy i częstotliwości ). X[0] X[1] X[2] X[3] X[4] X[5] X[6] 0 0.866 0.866 0 -0.866 -0.866 0 Jeżeli ciąg reprezentuje próbki przebiegu sinusoidalnego to nie można jednoznacznie określić tego przebiegu jedynie z próbek. 10 f (t ) 0.866 f p = 6 Hz t Tp -0.866 f (t ) 1Hz f p > 2 f1 t Tp T1 f (t ) 7Hz f p < 2 f1 t Tp T1 Wymagana jest dodatkowa informacja. Jeżeli założymy, że próbkowanie wykonano zgodnie z kryterium Nyquista, to oryginalnym przebiegiem jest sinusoida o częstotliwości 1Hz. Zadanie 1: Ile minimalnie próbek należy pobierać w okresie sygnału sinusoidalnego zgodnie z twierdzeniem o próbkowaniu ? Oznaczmy częstotliwość sinusoidy f1. Zgodnie z kryterium Nyquista częstotliwość próbkowania musi być tak wybrana aby spełniony był warunek2: 2 W tym przypadku ponieważ na granicy pasma pojawia się dystrybucja, wymagana jest ostra nierówność. 11 f p > 2 f1 Zatem fp T n= 1 >2 nmin = 3 >2 Tp f1 Odp: Minimalna liczba próbek, pobierana w okresie sinusoidy wynosi 3. Wtedy można w sposób jednoznaczny odtworzyć sinusoidę z próbek. Zadanie 2: Sygnał ma ograniczone pasmo do B=1000Hz. Jaką minimalną liczbę próbek należy pobierać w przedziale czasu T=0.02s, aby można było z tych próbek jednoznacznie odtworzyć przebieg? Zgodnie z twierdzeniem o próbkowaniu f p ≥ 2B n ≥ 0.02 ⋅ 2 ⋅ 1000 n ≥ 40 Odp: Minimalna liczba próbek wynosi 40. n= T1 = T1 f p ≥ T1 2 B Tp 12 Próbkowanie sygnałów pasmowych W praktyce często próbkowane są analogowe sygnały pasmowe czyli takie, których ograniczone pasmo jest skupione wokół pewnej częstotliwości różnej od zera. Do tego typu sygnałów można z powodzeniem stosować próbkowanie dolnopasmowe, jednak zastosowanie specjalnej techniki zwanej próbkowaniem pasmowym pozwala znacznie zmniejszyć koszty realizacji sprzętowej, polegającej na zmniejszeniu szybkości przetwornika A/C oraz zmniejszeniu pamięci wymaganej do pamiętania wartości próbek. Jako przykład próbkujmy przebieg pasmowy o szerokości pasma B=5kHz, skupiony wokół częstotliwości fc=20kHz. Zgodnie z kryterium Nyquista, ponieważ najwyższa składowa częstotliwościowa w sygnale ma wartość 22,5kHz należy próbkować sygnał z częstotliwością nie mniejszą niż 45kHz. ⎛ω ⎞ F⎜ ⎟ ⎝ 2π ⎠ B =5kHz f -fc 0 fc =20kHz ⎛ω ⎞ F *⎜ ⎟ ⎝ 2π ⎠ f p = fc − B 2 f -fc fp 0 fp fc fp =17,5 kHz fp Na rysunku pokazano skutki próbkowania tego sygnału z częstotliwością znacznie mniejszą, równą 17,5 kHz. Można zauważyć, że mimo mniejszej częstotliwości próbkowania powielenia widma nie zniekształcają widma oryginalnego skupionego wokół częstotliwości fc. Unikamy aliasingu. Okazuje się że próbkowanie z częstotliwością 45kHz nie jest konieczne. 13 Wyprowadzenie ogólnych zależności dotyczące próbkowania pasmowego. Dany jest ciągły sygnał pasmowy o szerokości pasma B, o częstotliwości nośnej fc. Próbkujemy ten sygnał z dowolną częstotliwością fp. Maksymalna częstotliwość próbkowania Przy arbitralnej liczbie powieleń widma m w przedziale 2fc-B sygnał można próbkować z maksymalną częstotliwością fp1 taką że: mf p1 = 2 f c − B ⎛ω ⎞ F⎜ ⎟ ⎝ 2π ⎠ 2 fc − B 0 -fc fc f fp1 Widmo sygnału dyskretnego, w przedziale 2fc-B sygnał można próbkować z maksymalną częstotliwością fp1, f p1 = 2 fc − B m 14 Minimalna częstotliwość próbkowania Jeżeli szybkość próbkowania zmniejsza się to powielenia przesuwają się i osiągamy dolną granicę częstotliwości próbkowania fp2. Przy arbitralnej liczbie powieleń widma m w przedziale 2fc+B sygnał można próbkować z minimalną częstotliwością fp2 taką że: ( m + 1) f p 2 = 2 f c +B ⎛ω ⎞ F⎜ ⎟ ⎝ 2π ⎠ 2 fc + B 0 -fc f fp2 fc Widmo sygnału dyskretnego, w przedziale 2fc+B sygnał można próbkować z minimalną częstotliwością fp2, f p2 = 2 fc + B m +1 W ten sposób otrzymujemy zależność definiującą zakres częstotliwości próbkowania pasmowego zależną od szerokości pasma sygnału, częstotliwości nośnej i liczby powieleń 2 fc + B 2f −B ≤ fp ≤ c m +1 m przy czym m jest dowolną liczbą naturalną zapewniającą spełnianie kryterium Nyquista w odniesieniu do szerokości pasma sygnału f p ≥ 2B . 15 Przykład: Przebieg pasmowy o szerokości pasma B=5kHz i częstotliwości nośnej fc=20kHz. m Maksymalna Minimalna f p2 = 2 fc + B m +1 f p1 = 2 fc − B m Optymalne fp 1 35,0 kHz 22,5 kHz 22,5 kHz 2 17,5 kHz 15,0 kHz 17,5 kHz 3 11,66 kHz 11,25 kHz 11,25 kHz 4 8,75 kHz 9,0 kHz - 5 7,0 kHz 7,5 kHz - Jak wynika z tabeli częstotliwość próbkowania nie może być mniejsza niż 11,25kHz. Za optymalną częstotliwość próbkowania przyjmuje się taką przy której powielenia widma stykają się ze sobą w punkcie f = 0Hz. Przy tak przyjętej częstotliwości próbkowania błędy związane dalszym przetwarzaniem cyfrowym (np. filtrowaniem) sygnału są minimalne. Zdefiniujemy nowy parametr R jako stosunek częstotliwości najwyższej w paśmie sygnału do szerokości pasma R= fc + B 2 B Wykreślimy zależność minimalnej częstotliwości próbkowania od parametru R dla różnych wartości m 16 ( m + 1) f p2 = 2 fc + B B f + c m f 1 + ( ) p2 2 = 2B B ( m + 1) f ozn: f p min = f p 2 =R p2 2B f p min 2 R = B ( m + 1) f p min B m =0 4 =1 3 m 2 m= 2,25 2 3 m= m=4 m=5 R 1 2 3 4 4,5 5 6 7 8 9 Minimalna częstotliwość próbkowania w zależności od R dla różnych wartości m Z wykresu wynika, że niezależnie od R minimalna częstotliwość próbkowania nie przekracza 4B i zmniejsza się dążąc do 2B przy zwiększaniu częstotliwości nośnej (wzrost R). 17 Wprowadzając na wykresie warunek ograniczający częstotliwość z góry (maksymalną) otrzymamy obszary częstotliwości zakazanych i dozwolonych związanych z odpowiednią wartością parametru m. mf p1 = 2 f c − B mf p1 +1 = R 2B f p1 = f p max f p max B = 2 ( R − 1) m m =1 fp pr do óbko l n o wa pas nie mo we B 6 2 m= 3 m= 4 m =4 2 R strefa zakazana 1 2 3 4 5 6 7 8 9 Minimalna i maksymalna częstotliwość próbkowania w zależności od R dla różnych wartości m Wprawdzie z rysunku wynika, że możemy stosować częstotliwości próbkowania, które leżą na granicy strefy zakazanej i dozwolonej, jednak w praktycznych zastosowaniach należy wybierać częstotliwości nieco oddalone od tych granic. Takie postępowanie pozwala uniknąć np. problemów związanych z niedokładnością filtrów pasmowych, niestabilnością zegara układu próbkującego itp. 18 Przykład: Wracając do przebiegu przykładowego o szerokości pasma B=5kHz i częstotliwości nośnej fc=20kHz. 5 20 + 2 = 4.5 R= 5 Z wykresu można odczytać dla tej wartości R, minimalną akceptowalną częstotliwość próbkowania. Wynosi ona przy m=3 ( powielenia widma ) 2.25B, czyli 11.25kHz co jest zgodne z wartością wyznaczoną w tabeli. Zadanie: Przebieg o szerokości pasma B=200Hz i częstotliwości nośnej fc=1000Hz. • Jaką minimalną częstotliwość próbkowania można stosować ? • Czy można stosować częstotliwość próbkowania fp=400Hz, 1200Hz ? • Jak uwzględnić błąd częstotliwości próbkowania związany z niedokładnością zegara ? Obliczamy parametr R R= 200 2 = 5.5 200 1000 + Jak wynika z wykresu dla R=5.5 sygnał można próbkować z minimalną częstotliwością przy liczbie powieleń widma m=4. 19 =1 fp m B 2 m= Δf p = ±100 Hz 6 3 m= 4 m=4 2 ΔB = 900 ÷ 1100 Hz strefa zakazana 1 2 3 4 5 6 f p min = 2 fc + B m +1 7 8 R 9 Częstotliwość minimalna dla m=4 wynosi: f p min 4 = 2 ⋅ 1000 + 200 = 440 Hz 4 +1 Częstotliwość maksymalna dla m=4 wynosi: f p max = f p max 4 = 2 fc − B m 2 ⋅ 1000 − 200 = 450 4 Nie jest możliwe próbkowanie z częstotliwością 400Hz, natomiast możliwe 1200Hz. Przy fp=1200Hz na wykresie zaznaczono zakres dopuszczalnego błędu próbkowania. -1- Przekształcenie zet ( Z ) Definicja przekształcenia Z Przekształcenie zet jest w dziedzinie czasu dyskretnego odpowiednikiem ciągłego przekształcenia Laplace’a w dziedzinie czasu ciągłego. Podamy dwie równoważne definicje przekształcenia zet różniące się jedynie sposobem zapisu matematycznego sygnału dyskretnego: • Dla sygnału zapisanego w postaci ciągu wartości f[n]: F (z) definicja ∞ ∑ f [n] z −n = −∞ • Dla sygnału spróbkowanego f*(t) ( wykorzystując przekształcenie Laplace’a ) definicja F ( z ) = L{ f * ( t )} e sT p =z Sygnał dyskretny ∞ f * ( t ) = ∑ f ( nTp ) ⋅ δ ( t − nTp ) −∞ Transformata Laplace’a (dwustronna) sygnału dyskretnego: ∞ FII * ( s ) = ∑ f ( nTp ) ⋅ e −∞ − nsTp e sT p =z -2- Stąd po dokonaniu podstawienia zgodnie z definicją otrzymamy wyrażenie jak dla ciągu ∞ F ( z ) = ∑ f ( nTp ) ⋅ z − n −∞ Obszar zbieżności Ponieważ przekształcenie Z ciągu f[n] jest zdefiniowane jako szereg nieskończony, zatem istnieje tylko dla tych wartości dla których szereg jest zbieżny. Suma zawiera zarówno dodatnie jak i ujemne potęgi zmiennej z. Jak wiadomo z teorii szeregów potęgowych suma ujemnych potęg jest zbieżna dla |z| większego niż pewna stała r1, a suma potęg dodatnich jest zbieżna dla |z| mniejszego niż pewna stała r2. Wynika stąd, że obszar zbieżności (istnienia) transformaty Z ma kształt pierścienia o promieniach r1, r2 zależnych od funkcji f[n]. W celu dokładniejszego wyjaśnienia tego zagadnienia wykorzystamy przekształcenie Laplace’a. Rozpatrzymy odwzorowanie punktów płaszczyzny zmiennej zespolonej s na punkty płaszczyzny zmiennej zespolonej z. Zgodnie z definicją przekształcenia Z związek między zmienną z i s opisuje równanie: z=e sT p Ponieważ s = σ + jω z=e Stąd Czynnik e jωT p (σ + jω )T p σ Tp =e e jωT p jest okresowy, zatem odwzorowanie nie jest jednoznaczne. σ Tp z=e e jωTp σ Tp =e e ( j ωT p + 2π ) -3- Oznacza to, że każdy dowolny pas na płaszczyźnie zmiennej s określony następująco ω0 < ω < ω0 + 2π Tp −∞ < σ < ∞ odwzorowuje całą płaszczyznę zmiennej z. Im{s} Im{z} Re{z} Re{s} ω0 ω0 + 2π Tp Rozpatrzymy szczególne przypadki odwzorowań: aT Obrazem prostej o równaniu s=a (pionowa) na płaszczyźnie s będzie okrąg o promieniu e p na płaszczyźnie zmiennej z. Oś urojonych ma płaszczyźnie s odwzorowuje się na okrąg jednostkowy na płaszczyźnie z. Im{s} Im{z} 1 0 2π Tp Re{s} Re{z} -4- Półpłaszczyzna na lewo od prostej s=a na płaszczyźnie s będzie wnętrzem koła o aT promieniu e p Im{s} Im{z} Re{s} 0 r>1 Re{z} 2π Tp Półpłaszczyzna na prawo od prostej s=a na płaszczyźnie s będzie zewnętrzem koła o promieniu aT e p Im{s} 0 Im{z} Re{s} r>1 Re{z} 2π Tp Rozpatrzymy przykład, który do wyznaczania przekształcenia Z wykorzystuje analogie z transformacją Laplace’a Obliczymy dwustronną transformatę Laplace’a sygnału o ciągłym czasie: x ( t ) = e at 1( −t ) + e − bt 1( t ) x ( t ) = x− ( t ) + x+ ( t ) -5- X − ( s ) = L { x ( −t )}s =− s X − (s) = 1 −s + a Obszar zbieżności dla tego składnika leży na lewo od punktu a na płaszczyźnie s, czyli aT wewnątrz okręgu o promieniu e >1 p X + ( s ) = L { x ( t )} X + (s) = 1 s+b Obszar zbieżności dla tego składnika leży na prawo od punktu –b na płaszczyźnie s, czyli na − bT zewnątrz koła o promieniu e <1 p X (s) = 1 1 + −s + a s + b Im{s} Im{z} Re{s} 0 -b a Re{z} e − bT p e aT p -6- S Z Pas zbieżności pomiędzy –b i a pierścień o promieniach e − bTp ,e Przykłady wyznaczania transformaty Z podstawowych sygnałów: Transformata „zet” (Z) delty Kroneckera: ⎧1 dla n = 0 ⎩0 dla n ≠ 0 δ [ n] = ⎨ f[n] 1 -3 -2 -1 Z { f [ n ]} = ∞ ∑ f [ n] z n =−∞ −n 0 = ∑ f [ n] z − n = z 0 = 1 n=0 Z δ [ n ] ⎯⎯ →1 n 0 1 2 3 aTp -7- Transformata Z dowolnego ciągu skończonego: ⎧1, n = −1 ⎪ 2, n = 0 ⎪⎪ x [ n ] = ⎨−1, n = 1 ⎪ 1, n = 2 ⎪ ⎪⎩ 0, inne f[n] 2 1 -3 -2 -1 n 0 1 2 3 -1 Z { f [ n ]} = ∞ ∑ f [ n] z −n = z + 2 − z −1 + z −2 n =−∞ Transformata Z skoku jednostkowego: ⎧1 dla n ≥ 0 1[ n ] = ⎨ ⎩0 dla n < 0 f[n] 1 -3 -2 -1 n 0 1 2 3 -8- Z { f [ n ]} = ∞ ∑ f [ n] z −n n =−∞ ∞ = ∑1 ⋅ z − n n=0 ∞ = ∑ ( z −1 ) n n=0 Wykorzystamy zależność na sumę ciągu geometrycznego: N −1 A + Ax + ... + Ax N −1 = ∑ Ax n = n=0 A − Ax n 1− x x < 1 oraz N → ∞ ⇒ x N → 0 Z { f [ n ]} = 1 z = 1 − z −1 z − 1 Z → 1[ n ] ⎯⎯ z z −1 Transformata F(z) posiada biegun w punkcie z=1, oraz pierwiastek w punkcie z=0. Obszar zbieżności opisuje zależność |z| >|1|, leży na zewnątrz okręgu o promieniu 1. Im{z} Re{z} 0 1 -9- Transformata Z funkcji wykładniczej ( n ≥ 0 ): x [ n ] = a n ⋅ 1[ n ] X ( z) = ∞ ∑ x [ n] z −n n =−∞ ∞ = ∑ an z −n n=0 ∞ = ∑ ( az −1 ) n n=0 Suma jest zbieżna gdy |a/z|<1 lub |z|>|a| X ( z) = 1 z = 1 − az −1 z − a Z a n 1[ n ] ⎯⎯ → z z−a Transformata X(z) posiada biegun w punkcie z=a, oraz pierwiastek w punkcie z=0. Obszar zbieżności opisuje zależność |z| >|a|, leży na zewnątrz okręgu o promieniu a. Im{z} Re{z} 0 a -10- Transformata Z funkcji wykładniczej ( n < 0 ): y [ n ] = − a n ⋅ 1[ − n − 1] Y ( z) = ∞ ∑ y [ n] z −n n =−∞ −1 = − ∑ an z −n n =−∞ −1 = − ∑ ( az −1 ) n n =−∞ ∞ = 1 − ∑ ( a −1 z ) n n=0 Suma jest zbieżna gdy |z/a|<1 lub |z|<|a| 1 1 − za −1 − 1 z X ( z) =1− = = −1 −1 1 − za 1 − za z−a Z −a n 1[ − n − 1] ⎯⎯ → z z−a Transformata X(z) posiada biegun w punkcie z=a, oraz pierwiastek w punkcie z=0. Obszar zbieżności opisuje zależność |z| <|a|, leży na wewnątrz okręgu o promieniu a. Im{z} Re{z} 0 a -11- Przykład Zidentyfikujemy obszary istnienia transformaty Z dla następujących sygnałów: n n ⎛ 1⎞ ⎛1⎞ x [ n ] = ⎜ − ⎟ ⋅ 1[ −n ] + 2 ⎜ ⎟ ⋅ 1[ n ] ⎝ 2⎠ ⎝ 4⎠ n n ⎛ 1⎞ ⎛1⎞ y [ n ] = ⎜ − ⎟ ⋅ 1[ n ] + 2 ⎜ ⎟ ⋅ 1[ n ] ⎝ 2⎠ ⎝ 4⎠ n n ⎛ 1⎞ ⎛1⎞ w [ n ] = ⎜ − ⎟ ⋅ 1[ − n ] + 2 ⎜ ⎟ ⋅ 1[ − n ] ⎝ 2⎠ ⎝ 4⎠ X(z) n ∞ ⎛ 1 ⎞ ⎛ 1 ⎞ X ( z ) = ∑ ⎜ − ⎟ + 2∑ ⎜ ⎟ 2z ⎠ n =−∞ ⎝ n=0 ⎝ 4z ⎠ 0 ∞ = ∑ ( −2 z ) n=0 n ∞ ⎛ 1 ⎞ + 2∑ ⎜ ⎟ n =0 ⎝ 4 z ⎠ n n Pierwsza suma jest zbieżna dla |2z|<1 lub |z|<1/2. Druga suma jest zbieżna dla |1/(4z)|<1 lub |z|>1/4. Wspólny obszar zbieżności dla tych szeregów stanowi pierścień: 1 1 < z< 4 2 X ( z) = 1 2z + 1 + 2z z − 1 4 -12- Im{z} Re{z} -1/2 1/4 Y(z) n ∞ ∞ ⎛ 1 ⎞ ⎛ 1 ⎞ Y ( z ) = ∑ ⎜ − ⎟ + 2∑ ⎜ ⎟ 2z ⎠ n=0 ⎝ n=0 ⎝ 4 z ⎠ n ∞ ∞ ⎛ 1 ⎞ ⎛ 1 ⎞ = ∑ ⎜ − ⎟ + 2∑ ⎜ ⎟ 2z ⎠ n=0 ⎝ n=0 ⎝ 4 z ⎠ n n Pierwsza suma jest zbieżna dla |1/(2z)|<1 lub |z|>1/2. Druga suma jest zbieżna dla |1/(4z)|<1 lub |z|>1/4. Wspólny obszar zbieżności dla tych szeregów stanowi zewnętrze okręgu: z > 1 2 Y (z) = z z+ 1 2 + 2z 1 z− 4 -13- Im{z} Re{z} -1/2 1/4 W(z) W ( z) = n 0 ⎛ 1 ⎞ ⎛ 1 ⎞ 2 − + ∑ ∑ ⎜ ⎟ ⎜ ⎟ 2z ⎠ n =−∞ ⎝ n =−∞ ⎝ 4 z ⎠ ∞ 0 ∞ = ∑ ( −2 z ) + 2∑ ( 4 z ) n n=0 n n n=0 Pierwsza suma jest zbieżna dla |2z|<1 lub |z|<1/2. Druga suma jest zbieżna dla |4z|<1 lub |z|<1/4. Wspólny obszar zbieżności dla tych szeregów stanowi wnętrze okręgu: z< 1 4 W ( z) = z z+ 1 2 + 2z 1 z− 4 -14- Im{z} Re{z} -1/2 1/4 Wykorzystanie przekształcenia Laplace’a od wyznaczania transformaty Z: Transformata Z wykładniczego przebiegu prawostronnego ( t ≥ 0 ): x ( t ) = e − bt 1( t ) ∞ x * ( t ) = e − bt ⋅ ∑ δ ( t − kTp ) k =0 ∞ x * (t ) = ∑ e − bkTp k =0 δ ( t − kTp ) Korzystając z transformaty Laplace’a ∞ X * (s) = ∑ e k =0 − bkTp e − skTp -15- ∞ ( X * (s) = ∑ e k =0 ∞ ( X ( z) = ∑ e k =0 X ( z) = X ( z) = − bTp − bTp e z −1 − sTp ) ) k k 1 1− e − bTp z − bT z−e z −1 p 1 jest półpłaszczyzną położoną s+b na prawo od prostej s=-b dlatego obszarem zbieżności transformaty Z jest zewnętrze okręgu o − bT promieniu e Ponieważ obszar zbieżności transformaty Laplace’a X ( s ) = p Im{s} 0 -b Im{z} Re{s} Re{z} 0 e − bT p -16- Transformata Z wykładniczego przebiegu lewostronnego ( t < 0 ): x ( t ) = −e − bt 1( −t ) −1 x * ( t ) = −e ⋅ ∑ δ ( t − kTp ) − bt k =−∞ x * (t ) = −1 ∑ −e k =−∞ − bkTp δ ( t − kTp ) Korzystając z transformaty Laplace’a X *(s) = −1 ∑ −e − bkTp e − skTp k =−∞ ∞ X * ( s ) = −∑ e bkTp e skTp k =1 ∞ ( X * ( s ) = −∑ e e k =1 ∞ ( bTp X ( z ) = −∑ e z k =1 ∞ bTp ( ) sTp k =0 X ( z ) = 1− k k X ( z) = 1− ∑ e z bTp ) ) k bT 1 1 − e p z −1 −z = = −bTp bT p bT p 1− e z 1− e z e −z X (z) = z − bT z −e p 1 jest półpłaszczyzną położoną s+b na lewo od prostej s=-b, dlatego obszarem zbieżności transformaty zet jest wnętrze okręgu o − bT promieniu e Ponieważ obszar zbieżności transformaty Laplace’a X ( s ) = p -17- Im{s} 0 Im{z} Re{s} -b Re{z} 0 e − bT p Podstawowe właściwości przekształcenia Z: Przyjmiemy skrótowe oznaczenie transformaty zet sygnału x[n], istniejącej w obszarze zbieżności o promieniu Rx Z x [ n ] ←⎯ → X ( z ) dla OZ Rx LINIOWOŚĆ Z ax [ n ] + by [ n ] ←⎯ → aX ( z ) + bY ( z ) dla OZ Rx I Ry (wspólny obszar zbieżności) -18- Przykład n n −z 1 3 ⎛1⎞ ⎛ 3⎞ Z x [ n ] = ⎜ ⎟ ⋅ 1[ n ] − ⎜ ⎟ ⋅ 1[ − n − 1] ←⎯ → X (z) = dla OZ < z < 1 ⎞⎛ 3⎞ 2 2 ⎛ ⎝ 2⎠ ⎝ 2⎠ ⎜ z − ⎟⎜ z − ⎟ 2 ⎠⎝ 2⎠ ⎝ oraz 1 n n − z 1 ⎛1⎞ ⎛1⎞ Z 4 y [ n ] = ⎜ ⎟ ⋅ 1[ n ] − ⎜ ⎟ ⋅ 1[ n ] ←⎯→ Y ( z ) = dla OZ < z 1 ⎞⎛ 1⎞ 2 ⎛ ⎝ 4⎠ ⎝ 2⎠ ⎜ z − ⎟⎜ z − ⎟ 4 ⎠⎝ 2⎠ ⎝ Im{z} Re{z} 1/2 3/2 Im{z} Re{z} 1/2 1/4 -19- 1 − z −z 1 3 Z 4 ax [ n ] + by [ n ] ←⎯ →a +b dla OZ < z < 1 ⎞⎛ 3⎞ 1 ⎞⎛ 1⎞ 2 2 ⎛ ⎛ ⎜ z − ⎟⎜ z − ⎟ ⎜ z − ⎟⎜ z − ⎟ 2 ⎠⎝ 2⎠ 4 ⎠⎝ 2⎠ ⎝ ⎝ W przypadku gdy a=b 5 − z 1 3 Z 4 ax [ n ] + ay [ n ] ←⎯ →a dla OZ < z < 1 ⎞⎛ 3⎞ 4 2 ⎛ ⎜ z − ⎟⎜ z − ⎟ 4 ⎠⎝ 2⎠ ⎝ Transformata zet sinusoidalnego przebiegu prawostronnego ( t ≥ 0 ): x [ n ] = sin ( nω 0Tp ) ⋅1[ n ] Wykorzystamy właściwość liniowości przekształcenia oraz wyprowadzoną wcześniej transformatę sygnału wykładniczego: e − nbTp Z 1[ n ] ←⎯ → z − bT z−e p Ponieważ sin (α ) = 1 α e − e −α ) ( 2j 1 jnω T 1 − jnω T 1 ⎛ z z ⎞ Z → ⎜ e 1[ n ] − e 1[ n ] ←⎯ − jω T ⎟ = jω T − 2j 2j 2j⎝ z−e z−e ⎠ 0 p 0 p 0 p 0 p -20- ( − jω 0Tp ) ( )( − z z−e 1 z z−e = − jω T jω T 2j z−e z−e ( 0 p jω 0Tp 0 p ) )= − jω0Tp jω0Tp z 2 − ze 1 − z 2 + ze jω T jω T = − jω T − jω T 2 j z 2 − ze − ze +e e 0 p 0 p 0 p z jω T z jω T − jω T − jω T −e −e e e 2j 2j = 2 = 2 jω T jω T − jω T − jω T 0 +e +e +e +1 z −z e z −z e ( ( 0 p 0 p ) ) 0 p 0 p Z sin ( nω 0Tp ) ⋅ 1[ n ] ←⎯ → ( ( 0 p 0 p 0 p 0 p z sin (ω 0Tp ) ) ) z 2 − 2 z cos (ω 0Tp ) + 1 dla OZ z > 1 Im{z} 1 Re{z} 0 p -21- ODWRÓCENIE SYGNAŁU W CZASIE 1 ⎛1⎞ Z x [ −n ] ←⎯ → X ⎜ ⎟ dla OZ Rx ⎝z⎠ Odwrócenie sygnału w dziedzinie czasu odpowiada zmianie zmiennej z na z-1 . Zmianie ulega także obszar zbieżności. Jeżeli Rx jest pierścieniem a<|z|<b to obszar zbieżności sygnału odwróconego a<|1/z|<b lub 1/b<|z|<1/a PRZESUNIĘCIE SYGNAŁU W CZASIE Z x [ n − n0 ] ←⎯ → z − n X ( z ) dla OZ Rx 0 Mnożenie przez z − n wprowadza n0 biegunów w z=0 gdy n0>0. W tym przypadku jeżeli bieguny nie są redukowane przez pierwiastki X(z), nowy obszar zbieżności nie może zawierać punktu z=0. Natomiast gdy n0<0 mnożenie przez z − n wprowadza n0 biegunów w nieskończoności. Jeżeli bieguny te nie są redukowane przez pierwiastki X(z), nowy obszar zbieżności nie może zawierać punktu z = ∞ 0 0 Przykłady: f[n] g[n]=f[n-1] n -3 -2 -1 0 1 2 3 n -3 -2 -1 g[0]=f[-1] g[1]=f[0] 0 1 2 3 -22∞ G ( z ) = ∑ g [ n ] z − n = g [ 0] + g [1] z −1 + g [ 2] z −2 + ... n =0 = f [ −1] + f [ 0] z −1 + f [1] z −2 + ... ⎧⎪ ⎫⎪ −1 = f [ −1] + z ⎨ f [ 0] z + f [1] z + ...⎬ 144424443 ⎪⎩ ⎪⎭ F ( z) −1 Stąd otrzymujemy zależności: Z f [ n − 1] ←⎯ → z −1 F ( z ) + f [ −1] ( ) Z f [ n − 2] ←⎯ → z −1 z −1F ( z ) + f [ −1] + f [ −2] = z −2 F ( z ) + z −1 f [ −1] + f [ −2] 144 42444 3 ( ) z ( Z { f [ n ]} − f [ 0]) = Z { f [ n + 1]} z Z { f [ n − 1]} − f [ −1] = Z { f [ n ]} Z f [ n + 1] ←⎯ → z ( F ( z ) − f [ 0]) ⎛ ⎞ Z f [ n + 2] ←⎯ → = z ⎜ z ( F ( z ) − f [ 0]) − f [1] ⎟ = z 2 F ( z ) − z 2 f [ 0] − zf [1] ⎜ 1442443 ⎟ ⎝ ⎠ MNOŻENIE PRZEZ CIĄG WYKŁADNICZY ⎛z⎞ Z → X ⎜ ⎟ dla OZ α Rx α n x [ n ] ←⎯ ⎝α ⎠ Jeżeli Rx jest pierścieniem a<|z|<b to obszar zbieżności sygnału |a|a<|z|<|a|b. Zmiana obszaru zbieżności wynika z przesuwania się biegunów funkcji X(z). Wszystkie bieguny zostają w jednakowej skali równej |a| przesunięte względem z=0. -23- Wyprowadzimy z definicji przekształcenia zet powyższą własność ∞ Z a n x [ n ]1[ n ] ←⎯ → ∑ a n x [ n] z − n n =0 ∞ = ∑ x [ n] a n z − n n=0 ∞ = ∑ x [ n ] ( a −1 z ) −n n=0 = X ( a −1 z ) Przykład Z a n1[ n ] ←⎯ → z z−a Ponieważ Z 1[ n ] ←⎯ → z z −1 to a −1 z = a 1[ n ] ←⎯→ −1 a z −1 z = z−a n Z SPLOT Z x [ n ] ∗ y [ n ] ←⎯ → X ( z ) Y ( z ) dla OZ Rx I Ry Splot przebiegów czasowych odpowiada mnożeniu transformat. Z liniowości przekształcenia wynika, że obszar zbieżności może być większy niż część wspólna obszarów dla transformat splatanych sygnałów. Taki przypadek zachodzi wtedy wystepuje redukcja pierwiastków i biegunów. -24- RÓŻNICZKOWANIE W DZIEDZINIE „ZET” Z nx [ n ] ←⎯ →− z d X ( z ) dla OZ Rx dz Mnożenie sygnału przez n w dziedzinie czasu odpowiada różniczkowaniu oraz mnożeniu przez –z w dziedzinie zet. Operacja ta nie zmienia obszaru zbieżności. Wyprowadzimy tę własność z definicji przekształcenia zet: ∞ Z n1[ n ] ←⎯ → ∑ nz − n = n=0 = 0 + z + 2 z −2 + 3z −3 + ... −1 = − z {− z −2 − 2 z −3 − 3 z −4 − ...} d 1 + z −1 + 2 z −2 + 3 z −3 + ...} { dz d ⎧ z ⎫ = −z ⎨ ⎬ dz ⎩ z − 1⎭ = −z stąd Z n1[ n ] ←⎯ →− z d ⎧ z ⎫ ⎨ ⎬= dz ⎩ z − 1 ⎭ ⎧⎪ z − 1 − z ⎫⎪ = −z ⎨ 2 ⎬ ⎩⎪ ( z − 1) ⎭⎪ z = 2 ( z − 1) -25- Przykład: Znajdziemy transformatę sygnału ( ) x [ n ] = n ( − 12 ) 1[ n ] ∗ ( 14 ) 1[ − n ] n −n Oznaczymy: ( w [ n ] = n ( − 12 ) 1[ n ] n ) y [ n ] = ( 14 ) 1[ − n ] −n Obliczenia dla w[n]: ( − ) 1[ n] ←⎯→ 1 2 n Z z dla OZ z > z + 12 1 2 Wykorzystamy właściwość różniczkowania w dziedzinie zet: Z →−z n ( − 12 ) 1[ n ] ←⎯ n d ⎛ z ⎞ dla OZ z > dz ⎜⎝ z + 12 ⎟⎠ ⎛ z + 12 − z ⎞ = −z ⎜ ⎜ ( z + 1 )2 ⎟⎟ 2 ⎝ ⎠ 1 −2z = dla OZ z > 2 1 + z ( 2) 1 2 Obliczenia dla y[n]: ( ) 1[ n] ←⎯→ 1 4 n Z z dla OZ z > z − 14 1 4 1 2 -26- Wykorzystamy właściwość inwersji w czasie: ( ) 1 4 = −n Z 1[ − n ] ←⎯ → z −1 dla OZ z −1 − 14 1 z > 1 4 −4 z dla OZ z < 4 z−4 Wykorzystamy właściwość transformaty splotu: Z x [ n ] = w[ n ] ∗ y [ n ] ←⎯ → X ( z ) = W ( z ) Y ( z ) dla OZ RW I RY = − 12 z −4 z 2 ⋅ ( z + 12 ) z − 4 2z2 = 2 dla OZ ( z − 4 )( z + 12 ) 1 2 < z <4 -1 - Odwrotne przekształcenie Z Rozpatrzymy zagadnienie odtwarzania dyskretnego sygnału czasowego x[n] z jego transformaty X(z). Do wyznaczenia ciągu x[n] w sposób jednoznaczny musimy znać obszar zbieżności (OZ). Odwracanie X(z) przez rozkład na ułamki proste Analizując systemy LTI zwykle transformatę ZET przebiegów otrzymujemy w postaci funkcji wymiernej zmiennej z-1. Niech dana będzie transformata sygnału dyskretnego x[n] w postaci: X ( z) = = B( z) A( z ) b0 + b1 z −1 + L + bM z − M 1 + a1 z −1 + L + aN z − N oraz stopień wielomianu w liczniku jest mniejszy od stopnia wielomianu w mianowniku tzn. M<N. Jeżeli M ≥ N to musimy zastosować dzielenie wielomianów aby przedstawić X(z) w formie następującego wyrażenia: X ( z) = M −N ∑ k =0 fk z −k + B% ( z ) A( z ) Wówczas stopień wielomianu w liczniku B% ( z ) jest teraz mniejszy od stopnia wielomianu w mianowniku. -2 - Metoda rozkładu na ułamki proste pozwala na wyznaczenie transformaty odwrotnej wyrażenia: B% ( z ) , A( z ) Transformatę odwrotną sumy M −N ∑ k =0 fk z −k Z otrzymamy wykorzystując transformatę delty δ [ n ] ←⎯ →1 oraz właściwość przesunięcia ciągu w dziedzinie czasu. W wielu problemach praktycznych transformata X(z) wyrażona jest jako stosunek wielomianów zmiennej z a nie z-1. W takich przypadkach możemy stosować metodę rozkładu na ułamki proste jeżeli wcześniej przekształcimy X(z) do postaci stosunku wielomianów o zmiennej z-1. Konwersji tej możemy dokonać poprzez wyciągnięcie przed nawias w liczniku największej potęgi z, a w mianowniku wyciagnięcie przed nawias największej potęgi z razem ze współczynnikiem przy tej potędze. Przykład: Jeżeli transformata ma postać 2 z 2 − 2 z + 10 X ( z) = 3z 3 − 6 z + 9 W liczniku wyciągniemy przez nawias z2 a w mianowniku 3z3. X ( z) = z 2 ( 2 − 2 z −1 + 10 z −2 ) 3 z 3 (1 − 2 z −2 + 3z −3 ) 1 ⎛ 2 − 2 z −1 + 10 z −2 ⎞ = z −1 ⎜ 3 ⎝ 1 − 2 z −1 + 3 z −3 ⎟⎠ Rozkład na ułamki proste stosuje się do wyrażenia w nawiasie, natomiast czynnik 13 z −1 jest uwzględniany później z zastosowaniem właściwości przesuwania ciągu w czasie. -3 - Rozkład na ułamki proste funkcji w postaci b0 + b1 z −1 + L + bM z − M X ( z) = 1 + a1 z −1 + L + aN z − N wykonuje się poprzez przekształcenie wielomianu w mianowniku wyrażenia X(z) do postaci iloczynu wielomianów pierwszego stopnia b0 + b1 z −1 + L + bM z − M X ( z) = (1 − d1 z −1 )(1 − d 2 z −1 )L (1 − d N z −1 ) gdzie dk są biegunami funkcji X(z). Jeżeli wszystkie bieguny są jednokrotne to możemy funkcję X(z) zapisać w postaci sumy ułamków prostych w postaci: X ( z) = A1 A2 AN + +L+ −1 −1 1 − d1 z 1 − d2 z 1 − d N z −1 Współczynniki obliczamy z zależności: Ai = (1 − di z −1 ) X ( Z ) z = di Odwrotną transformację ZET każdego składnika osobno wyznaczamy wykorzystując pary transformat prostych ciągów: ( ) A d k k n Z 1[ n ] ←⎯→ A k OZ z > d k − 1 1− d z k Z − Ak ( d k ) 1[ − n − 1] ←⎯ → n Ak OZ z < d k 1 − d k z −1 -4 - Relacje pomiędzy obszarem zbieżności (OZ) związanym z X(z) i każdym biegunem determinują, które składniki są transformatami ciągów lewostronnych, a które prawostronnych. Jeżeli biegun di jest wielokrotny o krotności r, to otrzymamy r składników rozwinięcia związanych z tym biegunem: Ai1 Ai 2 Air , ,L, r −1 −1 2 1 − d i z (1 − di z ) (1 − di z −1 ) Transformację odwrotną otrzymamy wykorzystując pary: A A ( n + 1)L( n + m − 1) d 1 n ←⎯→ ( ) [ ] ( m − 1)! (1 − d z ) n OZ z > di Z −1 m i i −A A ( n + 1)L( n + m − 1) d 1 −n − 1 ←⎯→ ( ) [ ] ( m − 1)! (1 − d z ) n Z −1 m i OZ z < d i i Położenie biegunów względem OZ funkcji X(z) determinuje to , która transformata odwrotna, lewostronna czy prawostronna zostanie wybrana do odwrócenia składnika. Aby poprawnie wyznaczyć odwrotną transformatę ZET należy po rozłożeniu funkcji X(z) na ułamki proste określić dla każdego składnika jego obszar zbieżności. Polega to na określeniu dla każdego bieguna jego położenia względem obszaru zbieżności funkcji X(z). • Jeżeli OZ funkcji X(z) ma promień większy niż biegun musimy wybrać prawostronną transformatę odwrotną. • Jeżeli OZ funkcji X(z) na promień mniejszy niż biegun należy wybrać lewostronną transformatę odwrotną dla tego składnika. -5 - Przykład: Należy wyznaczyć odwrotną transformatę ZET przy zadanym obszarze zbieżności 1 − z −1 + z −2 X ( z) = OZ 1 < z < 2 (1 − 12 z −1 )(1 − 2 z −1 )(1 − z −1 ) Zastosujemy rozkład na ułamki proste: X ( z) = A1 = (1 − 12 z −1 ) X ( Z ) (1 − A1 1 2 z −1 ) + A3 A2 + −1 (1 − 2 z ) (1 − z −1 ) z = 12 = 1 − z −1 + z −2 (1 − 2 z −1 )(1 − z −1 ) = 1− 2 + 4 =1 (1 − 2 ⋅ 2 )(1 − 2 ) z = 12 A2 = (1 − 2 z −1 ) X ( Z ) 1 − z −1 + z −2 = (1 − 12 z −1 )(1 − z −1 ) = z =2 z =2 1 − 12 + 14 =2 (1 − 12 ⋅ 12 )(1 − 12 ) A3 = (1 − z −1 ) X ( Z ) Po wyznaczeniu współczynników X ( z) = (1 − 1 1 2 z −1 ) + 2 −2 + −1 (1 − 2 z ) (1 − z −1 ) z =1 = 1− z + z (1 − 12 z −1 )(1 − 2 z −1 ) = 1−1+1 = −2 (1 − 12 ⋅1)(1 − 2 ⋅1) −1 −2 z =1 -6 - Znajdziemy teraz odwrotną transformatę ZET dla każdego składnika X(z) biorąc pod uwagę położenie biegunów względem obszaru zbieżności. Obszar zbieżności OZ oraz położenie biegunów przestawia rysunek. Im{z} Re{z} 0 1/2 1 2 1. Obszar zbieżności ma promień większy niż biegun z = 12 , więc dla pierwszego składnika X(z) zastosujemy prawostronną transformację odwrotną ( ) 1[ n] ←⎯→ 1 2 n 1 Z 1 − 12 z −1 2. Obszar zbieżności ma promień mniejszy niż biegun z = 2 , więc dla drugiego składnika X(z) zastosujemy lewostronną transformację odwrotną Z −2 ( 2 ) 1[ − n − 1] ←⎯ → n 2 1 − 2 z −1 3. Obszar zbieżności ma promień większy niż biegun z = 1 , więc dla trzeciego składnika X(z) zastosujemy prawostronną transformację odwrotną Z −2 ⋅ 1[ n ] ←⎯ → −2 1 − z −1 Sumując poszczególne składniki otrzymujemy ostatecznie x [ n ] = ( 12 ) 1[ n ] − 2 ( 2 ) 1[ − n − 1] − 2 ⋅ 1[ n ] n n -7 - Przykład: Wyznaczyć odwrotną transformatę ZET z 3 − 10 z 2 − 4 z + 4 X ( z) = OZ z < 1 2z2 − 2z − 4 Bieguny transformaty ZET znajdują się w punktach z=-1 oraz z=2. Obszar zbieżności oraz położenie biegunów przestawia rysunek. Im{z} Re{z} -1 0 2 Na wstępie należy przekształcić X(z) do postaci ilorazu wielomianów zmiennej z-1. Dokonamy tego wyprowadzając przed nawias w liczniku z3 i mianowniku 2z2 X ( z) = z 3 (1 − 10 z −1 − 4 z −2 + 4 z −3 ) 2 z 2 (1 − z −1 − 2 z −2 ) 1 ⎛ 1 − 10 z −1 − 4 z −2 + 4 z −3 ⎞ = z⎜ ⎟ 2 ⎝ 1 − z −1 − 2 z −2 ⎠ Czynnik 12 z uwzględnimy później stosując właściwość przesunięcia w dziedzinie czasu. -8 - Stosując dzielenie wielomianów redukujemy stopień wielomianu w liczniku: −2 z −1 + 3 ( 4 z −3 − 4 z −2 − 10 z −1 + 1) : ( −2 z −2 − z −1 + 1) 4 z −3 + 2 z −2 − 2 z −1 −6 z −2 − 8 z −1 + 1 −6 z −2 − 3 z −1 + 3 − 5 z −1 − 2 −2 − 5 z −1 W ( z ) = −2 z + 3 + 1 − z −1 − 2 z −2 −2 − 5 z −1 −1 = −2 z + 3 + (1 + z −1 )(1 − 2 z −1 ) −1 Dokonamy rozkładu na ułamki proste − 2 − 5 z −1 1 −3 = + (1 + z −1 )(1 − 2 z −1 ) (1 + z −1 ) 1 − 2 z −1 W ( z ) = −2 z −1 + 3 + 1 −3 OZ z < 1 + −1 (1 + z ) 1 − 2 z −1 Promień obszaru zbieżności jest mniejszy niż promienie wszystkich biegunów, dlatego zastosujemy lewostronną transformatę odwrotną: w[ n ] = −2δ [ n − 1] + 3δ [ n ] − ( −1) 1[ − n − 1] + 3 ( 2 ) 1[ − n − 1] n Ale n X ( z ) = 12 zW ( z ) Zgodnie z własnością przesunięcia w czasie x [ n ] = 12 w[ n + 1] Ostatecznie x [ n ] = −δ [ n ] + 32 δ [ n + 1] − 12 ( −1) 1[ − n − 2] + 3 ( 2 ) 1[ − n − 2] n +1 n +1 -9 - Odwracanie X(z) przez rozwinięcie w szereg potęgowy (sygnały jednostronne). Jeżeli przedstawimy funkcję X(z) w postaci szeregu potęgowego zmiennej z-1 lub z to zgodnie z definicją transformaty ZET, współczynniki przy z-n są wartościami kolejnych próbek sygnału x[n]. Metoda jest ograniczona dla przebiegów jednostronnych, tzn. jeżeli obszar zbieżności definiuje zależność |z|>a lub |z|<a. • Jeżeli OZ jest |z|<a to X(z) jest szeregiem potęgowym zmiennej z i generuje ciąg lewostronny. • Jeżeli OZ jest |z|>a to X(z) jest szeregiem potęgowym zmiennej z-1 i generuje ciąg prawostronny. Szereg potęgowy otrzymamy dzieląc wielomian w liczniku przez wielomian w mianowniku X(z). Przykład: Wyznaczymy odwrotną transformatę ZET funkcji 2 + z −1 X ( z) = OZ z > 12 1 −1 1− 2 z stosując rozwinięcie w szereg potęgowy Im{z} Re{z} 0 1/2 -10 -1 Stosujemy dzielenie wielomianów zmiennej z , ponieważ obszar zbieżności dotyczy sygnału prawostronnego: 2 2 + z −1 :1 − 12 z −1 2 − z −1 2 z −1 2 + 2 z −1 2 + z −1 :1 − 12 z −1 2 − z −1 2 z −1 2 z −1 − z − 2 z −2 2 + 2 z −1 + z −2 + 12 z −3 + ... 2 + z −1 : 1 − 12 z −1 2 − z −1 2 z −1 2 z −1 − z −2 z −2 z −2 − 12 z −3 1 −3 2 z Zatem obliczony szereg potęgowy X ( z ) = 2 + 2 z −1 + z −2 + 12 z −3 +L odpowiada sygnałowi: x [ n ] = 0 dla n < 0 x [ 0] = 2 x [1] = 2 x [ 2] = 1 x [3] = 12 M -11 - Jeżeli zmienimy obszar zbieżności dla tej samej funkcji z < 12 rozwijamy X(z) względem zmiennej z: Im{z} Re{z} 0 1/2 Rozwijamy funkcję w szereg potęgowy zmiennej z −2 z −1 + 2 : − 12 z −1 + 1 z −1 − 2 4 −2 − 8 z − 16 z 2 − 32 z 3 + L z −1 + 2 : − 12 z −1 + 1 z −1 − 2 4 4 − 8z 8z 8 z − 16 z 2 16 z 2 Otrzymujemy X ( z ) = −2 − 8 z − 16 z 2 − 32 z 3 +L -12 - wyrażenie to jest transformatą przebiegu: x [ n ] = 0 dla n > 0 x [ 0] = −2 x [ −1] = −8 x [ −2] = −16 x [ −3] = −32 M Metoda wykorzystująca szereg potęgowy do odwrócenia transformaty dotyczy również wyrażeń, które nie są w postaci ilorazu wielomianów. Pokazuje to następujący przykład: Przykład Należy wyznaczyć ciąg, którego transformata ZET na postać X ( z ) = e z OZ z = ∞ 2 Wykorzystamy zależność ak e =∑ k =0 k ! ∞ a Stąd funkcję X(z) można przedstawić w postaci szeregu: ∞ X ( z) = ∑ k =0 (z ) 2 k k! z k =0 k ! ∞ =∑ 2k którego transformata odwrotna jest ciągiem lewostronnym przyjmującym następujące wartości: ⎧0 dla n > 0 i nieparzyste ⎪ x [ n] = ⎨ 1 pozostale ⎪ ( n 2 )! ⎩ -13 - Odwracanie X(z) z zastosowaniem metody residuów Oznaczmy przez C dowolny okrąg położony wewnątrz pierścienia o promieniach a i b: a< z <b i środku w punkcie z=0. Obliczymy całkę krzywoliniową z funkcji X(z) wzdłuż tego okręgu. Na podstawie właściwości liniowości możemy zmieniać kolejność operacji całkowania i sumowania. ∫ C = ∞ X ( z ) dz = ∫ ⎛⎜ ∑ x [ n ] z − n ⎞⎟ dz ⎠ C ⎝ n =−∞ ⎛ n =−∞ ⎝ ∞ ∑ ⎜ x [ n] ∫ z C −n ⎞ dz ⎟ ⎠ Jeżeli zmienną z wyrazimy w postaci wykładniczej z = re jϕ całkowanie funkcji z-n po krzywej C wyrażone w układzie biegunowym przyjmie postać dz z =re jϕ π jre jϕ ∫C z n = −∫π r ne jnϕ dϕ j π j( n−1)ϕ = n−1 ∫ e dϕ r −π ⎧2π j, n = 1 =⎨ ⎩ 0, n ≠ 1 -14 - Zatem wykorzystując właściwość przesunięcia w czasie możemy napisać ∫ X ( z ) dz = 2π jx [1] C ∫ zX ( z ) dz = 2π jx [ 2] C ∫z n −1 X ( z ) dz = 2π jx [ n ] C Ostatecznie kolejne wartości próbek sygnału otrzymamy rozwiązując wyrażenie całkowe x [ n] = 1 z 2π j C∫ n −1 X ( z ) dz n = L, −2, −1,0,1,2,L Powyższe wyrażenie całkowe jest przyjmowane jako definicja odwrotnego przekształcenia ZET i jest stosowana do obliczenia transformaty odwrotnej. Do obliczania całki po krzywej zamkniętej wykorzystuje się twierdzenie Cauchy’ego o residuach. Wykorzystując twierdzenie Cauchy’ego o residuach, funkcję oryginalną można wyznaczyć jako sumę residuów liczonych dla wszystkich biegunów x [ n ] = ∑ res ⎡⎣ z n −1 X ( z ) ⎤⎦ k gdzie dla m – krotnego bieguna zk 1 d m−1 ⎡ m res ⎡⎣ F ( z ) ⎤⎦ = z z F ( z ) ⎤⎦ − ( ) k m − 1 zk z = zk ( m − 1)! dz ⎣ -15 - Przykład: X ( z) = z z−a z >a Dla n większych lub równych 1: z ⎤ ⎡ x [ n ] = ∑ res ⎡⎣ z n −1 X ( z ) ⎤⎦ = ∑ res ⎢ z n−1 z − a ⎥⎦ k k ⎣ (biegun 1 krotny równy) z ⎤ ⎡ x [ n ] = lim ⎢( z − a ) z n −1 ⋅ 1[ n ] = lim ⎡⎣ z n ⎤⎦ = a n ⋅ 1[ n ] ⎥ z =a z =a z − a⎦ ⎣ Przykład: 2z2 + 2z + 1 X ( z) = z2 + z F ( z) = z X ( z) = n −1 1. dla n = 0 z >1 z n ( 2 z 2 + 2 z + 1) z 2 ( z + 1) z >1 dwa bieguny z=-1 (m=1) z=0 (m=2) 2z2 + 2z + 1 d ⎡ 2 2 z 2 + 2 z + 1⎤ + ⎢z x [ 0] = res ⎡⎣ F ( z ) ⎤⎦ + res ⎡⎣ F ( z ) ⎤⎦ = ( z + 1) 2 ⎥ 0 −1 z ( z + 1) z =−1 dz ⎣ z 2 ( z + 1) ⎦ 2. dla n = 1 2z2 + 2z + 1 2z2 + 2z + 1 +z = −1 + 1 = 0 z ( z + 1) z =−1 z ( z + 1) z =0 jeden biegun z=-1 (m=1) x [ n ] = res ⎡⎣ F ( z ) ⎤⎦ = ( z + 1) z −1 z =0 dwa bieguny z=-1 (m=1) z=0 (m=1) x [1] = res ⎡⎣ F ( z ) ⎤⎦ + res ⎡⎣ F ( z ) ⎤⎦ = ( z + 1) −1 0 3. dla n ≥ 2 =1+1 = 2 n−2 2z2 + 2z + 1 n−2 = ( −1) ⋅ 1[ n − 2] z ( z + 1) z =−1 -16 - Obliczanie odwrotnej transformaty ZET w Matlab’ie Funkcja MATLAB-a residuez pozwala rozkładać na ułamki proste transformatę ZET, wyrażoną w postaci ilorazu dwóch wielomianów zmiennej z-1. 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. 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 równy lub większy od stopnia mianownika. Przykład obliczania transformaty odwrotnej: X ( z) = z 3 − 10 z 2 − 4 z + 4 2z2 − 2z − 4 Przed zastosowaniem obliczeń w MATLABIE należy wielomiany w liczniku i mianowniku przedstawić względem zmiennej z-1: X ( z) = z 3 (1 − 10 z −1 − 4 z −2 + 4 z −3 ) 2 z 2 (1 − z −1 − 2 z −2 ) X ( z ) = 12 zY ( z ) 1 − 10 z −1 − 4 z −2 + 4 z −3 Y ( z) = 1 − z −1 − 2 z − 2 1 − 10 z −1 − 4 z −2 + 4 z −3 = z 1 − z −1 − 2 z −2 1 2 -17 - Zastosujemy funkcję residuez do wyznaczenia rozkładu wyrażenia Y(z): »[r,p,k] = residuez([1 –10 –4 4], [1 –1 -2]) r = -3 1 p = 2 -1 k = 3 -2 Zatem rozkład jest następujący: Y (z) = −3 1 + + 3 − 2 z −1 −1 −1 1 − 2z 1+ z Aby wyznaczyć transformatę odwrotną należy określić obszar zbieżności funkcji Y(z). Granice obszaru zbieżności wyznaczają bieguny z1=2, z2=-1. » zplane([1 -10 -4 4], [0 1 -1 -2]) 1 Imaginary Part 0.5 0 -0.5 -1 -1.5 -1 -0.5 0 0.5 1 Real Part 1.5 2 2.5 -18 - Jeżeli obszar zbieżności wybierzemy na zewnątrz okręgu o promieniu 2, to oryginał jest funkcją czasu prawostronną, dla czasów od 0 do ∞. y ( n ) = −3 ( 2 ) 1[ n ] + ( −1) 1[ n ] + 3δ [ n ] − 2δ [ n − 1] n n ostatecznie uwzględniając współczynnik i przesunięcie: x ( n ) = − 23 ( 2 ) 1[ n + 1] + 12 ( −1) 1[ n + 1] + 23 δ [ n + 1] − δ [ n ] n +1 n +1 *)Przygotowano na podstawie: S. Haykin, B.Van Veen „Signals and System” New York 1999 -1- Zastosowania transformaty ZET Rozwiązywanie równań różnicowych Dyskretny system liniowy-stacjonarny można opisać równaniem różnicowym w postaci ogólnej N M k =0 k =0 ∑ ak y [ n − k ] = ∑ bk x [ n − k ] Transformacja „Z” pozwala w efektywny sposób obliczać odpowiedzi systemu na zadane wymuszenia. Przykład: Rozważmy system opisany równaniem różnicowym y [ n ] − 0.9 y [ n − 1] = x [ n ] Wyznaczymy odpowiedź systemu na wymuszenie jednostkowe x[n]=1[n] dla wartości początkowej odpowiedzi y[-1]=2. -2- Wykorzystamy własności przesunięcia w dziedzinie czasu dla transformaty jednostronnej Jeżeli Z y [ n ] ←⎯ →Y ( z ) Z y [ n − 1] ←⎯ → z −1Y ( z ) + y [ −1] to Przekształcamy ( transformacja Z ) obie strony równania różnicowego Y ( z ) − 0.9 ( z −1Y ( z ) + y [ −1]) = X ( z ) Y ( z ) (1 − 0.9 z −1 ) = X ( z ) + 0.9 y [ −1] Y (z) = 0.9 y [ −1] X ( z) + −1 1 − 0.9 z 1 − 0.9 z −1 Ponieważ transformata skoku jednostkowego wynosi X ( z) = 1 1 − z −1 oraz wartość początkowa y[-1]=2 to: Y ( z) = 1 (1 − 0.9 z )(1 − z ) −1 −1 + 1.8 1 − 0.9 z −1 Stosujemy rozkład na ułamki proste: Y (z) = A1 A2 1.8 + + 1 − 0.9 z −1 1 − z −1 1 − 0.9 z −1 -3- Współczynniki ułamków prostych obliczamy z zależności 1 1 = = −9 −1 z = 0.9 1− z 1 − 109 1 1 = = 10 A2 = −1 z =1 1 − 0.9 z 1 − 109 A1 = Stąd Y ( z) = −9 10 1.8 + + OZ z > 1 1 − 0.9 z −1 1 − z −1 1 − 0.9 z −1 Odwrotna transformata dla przyjętego obszaru zbieżności daje rozwiązanie w postaci sygnału wyjściowego systemu: y [ n ] = −9 ( 0.9 ) 1[ n ] + 10 ⋅ 1[ n ] + 1.8 ( 0.9 ) 1[ n ] n n n y [ n ] = ⎡⎣10 − 8.2 ⋅ ( 0.9 ) ⎤⎦ ⋅ 1[ n ] Przykład Wyznaczymy odpowiedź impulsową systemu opisanego równaniem różnicowym y [ n + 1] + 2 y [ n ] = x [ n ] -4- Wykorzystamy własności: Z y [ n + 1] ←⎯ → zY ( z ) + y [ 0] Z δ [ n ] ←⎯ →1 Transformując obie strony równania różnicowego ( przy wyznaczaniu odpowiedzi impulsowej zakłada się zerowe warunki początkowe ) otrzymamy: zY ( z ) + y [ 0] + 2Y ( z ) = 1 zY ( z ) + 2Y ( z ) = 1 Y ( z )( z + 2 ) = 1 Ostatecznie transformata odpowiedzi impulsowej wynosi: 1 z+2 1 1 = ⋅ z 1 + 2 z −1 ⎛ 1 ⎞ = z −1 ⎜ −1 ⎟ ⎝ 1 + 2z ⎠ Y ( z) = Transformata odwrotna wyrażenia w nawiasie wynosi 1 n Z ←⎯ → ( −2 ) 1[ n ] −1 1 + 2z -5-1 Mnożenie przez z powoduje w dziedzinie czasu opóźnienie sygnału o jedną próbkę, stąd otrzymujemy: n −1 ⎛ 1 ⎞ Z ←⎯→ ( −2 ) 1[ n − 1] z −1 ⎜ −1 ⎟ ⎝ 1 + 2z ⎠ Odpowiedź impulsowa systemu wynosi y [ n ] = ( −2 ) 1[ n − 1] n −1 Transmitancja systemu dyskretnego Definicja: Transmitancję H(z) systemu LTI definiujemy jako transformatę Z odpowiedzi impulsowej systemu h[n]. Odpowiedź y[n] systemu na dowolne wymuszenie x[n] oblicza się jako splot odpowiedzi impulsowej h[n] systemu oraz wymuszenia: y [ n] = h [ n] ∗ x [ n] Transformując obie strony wyrażenia oraz wykorzystując własność transformaty Z ( splotu w dziedzinie czasu ), możemy wyrazić transformatę odpowiedzi Y[z] w postaci iloczynu transmitancji H[z] oraz transformaty wymuszenia X[z]. Y ( z) = H (z) X (z) -6- Stąd transmitancja: H (z) = Y ( z) X ( z) Transmitancja systemu w zależności od współczynników równania różnicowego System liniowy-stacjonarny w dziedzinie czasu opisuje równanie różnicowe. N M k =0 i =0 ∑ ak y [ n − k ] = ∑ bi x [ n − i ] Wykorzystując własność liniowości transformaty Z oraz transformaty przesuniętych w czasie sygnałów otrzymuje się: N M k =0 i =0 ∑ ak z − kY ( Z ) = ∑ bi z − i X ( z ) Stąd transmitancja systemu może być opisana jako: H (z) = Y ( z) X ( z) M H (z) = ∑b z −i ∑a z −k i =0 N k =0 i k -7- Przykład: Znajdziemy równanie różnicowe opisujące system jeżeli dana jest jego transmitancja H ( z) = 5z + 2 z + 3z + 2 2 Pomnożymy licznik i mianownik przez z-2 i porównamy z zależnością ogólną dla H(z) b0 + b1 z −1 + b2 z −2 H (z) = a0 + a1 z −1 + a2 z −2 5 z −1 + 2 z − 2 H (z) = 1 + 3 z −1 + 2 z −2 Stąd wynika równanie różnicowe opisujące system ma postać: a0 y [ n ] + a1 y [ n − 1] + a2 y [ n − 2] = b1 x [ n − 1] + b2 x [ n − 2] y [ n ] + 3 y [ n − 1] + 2 y [ n − 2] = 5 x [ n − 1] + 2 x [ n − 2] Transmitancja systemu w zależności od macierzy stanu System liniowy-stacjonarny w dziedzinie czasu opisują równania stanu Q [ n + 1] = AQ [ n ] + bx [ n ] y [ n ] = cQ [ n ] + Dx [ n ] -8- Transformata Z wektora stanu wynosi: ⎡ Q1 ( z ) ⎤ ⎢ ⎥ Q2 ( z ) ⎥ ⎢ Q( z) = ⎢ M ⎥ ⎢ ⎥ ⎢⎣QN ( z ) ⎥⎦ Transformata pierwszego równania macierzowego wynosi zQ ( z ) = AQ ( z ) + bX ( z ) Q ( z ) = ( zI − A ) b X ( z ) −1 Dla drugiego równania mamy Y ( z ) = cQ ( z ) + DX ( z ) Podstawiając pierwsze do drugiego: Y ( z ) = ⎡⎣c ( zI − A ) b + D ⎤⎦ X ( z ) −1 Stąd transmitancja systemu z zależności od macierzy stanu A, b, c, D: H (z) = Y ( z) X ( z) H ( z ) = c ( zI − A ) b + D −1 -9- Przykład Wyznaczymy transmitancję oraz równanie różnicowe systemu LTI, opisanego w przestrzeni stanu: ⎡ 0 1⎤ ⎡0⎤ , b = ⎢ ⎥ , c = [3 0] , D [ 0] A=⎢ ⎥ ⎣ −1 1⎦ ⎣2⎦ Obliczamy: ⎡1 0 ⎤ ⎡ 0 1⎤ ⎡ z −1 ⎤ zI − A = z ⎢ ⎥−⎢ ⎥=⎢ ⎥ ⎣0 1 ⎦ ⎣ −1 1⎦ ⎣1 z − 1⎦ ( zI − A ) −1 = ⎡ z − 1 1⎤ 1 z 2 − z + 1 ⎢⎣ −1 z ⎥⎦ Transmitancja systemu H ( z ) = c ( zI − A ) b + D −1 ⎡ z − 1 1⎤ ⎡0⎤ 1 3 0 [ ] ⎢ −1 z ⎥ ⎢ 2 ⎥ + 0 z2 − z + 1 ⎣ ⎦⎣ ⎦ ⎡2⎤ 1 = 2 [3 0] ⎢ ⎥ z − z +1 ⎣2 z ⎦ 6 = 2 z − z +1 H ( z) = Mnożymy licznik i mianownik przez z-2 6 z −2 H ( z) = 1 − z −1 + z −2 Równanie różnicowe: y [ n ] − y [ n − 1] + y [ n − 2] = 6 x [ n − 2] - 10 - Wykorzystanie funkcji Matlab’a Charakterystyki systemów LTI MATLAB zawiera szereg specjalnych funkcji pozwalających na swobodne przechodzenia między tymi różnymi opisami systemu. Jeżeli wektory b i a zawierają współczynniki wielomianów funkcji transmitancji odpowiednio licznika i mianownika, to funkcja tf2ss(b,a) określa opis systemu w przestrzeni stanu, natomiast tf2zp(b,a) przekształca funkcję transmitancji do postaci zero-biegunowej. Podobnie zp2ss i zp2tf konwertują opis zero-biegunowy do opisów odpowiednio w przestrzeni stanu oraz transmitancji. Funkcje ss2tf i ss2zp to konwersje opisu w przestrzeni stanu do opisu w postaci transmitancji i zero-biegunowej. Przykład Rozpatrzymy system dyskretny opisany funkcją transmitancji H ( z) = 0.094 ( z 4 + 4 z 3 + 6 z 2 + 4 z + 1) z 4 + 0.4860 z 2 + 0.0177 Matlab » b=.094*[1 4 6 4 1]; » a=[1 0 0.486 0 0.0177]; » zplane(b,a) - 11 - 1 0.8 0.6 Imaginary Part 0.4 0.2 0 4 -0.2 -0.4 -0.6 -0.8 -1 -1 -0.5 System w postaci zero-biegunowej: >> [r,p]=tf2zp(b,a) r = -1.0002 -1.0000 + 0.0002i -1.0000 - 0.0002i -0.9998 p = 0 0 0 0 + + - 0.6681i 0.6681i 0.1991i 0.1991i 0 Real Part 0.5 1 - 12 - System opisany w przestrzeni stanu: >> [A,B,C,D ]=tf2ss(b,a) A = 0 1.0000 0 0 B = C = D = -0.4860 0 1.0000 0 0 0 0 1.0000 -0.0177 0 0 0 0.5183 0.3760 0.0923 1 0 0 0 0.3760 0.0940 Charakterystyka częstotliwościowa: » [H,w]=freqz(b,a,250); » plot(w,abs(H)) Widmo amplitudowe 1.4 1.2 Amplituda 1 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 Czestotliwosc 2.5 3 3.5 System posiada zero ( o krotności 4) w punkcie z=-1 oraz cztery bieguny na osi urojonych. Takie położenie zer implikuje, bardzo małe wartości na charakterystyce amplitudowej dla wysokich częstotliwości. - 13 - Przyczynowość i stabilność systemów liniowych-stajonarnych Odpowiedź impulsowa systemu przyczynowego jest zerowa dla n<0. Dlatego odpowiedź impulsowa systemu przyczynowego jest zdeterminowana przez prawostronną transformatę odwrotną transmitancji. Patrząc na bieguny transmitancji, to wszystkie muszą mieć moduł mniejszy niż promień obszaru zbieżności, inaczej obszar zbieżności transmitancji jest na zewnątrz dla wszystkich biegunów. Wszystkie bieguny generują wtedy składniki wykładnicze: malejące, gdy bieguny znajdują się wewnątrz okręgu jednostkowego (sy) » » » » » » b=[0 1]; a=[1 0.5]; x=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; zplane(b,a); y=filter(b,a,x); stem(y); 1 1 0.8 0.6 Imaginary Part 0.4 0.5 0.2 0 -0.2 0 -0.4 -0.6 -0.8 -1 -1 -0.5 0 Real Part 0.5 1 -0.5 0 2 4 6 8 10 12 14 16 18 - 14 - rosnące gdy bieguny znajdują się na zewnątrz okręgu jednostkowego. » » » » » » b=[0 1]; a=[1 -1.5]; x=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; zplane(b,a); y=filter(b,a,x); stem(y); 700 1 0.8 600 0.6 500 Imaginary Part 0.4 0.2 400 0 300 -0.2 -0.4 200 -0.6 100 -0.8 -1 -1 -0.5 0 0.5 1 1.5 0 0 2 4 6 8 10 12 14 16 18 Real Part System jest stabilny (BIBO) jeżeli odpowiedź impulsowa jest bezwzględnie sumowalna, dotyczy to przypadku gdy odpowiedź impulsowa systemu jest suma malejących składników. Patrząc na transmitancję, oznacza to, że jej obszar zbieżności musi zawierać okrąg jednostkowy. System jest stabilny i przyczynowy jeżeli wszystkie bieguny są położone wewnątrz okręgu jednostkowego. System przyczynowy, stabilny jest minimalnofazowy jeżeli wszystkie zera i bieguny trans są położone wewnątrz okręgu jednostkowego - 15 - Matlab - schematy blokowe MATLAB pozwala na konwersję modelu „zero-biegunowego” lub opisanego w przestrzeni stanu na kaskadowe połączenie układów drugiego rzędu postaci opisanych jako: b0 + b1z −1 + b2 z −2 H (z) = 1 + a1 z −1 + a2 z −2 W dziedzinie czasu taki system opisuje równanie różnicowe y ⎡⎣ n ⎤⎦ + a1 y ⎡⎣ n − 1⎤⎦ + a2 y ⎡⎣ n − 2⎤⎦ = b0 x ⎡⎣ n ⎤⎦ + b1 x ⎡⎣ n − 1⎤⎦ + b2 x ⎡⎣ n − 2⎤⎦ Schemat blokowy, który odpowiada powyższym równaniom: X(z) b0 Σ Σ z-1 Σ b1 -a1 z-1 -a2 b2 Σ Y(z) - 16 - Współczynniki kaskadowo połączonych układów 2 rzędu otrzymuje się stosując funkcję MATLABA zp2sos lub ss2sos. Format funkcji jest nastepujący: >> sos=zp2sos(z,p,k) gdzie z- wektor zawierający zera transmitancji, p- wektor zawierający bieguny transmitancji, k- wzmocnienie. W wyniku otrzymuje się macierz 6 kolumnową o liczbie wierszy zależnej od liczby wyznaczonych kaskad. Kolejne elementy każdego wie rsza zawierają współczynniki kolejno b0, b1, b2, 1, a1, a2. Przykład: H ( z) = (1+ jz )(1− jz )(1+ z ) )(1− e π z )(1− e π z )(1− −1 (1− 1 e jπ / 4 z −1 2 1 − j / 4 −1 2 −1 −1 3 4 j /8 −1 3 − jπ /8 z −1 4e ) System posiada zera dla z=±j oraz z=-1, bieguny dla z = 12 e ± jπ / 4 oraz z = 34 e ± jπ / 8 . Zastosujemy funkcję zp2sos: » z=[-1 -j j]; » p=[.5*exp(j*pi/4), .5*exp(-j*pi/4), .75*exp(j*pi/8), .75*exp(j*pi/8)]; » k=1; » sos=zp2sos(z,p,k); sos = 0 1.0000 1.0000 1.0000 -0.7071 0.2500 1.0000 0 1.0000 1.0000 -1.3858 0.5625 - 17 - Wyznaczone kaskady 2 rzędu mają następujące transmitancje: H 1 (z ) = z −1 + z −2 1 − 0.7071z −1 + 0.25 z −2 H 2 (z ) = 1 + z −2 1 − 1.3858 z −1 + 0.5625 z −2 Na tej podstawie można narysować schemat blokowy systemu. X(z) Σ Σ Σ z-1 Σ 0.0171 z-1 Σ Σ 1.3858 z-1 -0.25 Y(z) z-1 -0.5625 Przykład: Zadanie polega na doborze systemu, który skutecznie będzie tłumił sygnał wejściowy sinusoidalny. Wówczas z charakterystyki amplitudowej tego filtru będzie można odczytać częstotliwość tłumionego sygnału. - 18 - Prostym systemem, który może pełnić funkcję filtru wycinającego pojedynczą składową sinusoidalną jest filtr przedstawiony na rysunku: Xn-1 Xn Xn+1 Z-1 Z-1 a a + en Sygnał na wyjściu filtru opisuje równanie : en = axn−1 + xn + axn+1 Transformata „Z” równania różnicowego: ( )⎦ E ( z ) = X ( z ) ⎡⎢1 + a z −1 + z ⎤⎥ ⎣ Transmitancja filtru wynosi: H ( z ) = 1 + a ( z −1 + z ) Podstawiając z = e jω oblicza się charakterystykę częstotliwościową filtru: H ( jω ) = 1 + a ( e− jω + e jω ) - 19 - H ( jω ) = 1 + 2a cosω Charakterystyka amplitudowa: H ( jω ) = 1 + 2a cosω 1000 1 0.9 0.8 0.7 2 0.6 0.5 0.4 1 0.3 0.2 2/3 0.1 0 0 pi/2 pi Filtr zerowy dla a=[1000 2 1 2/3 11/20 101/200]; Miejsce zerowe charakterystyki amplitudowej 1 + 2a cosω = 0 odpowiada częstotliwości tłumionego sygnału: ω = arccos ⎛⎜ − 1 ⎞ ⎟ ⎝ 2a ⎠ 11/20 101/200 - 20 - Dla częstotliwości próbkowania fp częstotliwość sygnału wyniesie: f = fp 2π ω= fp 2π arccos ⎛⎜ − 1 ⎞ ⎟ ⎝ 2a ⎠ Pozostaje zatem wyznaczyć współczynnik „a” filtru. Założymy, opisany filtr przetwarza sygnał wejściowy o długości M+1 próbek. Chcemy aby filtr był tak dobrany, aby na jego wyjściu nic się nie pojawiało. Jednak ze względu na szum w sygnale wejściowym i błędy numeryczne wystarczy jeżeli będzie spełniony warunek minimum średniokwadratowego: ∂ M −1 2 ( en ) = 0 ∑ ∂a n=1 Podstawiając: 2 ∂ M −1 a [ xn−1 + xn+1 ] + xn ) = 0 ( ∑ ∂a n=1 ( ) ∂ M −1 2 2 a [ xn−1 + xn+1 ] + 2axn [ xn−1 + xn+1 ] + ... = 0 ∑ ∂a n=1 M −1 ∑ 2a [ x n −1 n =1 M −1 M −1 + xn+1 ] + ∑ 2 xn [ xn−1 + xn+1 ] = 0 2 n =1 M −1 a ∑ [ xn−1 + xn+1 ] = − ∑ xn [ xn−1 + xn+1 ] n =1 2 n =1 - 21 - Współczynnik filtru: M −1 a= − ∑ xn [ xn−1 + xn+1 ] n =1 M −1 ∑[x n =1 + xn+1 ] 2 n −1 Stąd ostatecznie częstotliwość sygnału: ⎛ M −1 2 ⎞ xn−1 + xn+1 ] ⎟ [ ∑ ⎜ f ⎟ f = p arccos ⎜ Mn=−11 2π ⎜ 2 x [x + x ]⎟ ⎜ ∑ n n−1 n+1 ⎟ ⎝ n=1 ⎠ Wyniki symulacji: M=40 51.5 frequency (Hz) Estim. True 50 49.5 0 0.3 0.6 time (s) *)Przygotowano na podstawie: S. Haykin, B.Van Veen „Signals and System” New York 1999 Dyskretna Transformata Fouriera Transformata Fouriera ciągu dyskretnego Transform - DTFT) (ang. Discrete-Time Fourier ( ) Definicja: Transformata Fouriera ciągu dyskretnego (DTFT) X e jω sygnału x[n] jest definiowana jako: ∞ ( ) ∑ x [ n] e X e jω = − jω n n =−∞ ( ) jest funkcją zespoloną zmiennej rzeczywistej ω Ogólnie X e jω i może być zapisana jako: ( ) ( ) ( ) X e jω = X re e jω + jX im e jω ( ) ( ) są odpowiednio częścią rzeczywistą i urojoną X re e jω i X im e jω są rzeczywistymi funkcjami zmiennej ω DTFT można przedstawić w postaci wykładniczej: ( ) ( ) X e jω = X e jω e jθ (ω ) gdzie { } θ (ω ) = arg X ( e jω ) ( ) X e jω nazywa się modułem funkcji lub widmem amplitudowym θ (ω ) nazywa się fazą funkcji lub widmem fazowym Obie wielkości są funkcjami rzeczywistymi zmiennej ω ( ) X e jω i Dla rzeczywistych ciągów x[n]: ( ) i X ( e jω ) są funkcjami parzystymi zmiennej ω X e jω re θ (ω ) i X im ( e jω ) są funkcjami nieparzystymi zmiennej ω Ze względu na własności zespolonej funkcji wykładniczej: ( ) ( ) ( = X ( e jω ) e ( ) X e jω = X e jω e jθ ω + 2π k ) = jθ ω dla dowolnego k. Przykład: Wyznaczenie Transformaty Fouriera wykładniczego ciągu dyskretnego opisującego system przyczynowy: x [ n ] = a n ⋅ 1[ n ] , a <1 DTFT jest dana jako ∞ ( ) = ∑ a ⋅1[ n] e X e jω n − jω n n =−∞ ∞ = ∑ ( ae − jω ) = n n =0 ∞ = ∑ a n e − jω n = n=0 1 1 − ae − jω gdzie ae − jω = a < 1 Widmo amplitudowe i fazowe DTFT dla a = 0.5 przedstawia wykres: ( ) X e jω = 1 1 − 0.5e − jω 2 1.8 Widmo amplitudowe 1.6 1.4 1.2 1 0.8 0.6 -3 -2 -1 0 w/pi 1 2 3 -2 -1 0 w/pi 1 2 3 0.6 0.4 Widmo fazowe 0.2 0 -0.2 -0.4 -0.6 -0.8 -3 ( ) DTFT X e jω ciągu x[n] jest ciągłą funkcją częstotliwości ω ( ) DTFT X e jω ciągu x[n] okresową funkcją ω o okresie 2π Związek Transformaty Fouriera ciągu dyskretnego z transformatą ZET Porównując definicje transformaty ZET oraz DTFT X ( z) = ∞ ∑ x [ n] z ∞ ( ) = ∑ x [ n] e −n X e n =−∞ jω − jω n n =−∞ można zauważyć, że istnieje prosta zależność między nimi. ( ) X e jω = X ( z ) z = e jω Jednak aby można było zastosować powyższe podstawienie musi być spełniony dodatkowy warunek dotyczący obszaru zbieżności funkcji X(z): Obszar zbieżności musi zawierać okrąg jednostkowy, czyli jeżeli oznaczymy promienie okręgów, które wyznaczają obszary zbieżności dla ciągów lewostronnych i prawostronnych odpowiednio Rx+ ; Rx− to ich wartości: Rx + < 1 < Rx − Im Re 1 Dyskretne przekształcenie Fouriera (ang. Discrete Fourier Transform - DFT) Definicja: Zależność między ciągiem x[n] o skończonej długości 0 ≤ n ≤ N − 1 a jego DTFT X ( e jω ) można otrzymać próbkując jednostajnie funkcję X ( e jω ) w osi ω w przedziale 0 ≤ ω ≤ 2π w punktach ω k = 2π k / N , 0 ≤ k ≤ N − 1 Zatem: X [k ] = X (e jω N −1 ) ω = 2π k / N = ∑ x [ n] e − j 2π kn / N n =0 gdzie 0 ≤ k ≤ N −1 X [ k ] jest ciągiem zespolonym o długości N w dziedzinie częstotliwości. Ciąg X [ k ] nazywa się dyskretną transformatą Fouriera (DTF) ciągu x[n] Wprowadzając oznaczenie WN = e − j 2π / N , DFT często wyraża się jako: N −1 X [ k ] = ∑ x [ n ]WNkn , 0 ≤ k ≤ N − 1 n =0 Odwrotna dyskretna transformata Fouriera (IDFT): 1 N −1 x [ k ] = ∑ X [ k ]WN− kn , 0 ≤ n ≤ N − 1 N k =0 Przykład: X[n] 1 n 0 1 2 N-1 N punktów DFT danych jest zależnością N −1 X [ k ] = ∑ x [ n ]WNkn = x [ 0]WN0 = 1, 0 ≤ k ≤ N − 1 n =0 Przykład: n=m ⎧1, x [ n] = ⎨ ⎩ 0, 0 ≤ n ≤ m − 1, m + 1 ≤ n ≤ N − 1 N −1 X [ k ] = ∑ x [ n ]WNkn = x [ m ]WNkm = WNkm , 0 ≤ k ≤ N − 1 n =0 Postać macierzowa: DFT definiowana jako N −1 X [ k ] = ∑ x [ n ]WNkn n =0 można zapisać w postaci macierzowej X = DN x gdzie X = ⎡⎣ X [ 0] X [1] K X [ N − 1]⎤⎦ x = ⎡⎣ x [ 0] x [1] K x [ N − 1]⎤⎦ T T 1 1 ⎡1 ⎢ 1 WN2 ⎢1 WN D N = ⎢1 WN2 WN4 ⎢ ⎢M M M ⎢ ⎢⎣1 WN( N −1) WN2( N −1) L L L O L ⎤ N −1 ⎥ WN( ) ⎥ 2 N −1 ⎥ WN ( ) ⎥ M ⎥ 2 ⎥ N −1 WN( ) ⎥⎦ 1 IDFT definiowana jako 1 N −1 x [ n ] = ∑ X [ k ]WN− kn N k =0 można zapisać w postaci macierzowej x= 1 −1 DN X N gdzie 1 1 ⎡1 ⎢ −1 WN−2 ⎢1 WN D−N1 = ⎢1 WN−2 WN−4 ⎢ ⎢M M M ⎢ ⎢⎣1 WN−( N −1) WN−2( N −1) oraz: D−N1 = 1 * DN N L L L O L ⎤ − N −1 ⎥ WN ( ) ⎥ −2 N −1 ⎥ WN ( ) ⎥ M ⎥ 2 ⎥ −( N −1) ⎥⎦ WN 1 DFT jako korelacja z funkcjami sinusoidalnymi Z zależności Eulera e zapisać jako: − jφ = cos (φ ) − j sin (φ ) wynika, że równanie DFT można N −1 X [ k ] = ∑ x [ n ] ⎡⎣ cos ( 2π nk / N ) − j sin ( 2π nk / N ) ⎤⎦ n =0 gdzie: • X[k] - k-ta składowa DFT, tj. X[0], X[1], …., X[N-1] • k - indeks próbek DFT w dziedzinie częstotliwości, k =0, 1, 2, 3, ..., N-1 • x[n] - ciąg próbek wejściowych, x[0], x[1],..., x[N-1] • n indeks próbek wejściowych w dziedzinie czasu, n= 0, 1,2,3,...,N-1 • N - liczba próbek ciągu wejściowego oraz liczba punktów częstotliwości w ciągu DFT. Indeksy (n) dla próbek wejściowych oraz (k) dla próbek DFT zawsze zmieniają się od 0 do N-1 w standardowej notacji DFT. Oznacza to, że mając N próbek wejściowych w dziedzinie czasu, DFT wyznacza zawartość widmową sygnału wejściowego w N równomiernie rozłożonych punktach osi częstotliwości. Wartość N jest ważnym parametrem, ponieważ określa ona: • ile wymaganych jest próbek wejściowych, • jaka jest rozdzielczość wyników w dziedzinie częstotliwości • jaki jest czas przetwarzania wymagany do obliczenia N- punktowej DFT. Przykład Jeśli N = 4, zarówno n, jak i k zmieniają się od 0 do 3. równanie DFT przyjmuje postać: 3 X [ k ] = ∑ x [ n ] ⎡⎣ cos ( 2π nk / 4 ) − j sin ( 2π nk / 4 ) ⎤⎦ 0 Wypisując wszystkie składniki dla pierwszej próbki DFT, k = 0, mamy X [ 0] = x ( 0 ) cos ( 2π ⋅ 0 ⋅ 0 / 4 ) − jx ( 0 ) sin ( 2π ⋅ 0 ⋅ 0 / 4 ) + x (1) cos ( 2π ⋅1 ⋅ 0 / 4 ) − jx (1) sin ( 2π ⋅1⋅ 0 / 4 ) + x ( 2 ) cos ( 2π ⋅ 2 ⋅ 0 / 4 ) − jx ( 2 ) sin ( 2π ⋅ 2 ⋅ 0 / 4 ) + x ( 3) cos ( 2π ⋅ 3 ⋅ 0 / 4 ) − jx ( 3) sin ( 2π ⋅ 3 ⋅ 0 / 4 ) Dla drugiej próbki DFT, k = 1. równanie przyjmuje postać X [1] = x ( 0 ) cos ( 2π ⋅ 0 ⋅1/ 4 ) − jx ( 0 ) sin ( 2π ⋅ 0 ⋅1/ 4 ) + x (1) cos ( 2π ⋅1⋅1/ 4 ) − jx (1) sin ( 2π ⋅1 ⋅1/ 4 ) + x ( 2 ) cos ( 2π ⋅ 2 ⋅1/ 4 ) − jx ( 2 ) sin ( 2π ⋅ 2 ⋅1/ 4 ) + x ( 3) cos ( 2π ⋅ 3 ⋅1/ 4 ) − jx ( 3) sin ( 2π ⋅ 3 ⋅1/ 4 ) Dla trzeciej próbki DFT, k = 2, równanie przyjmuje postać X [ 2] = x ( 0 ) cos ( 2π ⋅ 0 ⋅ 2 / 4 ) − jx ( 0 ) sin ( 2π ⋅ 0 ⋅ 2 / 4 ) + x (1) cos ( 2π ⋅1⋅ 2 / 4 ) − jx (1) sin ( 2π ⋅1⋅ 2 / 4 ) + x ( 2 ) cos ( 2π ⋅ 2 ⋅ 2 / 4 ) − jx ( 2 ) sin ( 2π ⋅ 2 ⋅ 2 / 4 ) + x ( 3) cos ( 2π ⋅ 3 ⋅ 2 / 4 ) − jx ( 3) sin ( 2π ⋅ 3 ⋅ 2 / 4 ) Dla czwartej i ostatniej próbki DFT, k = 3, równanie przyjmuje postać X [3] = x ( 0 ) cos ( 2π ⋅ 0 ⋅ 3 / 4 ) − jx ( 0 ) sin ( 2π ⋅ 0 ⋅ 3 / 4 ) + x (1) cos ( 2π ⋅1⋅ 3 / 4 ) − jx (1) sin ( 2π ⋅1⋅ 3 / 4 ) + x ( 2 ) cos ( 2π ⋅ 2 ⋅ 3 / 4 ) − jx ( 2 ) sin ( 2π ⋅ 2 ⋅ 3 / 4 ) + x ( 3) cos ( 2π ⋅ 3 ⋅ 3 / 4 ) − jx ( 3) sin ( 2π ⋅ 3 ⋅ 3 / 4 ) Każda próbka X(k) DFT stanowi sumę punkt po punkcie iloczynu ciągu wartości wejściowego sygnału i przebiegu zespolonego postaci cos (φ ) − j sin (φ ) . Jak wynika z przykładu, wartości częstotliwości przebiegów sinusoidalnych, zależą od częstotliwości próbkowania fp, sygnału oraz od liczby próbek N. Przykład: Jeżeli próbkujemy ciągły sygnał z szybkością 500 próbek/s, i wyznaczamy 16punktową DFT z tych próbek, to częstotliwość podstawowa sinusoid, z którymi korelujemy sygnał transformowany wynosi: fp/N= 500/16= 31,25Hz. Wyznaczone wartości X(k) DFT zwane prążkami, są określone w punktach o częstotliwościach będących całkowitymi wielokrotnościami tej częstotliwości, tj. X[0] - 1. prążek o częstotliwości analizy = 0x31,25 = 0 Hz. X[1] - 2. prążek o częstotliwości analizy = 1x31,25 = 31,25 Hz, X[2] - 3. prążek o częstotliwości analizy = 2x31,25=62,5 Hz, X[3] - 4. prążek o częstotliwości analizy = 3x31,25 = 93,75 Hz. ..................... X[15] - 16. prążek o częstotliwości analizy 15x31,25=468.75 Hz. Wartości częstotliwości N kolejnych punktów na osi częstotliwości są określane jako fa = mf p N Natomiast rozdzielczość DFT wyraża się zależnością: Δf = fp N Moc chwilowa sygnału Xp(k) jest wyrażona jako kwadrat wartości bezwzględnej widma: X P ( k ) = X ( k ) = X re2 ( k ) + X im2 ( k ) 2 Przykład Należy próbkować ciągły sygnał wejściowy x(t), zawierający dwie składowe o częstotliwościach 1 kHz i 2 kHz, wyrażony jako: x ( t ) = sin ( 2π ⋅1000 ⋅ t ) + 12 sin ( 2π ⋅ 2000 ⋅ t + 34π ) oraz wyznaczyć jego 8-punktową DFT. Przy częstotliwości próbkowania fp, próbkujemy sygnał wejściowy w odstępach czasowych 1/fp=Tp Potrzebujemy 8 próbek wejściowych, umożliwiających wyznaczenie 8 punktów DFT. 8-elementowy ciąg x[n] jest równy x(t) próbkowanemu w chwilach czasu nTp: x [ n ] = x ( nTp ) = sin ( 2π ⋅1000 ⋅ nTp ) + 12 sin ( 2π ⋅ 2000 ⋅ nTp + 34π ) Jeśli wybierzemy szybkość próbkowania równą fp = 8000 próbek/s, wówczas DFT określa składowe sygnału x[n] w punktach osi częstotliwości mfp/N, czyli 0 kHz, 1 kHz, 2 kHz ... 7 kHz. Wartości próbek sygnału x(n), to x[0]=0,3535, x[2]= 0,6464, x[4]=0,3535, x[6] = -1,3535, x[1]=0,3535, x[3] = 1,0607, x[5]=-1,0607, x[7] = -0,3535 Te wartości próbek x[n] zaznaczono jako punkty na ciągłej krzywej x(t) na rys. Składowe sinusoidalne pokazano jako krzywe przerywane na rys. DFT Dla k = 1, lub też dla składowej DFT o częstotliwości 1 kHz (kfp /N = 8000/8), równanie dla tego przykładu przyjmuje postać ⎛ 2π n ⎞ ⎛ 2π n ⎞ X (1) = ∑ x [ n ] cos ⎜ ⎟ − jx [ n ] sin ⎜ ⎟ ⎝ 8 ⎠ ⎝ 8 ⎠ n =0 7 Podstawiając wartości próbek x[n] do równania i wypisując składowe kosinusoidalne w lewej kolumnie oraz składowe sinusoidalne w prawej kolumnie, mamy X[1]= 0,3535 · 1,0 + 0,3535 · 0,707 + 0,6464 · 0,0 + 1,0607 · 0,707 +0,3535 · -1,0 -1,0607 · -0,707 -1,3535 · -0,0 -0,3535 · 0,707 = 0,3535 + + 0,250 - 0,750 -0,3535+ +0,750 -0,250= X[1]= 0,0—j4,0 -j (0,3535 · 0,0)+ -j(0,3535 · 0,707)+ -j(0,6464 · 1,0)+ -j(1,0607 · 0,707)+ dla n=0 dla n=1 dla n=2 dla n=3 - j(0,3535 · 0,0)+ -j(-1,0607 · 0,707)+ -j(-1,3535 · -1,0)+ -j(0,3535 · -0,707)= dla n=4 dla n=5 dla n=6 dla n=7 -j0,250 + -j0,6464 + -j0,750+ -j0,750+ -j1,3535 +j0,250= o − j 90 = 4e Należy zauważyć, że użyte w tej analizie sinusoidy i kosinusoidy mają częstotliwość 1kHz (linie przerywane na rysunku), jest to jeden okres w przedziale próbkowania. Wynik obliczeń pokazuje, że sygnał wejściowy x[n] zawiera składową o częstotliwości 1kHz. Wartość bezwzględna X(1) X (1) = 4 Faza: ⎛ X imag (1) ⎞ X φ (1) = arctg ⎜ = −900 ⎟ ⎜ X (1) ⎟ ⎝ real ⎠ Moc chwilowa X P (1) = X (1) = 16 2 Przykład 1 DFT Przykład 1 DFT Dla k = 2 korelujemy x[n] z przebiegiem kosinusoidalnym o częstotliwości 2 kHz i z przebiegiem sinusoidalnym o częstotliwości 2 kHz. Te przebiegi są przedstawione jako krzywe przerywane na rys. Zauważmy, że na rys. przebiegi sinusoidalny i kosinusoidalny mają k = 2 pełne okresy w przedziale próbkowania. Podstawienie wartości próbek x(n) do równania (3) dla k=2 daje w wyniku: X(2)=1,414+j l,414 = 2e j 45o Sygnał wejściowy x[n] zawiera składową o częstotliwości 2 kHz, której względna amplituda jest równa 2 i której kąt fazowy względem kosinusoidy o częstotliwości 2 kHz wynosi 450. Dla k = 3, korelujemy x[n] z przebiegiem kosinusoidalnym o częstotliwości 3 kHz i z przebiegiem sinusoidalnym o częstotliwości 3 kHz. Przebiegi te są przedstawione jako krzywe przerywane na rys. Zauważmy znów, że mają one k = 3 pełne okresy w przedziale próbkowania. Podstawienie wartości próbek x(n) dla równania dla k = 3 daje X(3) = 0 –j0= 0 DFT wskazuje, że x[n] nie zawiera żadnej składowej o częstotliwości 3 kHz. Kontynuujemy analogicznie wyznaczanie DFT dla składowej w dziedzinie częstotliwości odpowiadającej k = 4 X(4) = 0,0—j0,0 = 0 k = 5 X(5) = 0,0—j0,0 = 0 o − j 45 k = 6 X(6) = 1,414-j1,414= 2e o j 90 k = 7 X(7) = 0+j4 = 4e Jeśli k = 0, korelujemy x(n) z cos ( 0 ) − j sin ( 0 ) N −1 N −1 n =0 n =0 X (0 ) = ∑ x(n )[cos(0 ) − j sin (0 )] = ∑ X (n ) Wartość X(0) w dziedzinie częstotliwości określa składową stałą w widmie sygnału x(n). X(0) = 0,3535+0,3535+ 0,6464+1,0607+0,3535-1,0607-1,3535-0,3535= 0 Jeżeli wykreślimy wartości wyjściowe |X(k)| w funkcji częstotliwości, otrzymamy widmo amplitudowe ciągu wejściowego x[n], pokazane na rys. Kąty fazowe składowych wyjściowych X(k) są przedstawione na rys. Wyniki DFT z przykładu 1: (a) moduł X(m), (b) faza X(m), (c) część rzeczywista X(m); (d) część urojona X(m) Zauważmy, że rysunek wskazuje, iż x[n], ma składowe o częstotliwościach 1 kHz km = 1) i 2 kHz (k = 2). Ponadto, składowa o częstotliwości 1 kHz ma amplitudę dwa razy większą, niż składowa o częstotliwości 2 kHz. Pytanie ? • co oznaczają niezerowe wartości amplitud przy k = 6 i k = 7 na rys • dlaczego amplitudy wydają się cztery razy większe, niż moglibyśmy oczekiwać? Przykład ilustruje dwie bardzo ważne cechy DFT: • każda pojedyncza wartość wyjściowa X(k) jest sumą kolejnych iloczynów ciągu próbek sygnału wejściowego z przebiegami kosinusoidalnymi i sinusoidalnymi, których częstotliwości są tak dobrane, iż przebiegi te mają k pełnych okresów w całkowitym przedziale N próbek • symetrię wyjściowych składników DFT Symetria DFT Z rysunku można stwierdzić oczywistą symetrię w wynikach DFT. Jeśli ciąg wejściowy x(n) jest rzeczywisty to zespolone wartości wyjściowe DFT dla argumentów k ≥ N 2 są nadmiarowe w stosunku do wartości wyjściowych dla argumentów od k=0 do k=N/2-1. • k-ta wartość wyjściowa DFT będzie miała taką samą amplitudę, jak (N—k)-ta wartość wyjściowa DFT. • Kąt fazowy m-tej wartości wyjściowej DFT jest równy kątowi fazowemu (N—k)-tej wartości wyjściowej DFT, ze znakiem ujemnym. Możemy stwierdzić, że (* -ozn. sprzężenia) X (k ) = X ∗ ( N − k ) Przykład W rozważonym przykładzie, zauważmy na rys. 4 że X(5), X(6) i X(7) są odpowiednio wartościami zespolonymi sprzężonymi z X(3), X(2) i X(1). • część rzeczywista X(k) charakteryzuje się właściwością zwaną symetrią parzystą, jak to pokazano na rysunku • część urojona DFT charakteryzuje się symetrią nieparzystą, jak to pokazano na rysunku Zatem, aby otrzymać DFT sygnału x[n], wystarczy wyliczyć pierwszych N/2 wartości X(k), gdzie 0 ≤ k ≤ N 2 − 1 ; • Jeśli rzeczywista funkcja wejściowa jest parzysta x(n)=x(-n), to X(k) jest zawsze rzeczywista i parzysta • Jeśli rzeczywista funkcja wejściowa jest nieparzysta, czyli x(-n)=x(-n), to XRe(k) jest zawsze równa zeru, zaś XIml(k) jest niezerowa. Liniowość DFT DFT ma bardzo ważną właściwość znaną jako liniowość. Właściwość ta mówi, że DFT sumy dwóch sygnałów jest równa sumie transformat każdego z sygnałów. Jeśli wstawimy xsuma ( n ) = x1 ( n ) + x2 ( n ) do równania (2), aby otrzymać Xsumal(k), wówczas N −1 X suma ( k ) = ∑ ( x1 [ n ] + x2 [ n ]) e − j 2π kn / N = n =0 N −1 = ∑ x1 [ n ] e − j 2π kn / N n =0 = X1 ( k ) + X 2 ( k ) N −1 + ∑ x2 [ n ] e− j 2π kn / N = n=0 Wartości widma amplitudowego DFT Przykład Rezultaty |X(1)|=4, |X(2)|=2 mogą zdezorientować, ponieważ składowe sygnału wejściowego x[n] miały amplitudy równe, odpowiednio, 1 i 0,5. Jeśli rzeczywisty sygnał wejściowy zawiera składową sinusoidalną o amplitudzie A0 i całkowitej liczbie okresów w przedziale N próbek wejściowych, wówczas amplituda wyjściowa DFT dla tego szczególnego przebiegu sinusoidalnego wynosi Mγ gdzie M r = A0 N 2 Jeśli sygnałem wejściowym DFT jest przebieg zespolony o amplitudzie A0 (tj. A0e jωt ) i całkowitej liczbie okresów w przedziale N próbek, wówczas amplituda wyjściowa DFT wynosi Mc gdzie M c = A0 N Jeśli sygnał wejściowy DFT zawiera składową stałą równą D0, to amplituda wyjściowej składowej stałej X(0) DFT będzie równa. D0 N Patrząc na poprzedni przypadek rzeczywistego sygnału wejściowego dla składowej o częstotliwości 1000 Hz A0=1 i N=8, zatem M r = 1⋅ 8 =4 2 jak pokazano w przykładzie. Czasem w literaturze widzimy DFT zdefiniowaną jako 2 X (k ) = N N −1 ∑ x [n] e − j 2π nk / N n =0 Czynnik skalujący 2/N sprawia, że amplitudy X(k) są równe wartości amplitudy wejściowej sinusoidy w dziedzinie czasu, za cenę obliczenia dodatkowego dzielenia przez N. Istnieją komercyjne pakiety oprogramowania wykorzystujące zależności: X (k ) = 1 N 1 x2 [ n ] = N N −1 ∑ x [ n]e − j 2π nk / N n =0 N −1 ∑ X ( k )e k =0 j 2π nk / N 2 dla prostej i odwrotnej DFT. Czynniki skalujące 1 N wydają się nieco dziwne, ale są one używane, aby nie było zmiany skali przy transformowaniu w każdym z kierunków. Opracowano na podstawie: R. G. Lyons „Wprowadzenie do cyfrowego przetwarzania sygnałów” 1999 -1- Dyskretne przekształcenie Fouriera – c.d. Twierdzenie o przesunięciu Istnieje ważna właściwość DFT, znana jako twierdzenie o przesunięciu. Mówi ono, że: Przesunięcie w czasie okresowego ciągu wejściowego x(n) powoduje stałe przesunięcie fazowe DFT. Jeśli zdecydujemy się próbkować x(n) począwszy od n równego pewnej wartości n = k, w przeciwieństwie do n = 0, to DFT tych przesuniętych w czasie wartości próbek stanowi X k ( m ) = e j 2π km / N X ( m ) (1) Z równania (1) widać, że jeśli punkt, w którym rozpoczynamy próbkowanie x(n) jest przesunięty w prawo o k próbek, to wyjściowe widmo Xk(m) DFT wyraża się jako X(m), o każdym zespolonym składniku X(m) przemnożonym przez liniowe przesunięcie fazowe e j 2π km / N , które jest przesunięciem fazy o 2πkm/N Na odwrót, jeśli punkt, w którym rozpoczynamy próbkowanie x(n) jest przesunięty w lewo o k próbek, to widmo Xk(m) wyraża się jako X(m) mnożone przez e− j 2π km / N -2- Przykład ( patrz przykład z poprzedniego wykładu - DFT ) Dokonano próbkowania sygnału wejściowego z przykładu poprzedniego DFT x ( t ) = sin ( 2π ⋅1000 ⋅ t ) + 12 sin ( 2π ⋅ 2000 ⋅ t + 34π ) z opóźnieniem o k = 3 próbki. Na rysunku 1 pokazano oryginalną wejściową funkcję czasu Rysunek 1. Próbkowanie sygnału x(t) w obu przykładach Nowy, przesunięty ciąg x(n) stanowi wartości reprezentowane grubymi czarnymi kropkami na rys. 1., których wartości to: x(0) =1,0607, x(2) = - 1,0607, x(4) = - 0,3535, x(6) = 0,3535, x(l) =0,3535 , x(3) = - 1,3535, x(5) = 0,3535, x(7) = 0,6464 -3- Wyznaczając DFT ciągu , Xk(m) ma postać: m amplituda faza 0 1 2 3 4 5 6 7 0 4 2 0 0 0 2 4 0 +45 -45 0 0 0 +45 -45 część część urojona rzeczywista 0 0 2,8284 2,8284 1,4141 -1,4141 0 0 0 0 0 0 1,4141 -1,4141 2,8284 -2,8284 Rysunek 2. Wyniki DFT z przykładu 2: (a) moduł Xk(m), (b) faza Xk(m), (c) część rzeczywista Xk(m), (d) część urojona Xk(m). Z obliczeń wynika, że amplituda Xk(m) amplitudy X(m). jest nie zmieniona względem Amplituda DFT względem oryginalnego sygnału okresowego nie uległa zmianie chociaż próbkowaliśmy sygnał w innym przedziale. -4- Jednak, faza DFT zmienia się w zależności od chwili, w której zaczęliśmy próbkować sygnał x(n). Patrząc na składową DFT Xk(m), odpowiadającą m = 1 sprawdzimy wartości fazy sygnału przesuniętego: Pamiętając, że X(1) z przykładu 1 DFT miała amplitudę 4 przy kącie fazowym -90 mamy dla k = 3 oraz N = 8: X 3 (1) = e j 2π k m N ⋅ X (1) = e j 2π 3 − jπ 8 ⋅ 4e 2 = 4e jπ 4 (2) Zatem X3(m) ma amplitudę równą 4 i kąt fazowy +45o. Odwrotne dyskretne przekształcenie Fouriera Wyrażeniami standardowymi dla IDFT są x ( n) = 1 N −1 X ( m ) e j 2π mn / N ∑ N m =0 (3) x ( n) = ⎡ ⎛ ⎛ 1 N −1 n⎞ n ⎞⎤ X m cos 2 m j sin 2 m π + π ( ) ⎢ ⎥ ⎜ ⎜ N m∑ N ⎟⎠ N ⎟⎠ ⎦⎥ ⎝ ⎝ =0 ⎣⎢ (4) i jednocześnie -5- Sygnał dyskretny w dziedzinie czasu można traktować jako sumę składowych sinusoidalnych o różnych częstotliwościach, a wartości X(m) DFT tworzą zbiór N wartości zespolonych, określających amplitudę i fazę każdej ze składowych tworzących tę sumę. Przykład Jeśli wyznaczymy IDFT wstawiając wyniki z przykładu 1 do równania (3), przejdziemy z powrotem z dziedziny częstotliwości do dziedziny czasu i otrzymamy wartości próbek oryginalnego sygnału x(n). N −1 1 x ⎡⎣ 2⎤⎦ = ∑ X ( m ) e j 2π m2/8 8 m =0 x ⎡⎣ 2⎤⎦ = 1 ( X ( 0 ) e jπ 0/8 + X (1) e jπ 4/8 + X ( 2 ) e jπ 6/8 X ( 3) e jπ 8/8 + ... + X ( 7 ) e jπ 14/8 ) 8 x[2] = 0,6464 oraz x[0] = 0,3535, x[1] = 0,3535, x[2] = 0,6464, x[3] = 1,0607, x[4] = 0,3535, x[5] = -1,0607, x[6] = -1,3535, x[7] = -0,3535 Zauważmy, że wyrażenie dla IDFT, określone równaniem (3), różni się od równania dla DFT jedynie czynnikiem skalującym 1/N oraz zmianą znaku wykładnika. Oprócz różnicy w skalowaniu wartości, wszystkie właściwości dotyczące DFT, jakimi dotąd zajmowaliśmy się, stosują się również do IDFT. -6- Przeciek DFT Poprzednie przykłady DFT przyniosły poprawne wyniki, ponieważ wejściowe ciągi x(n) stanowiły starannie dobrane przebiegi sinusoidalne. Jak się okazuje, DFT próbkowanych sygnałów rzeczywistych prowadzi do wyników w dziedzinie częstotliwości, które mogą być mylące. Właściwość DFT, znana jako przeciek widma, powoduje, że wyniki DFT stanowią jedynie aproksymację widma sygnałów wejściowych poddanych próbkowaniu. Istnieją sposoby minimalizacji przecieku, nie można jednak wyeliminować go całkowicie. DFT ograniczają się do operowania na skończonych zbiorach N wartości wejściowych, próbkowanych z częstotliwością fp, dając w wyniku N- punktową transformatę, której dyskretne wartości wyjściowe są związane częstotliwościami: fm = mf p ; N m = 0,1,2,..., N − 1 dla których wyznaczamy kolejne próbki DFT. DFT daje prawidłowe wyniki tylko wtedy, kiedy ciąg danych wejściowych zawiera energię rozłożoną dokładnie przy częstotliwościach, dla których dokonujemy analizy określonych równaniem (5), będących całkowitymi wielokrotnościami częstotliwości podstawowej fp/N. (5) -7- Przykład Jeśli sygnał wejściowy zawiera składową o pewnej częstotliwości pośredniej, np.:1,5 fp / N to pomiędzy częstotliwościami mfp / N, dla których wyznaczamy wartości DFT, ta składowa sygnału wejściowego ujawni się w pewnym stopniu przy wszystkich N wyjściowych wartościach częstotliwości DFT, dla których przeprowadzamy częstotliwościową analizę tego sygnału! Wyznaczamy 64 punktową DFT dla ciągu, który otrzymano w wyniku próbkowania 3 okresów sinusoidy (rys.3). Obliczona transformata pokazuje, że ciąg nie zawiera składowej o częstotliwości innej niż m=3. Korelacja ciągu wejściowego oraz składowych sinusoidalnych dla m różnego od 3 jest równa zero. Rysunek 3. 64-punktowa DFT (a) ciąg wejściowy, (b) moduł wartości wyjściowych DFT, pierwsza połowa wyniku -8- Mamy teraz ciąg wejściowy sinusoidalny mający 3,4 okresu dla 64 próbek. Ponieważ ten ciąg wejściowy nie ma całkowitej liczby okresów w przedziale 64 próbek, energia wejściowa przecieka do wszystkich innych próbek DFT, jak to pokazano na rys. 4(b). Rysunek 4. 64-punktowa DFT (a) ciąg wejściowy, (b) moduł wartości wyjściowych DFT, pierwsza połowa wyniku Próbka DFT np. dla m = 4 nie jest równy zeru, ponieważ suma iloczynów ciągu wejściowego i składowej odpowiadającej analizie częstotliwości dla m= 4 nie jest już równa zeru. To jest przeciek — powoduje on. że dowolny sygnał wejściowy, którego częstotliwość nie jest dokładnie równa częstotliwości, dla której jest wyznaczana dana próbka DFT, przecieka do wszystkich innych wyznaczanych próbek DFT. Przeciek jest nie do uniknięcia, kiedy wyznaczamy DFT rzeczywistego ciągu czasowego o skończonej długości. -9- Jak należy przewidywać i minimalizować skutki przecieku ? Dla rzeczywistego przebiegu sinusoidalnego, zawierającego k okresów w N- punktowym wejściowym ciągu czasowym, wartości prążków N-punktowej DFT w funkcji indeksu m są aproksymowane za pomocą funkcji sinc ⎡ ⎤ N sin ⎣π ( k − m ) ⎦ X (m) = ⋅ 2 π ( k − m) (6) Rysunek 5. DFT dla N-punktowego ciągu wejściowego, zawierającego k okresów rzeczywistej sinusoidy: (a) widmo jako funkcja m-tej próbki DFT, (b) widmo amplitudowe jako funkcja częstotliwości w Hz. -10- Krzywą na rys. 5 (a), zawierającą listek główny oraz okresowe szczyty i doliny, znane jako listki boczne, możemy traktować jako widmo N-punktowego, rzeczywistego czasowego ciągu sinusoidalnego, mającego k pełnych okresów w wejściowym N- punktowym przedziale czasowym. Wartości DFT są dyskretnymi próbkami, które znajdują się na krzywych z rys. 5: to jest, DFT będzie spróbkowaną wersją widma ciągłego. Jeśli ciąg wejściowy ma dokładnie całkowitą liczbę k okresów, przeciek nie pojawia się, ponieważ jeśli kąt w liczniku równania (6) jest niezerową całkowitą wielokrotnością π, to sinus tego kąta jest równy zeru. Jeśli wejściowa sinusoida ma całkowitą liczbę okresów w przedziale N próbek sygnału wejściowego w dziedzinie czasu, to wartości wyjściowe DFT są położone na krzywej widma ciągłego dokładnie w punktach przejść przez zero tej krzywej. Przykład: Rzeczywista sinusoida o częstotliwościach 8 kHz,8,5 kHz,8,75 kHz, o amplitudzie 1, została spróbkowana częstotliwością 32kHz. Dla 32 punktowej DFT odległość między próbkami wynosi fp/N=1kHz. DFT pokazuje rysunek. Rysunek 6. DFT dla 32-punktowego ciągu wejściowego sinusoidalnego częstotliwość sygnału f=8kHz, (b) f=8,5kHz, (c) f=8,75kHz (a) -11- DFT jest okresowa w dziedzinie częstotliwości, pokazuje to rysunek 7. Przy obliczaniu wartości DFT dla coraz większych częstotliwości poruszamy się w kółko. Rysunek 7 64-punktowa DFT, powielenia widma sygnału sinusoidalnego zawierającego 3,4 okresu. Bardziej konwencjonalną metodę prezentacji wartości wyjściowych DFT stanowi odwinięcie widma z rys. 7: Rysunek 8 Dodatkowe powielenia widma dla przykładu 3,4 okresu sygnału w przedziale próbkowania. -12- Okienkowanie Skutki przecieku widma DFT są kłopotliwe, ponieważ wartości prążków odpowiadające sygnałom o małej amplitudzie będą zakłócane przez poziomy listków bocznych z sąsiednich prążków odpowiadających sygnałom o dużej amplitudzie. Ważna technika, znana jako okienkowanie jest najbardziej powszechnym sposobem redukcji przecieku. Okienkowanie zmniejsza przeciek DFT przez zminimalizowanie amplitudy listków bocznych funkcji sinc z równania (6). Rysunek 9. Minimalizacja nieciągłości w punktach końcowych przedziału próbkowania: (a) wejściowa sinusoida o nieskończonym czasie trwania; (b) okno prostokątne odpowiadające przedziałowi próbkowania, (c) iloczyn okna prostokątnego i wejściowej sinusoidy; (d) trójkątna funkcja okna, (e) iloczyn okna trójkątnego i wejściowej sinusoidy; (f) funkcja okna Hanninga, (g) iloczyn okna Hanninga i wejściowej sinusoidy, (h) funkcja okna Hamminga -13- Rozważmy sygnał o nieskończonym czasie trwania w dziedzinie czasu, pokazany na rys. 9(a). DFT może być przeprowadzona jedynie na przedziale próbkowania o skończonym czasie, takim jak pokazany na rys. 9(c). Możemy traktować DFT sygnału wejściowego z rys. 9(c) jako DFT iloczynu sygnału wejściowego o nieskończonym czasie trwania z rys. 9(a), i okna prostokątnego, którego amplituda wynosi 1 w przedziale próbkowania pokazanym na rys. 9(b). Za każdym razem, kiedy wyznaczamy DFT ciągu wejściowego o skończonym czasie trwania, w sposób domyślny mnożymy ten ciąg przez okno samych jedynek i mnożymy wartości wejściowe poza tym przedziałem przez zera. Jak się okazuje, kształt funkcji sinc=sin(x)/x jest spowodowany przez to okno prostokątne, ponieważ ciągła transformata Fouriera okna prostokątnego jest funkcją sinc. Aby zminimalizować przeciek widma spowodowany przez te listki boczne musimy zmniejszyć ich amplitudy używając funkcji okna innych niż okno prostokątne. Wyobraźmy sobie, że przemnożyliśmy nasz sygnał wejściowy z rys. 9(a) przez okno trójkątne pokazane na rys. 9(d), aby otrzymać okienkowany sygnał wejściowy pokazany na rys. 9(e). Zauważmy na rys. 9(e), że wartości tego wynikowego sygnału wejściowego stają się takie same na początku i końcu przedziału próbkowania. Zredukowana nieciągłość zmniejsza poziom względnie wysokich składowych częstotliwościowych w całym zbiorze wartości całej DFT; to znaczy. że poziomy prążków DFT listków bocznych mają zmniejszoną amplitudę, dzięki użyciu okna trójkątnego. Istnieją inne funkcje okien, które zmniejszają przeciek nawet bardziej, niż okno trójkątne, takie jak okno Hanninga z rys. 9(f). Iloczyn okna z rys. 9(f) i ciągu wejściowego daje sygnał pokazany na rys. 9(g), stanowiący sygnał wejściowy DFT. Inną powszechnie używaną funkcją okna jest okno Hamminga, pokazane na rys. 9(h). Jest ono podobne do okna Hanninga, ale jest podniesione przy podstawie. -14- Typy okien Zakładając, że N oryginalnych próbek sygnału wejściowego jest indeksowanych przez n, gdzie 0 ≤ n ≤ N − 1 oznaczmy N współczynników okna jako w(n); to znaczy, że ciąg wejściowy x(n) jest mnożony przez odpowiadające współczynniki okna w(n), zanim jest wyznaczona DFT. Zatem DFT Xw(m) okienkowanego ciągu wejściowego x(n) przyjmuje postać N −1 XW ( m ) = ∑ w ( n ) ⋅ x ( n ) e j 2π m n N (7) n =0 Okno prostokątne w ( n ) = 1, dla n = 0,1,2,..., N − 1 (zwane także oknem jednostajnym lub — w języku angielskim — boxcar) Okno trójkątne ⎧ n ; n = 0,1,2,..., N / 2 ⎪⎪ N / 2 w(n) = ⎨ ⎪2 − n ; n = N / 2 + 1, N / 2 + 2,..., N − 1 ⎪⎩ N /2 (bardzo podobne do okien Bartletta i Parzena ) ⎛ 1 1 n⎞ w ( n ) = − cos ⎜ 2π ⎟ , n = 0,1, 2,..., N − 1 2 2 N⎠ ⎝ (zwane także oknem podniesionego cosinusa. Hanna lub von Hanna) Okno Hanninga: ⎛ Okno Hamminga: w ( n ) = 0,54 − 0,46cos ⎜ 2π ⎝ n⎞ ; n = 0,1,2,..., N − 1 N ⎟⎠ -15- Widmo amplitudowe okna prostokątnego stanowi miarę, jakiej zazwyczaj używamy aby porównać inne okna. Definiuje się logarytmiczną odpowiedź amplitudową jako WdB ( m ) pozwalającą unormować widma różnych okien zgodnie z: ⎛ W ( m) ⎞ ⎟ WdB ( m ) = 20 ⋅ log10 ⎜ ⎜ W ( 0) ⎟ ⎝ ⎠ (8) gdzie W(0) jest wartością maksymalną listka głównego dla m=0. Szerokości listków głównych różnych okien nie prostokątnych degradują rozdzielczość częstotliwościową okienkowanych DFT prawie dwukrotnie. Jednak istotne korzyści zmniejszenia przecieku zazwyczaj przeważają nad stratą w częstotliwościowej rozdzielczości DFT. Rysunek 10. Moduły odpowiedzi okien w unormowanej skali logarytmicznej -16- Zauważmy zmniejszenie się poziomu pierwszego listka bocznego i gwałtowny spadek listków bocznych okna Hanninga. Okno Hamminga ma nawet mniejsze poziomy pierwszego listka, lecz listki boczne tego okna opadają wolniej w porównaniu z oknem Hanninga. Oznacza to. że przeciek w odległości trzech lub czterech prążków od prążka środkowego jest mniejszy dla okna Hamminga, niż dla okna Hanninga, ale przeciek dla kilkunastu prążków od prążka środkowego jest mniejszy dla okna Hanninga, niż dla okna Hamminga. Przykład: Jeśli zastosujemy okno Hanninga do przykładu 3,4 okresu w przedziale próbkowania, otrzymamy wartości wyjściowe DFT dla tego okienkowanego przebiegu na rys. 11 wraz z wynikami DFT bez okienkowania, tj. przy oknie prostokątnym. Rysunek 11. Porównanie DFT dla okna prostokątnego i Hanninga -17- Jak oczekiwaliśmy, widmo amplitudowe dla okna Hanninga jest szersze i ma mniejszą wartość maksymalną, lecz przeciek listków bocznych jest zauważalnie zmniejszony w porównaniu z przeciekiem dla okna prostokątnego. Możemy zatem stwierdzić, iż wybór okna stanowi kompromis pomiędzy rozszerzeniem listka głównego, poziomami pierwszego listka bocznego, oraz tego, jak szybko maleją listki boczne wraz ze wzrostem częstotliwości. Użycie każdego szczególnego okna zależy od zastosowań. Rozdzielczość DFT, uzupełnianie zerami i próbkowanie w dziedzinie częstotliwości Jedną z popularnych metod poprawy rozdzielczości częstotliwościowej DFT, jest metoda znana jako uzupełnianie zerami. Proces ten wymaga dodania do oryginalnego ciągu wejściowego DFT próbek o zerowej wartości w celu zwiększenia całkowitej liczby próbek danych wejściowych. Kiedy próbkujemy funkcję ciągłą w dziedzinie czasu, mającą ciągłą transformatę Fouriera i wyznaczamy DFT tych próbek, wówczas DFT daje w wyniku próbkowaną aproksymację transformaty ciągłej w dziedzinie częstotliwości. Można się spodziewać, że im więcej jest punktów w DFT, tym lepiej wartości wyjściowe tej DFT aproksymują transformatę ciągłą. -18- Rysunek 12. Ciągła transformata Fouriera Chcemy aproksymować transformatę Fouriera funkcji ciągłej f(t) z rys. 12(a). Ten przebieg f(t) rozciąga się w obydwu kierunkach do nieskończoności, lecz przyjmuje wartości niezerowe jedynie w przedziale czasu T sekund. Jeśli niezerowa część tej funkcji czasu jest przebiegiem sinusoidalnym o trzech okresach w sekundach, to moduł jego transformaty Fouriera jest pokazany na rys. 12(b). Jest to funkcja, którą będziemy aproksymować za pomocą DFT. -19- Rys 13. Próbkowanie DFT w dziedzinie częstotliwości: (a) 16 próbek danych wejściowych i N = 16; (b) 16 próbek danych wejściowych, 16 dołączonych zer i N = 32; (c) 16 próbek danych wejściowych, 48 dołączonych zer i N = 64, (d) 16 próbek danych wejściowych, 112 dołączonych zer i N= 128 Jeśli dołączymy 16 próbek zerowych do tego ciągu wejściowego i wyznaczymy 32-punktową DFT, to otrzymamy wynik wyjściowy pokazany po prawej stronie rys. 13(b), gdzie zwiększyliśmy rozdzielczość częstotliwościową DFT dwukrotnie. Ta DFT próbkuje teraz częściej transformatę ciągłą. Dodając kolejne 32 zera i wyznaczając 64-punktową DFT, otrzymujemy wynik pokazany po prawej stronie rys. 13(c). Dodając kolejne 64 zera i wyznaczając 128-punktową DFT, otrzymujemy wynik pokazany po prawej stronie rys. 13(d). -20- Dodawanie zer do ciągu wejściowego poprawia rozdzielczość wyniku DFT, ale istnieje praktyczna granica określająca, jak wiele możemy zyskać przez dodanie większej liczby zer. W rozważanym przykładzie 128-punktowa DFT pokazuje wystarczająco szczegółową zawartość widma sygnału wejściowego. W praktyce, jeśli chcemy przeprowadzić zarówno uzupełnienie zerami, jak i okienkowanie ciągu próbek danych wejściowych, musimy uważać, aby nie zastosować okna do całego sygnału wejściowego, po dołączeniu próbek o wartościach zerowych. Funkcja okna musi być zastosowana tylko do oryginalnych niezerowych próbek czasowych, w przeciwnym wypadku uzupełnione zera wyzerują się i zniekształcą część funkcji okna, prowadząc do błędnych wyników. Przykład DFT funkcji prostokątej Jednym z najbardziej powszechnych i najważniejszych wyliczeń rozważanych w cyfrowym przetwarzaniu sygnałów jest DFT funkcji prostokątnej. Funkcja prostokątna x[n] w postaci ogólnej może być zdefiniowana jako N próbek zawierających K próbek o jednostkowej wartości, jak to pokazano na rys. 14. Rysunek 14. Funkcja prostokątna x(n) w postaci ogólnej -21- Funkcje prostokątną, którą chcemy transformować, stanowi pełny N- punktowy ciąg x[n]. Ciąg ten nazywamy funkcją prostokątną w postaci ogólnej, ponieważ K jednostkowych próbek zaczyna się przy dowolnej wartości indeksu –n0. Npunktowa DFT ma postać: X ( m) = N /2 ∑ n =−( N / 2) +1 x ( n ) e− j 2π nm / N Przy n niezerowym tylko w zakresie −n0 ≤ n ≤ −n0 + ( K − 1) X ( m) = − n0 + ( K −1) ∑ n =− n 1⋅ e− j 2π nm / N 0 dla pomocniczej zmiennej q = 2π X (q) = − n0 + ( K −1) ∑ n =− n ⋅e− jqn = e − jq( − n0 ) m N +e − jq( − n0 +1) +e − jq ( − n0 + 2) + ... + e − jq ( − n0 + K −1) 0 =e − jq( n0 ) K −1 jq n − jq K −1 ⎡ − j 0q + e− j1q + e− j 2q + ... + e ( ) ⎤⎥ = e ( 0 ) e− jpq ⎢e ⎣ ⎦ p =0 = (9) ∑ Równanie (9) zawiera szereg geometryczny i może być zapisane jako: K −1 e ∑ p =0 − jpq 1 − e− jqK = 1 − e− jq ( 10 ) -22- Równanie (10) można przekształcić do postaci: K −1 ∑e (e ⋅ (e jqK / 2 − jpq =e − jq ( K −1)/ N p =0 jq / 2 − e− jqK / 2 − e− jq / 2 Z równania Eulera mamy: sin(φ ) = ) ) ( 11 ) e jφ − e− jφ . zatem równanie (11) przyjmie j2 postać: K −1 e− jpq = e− jq ( K −1)/ 2 ⋅ ∑ p =0 2 j sin ( qK / 2 ) 2 j sin ( q / 2 ) = e− jq ( K −1)/ 2 ⋅ sin ( qK / 2 ) sin ( q / 2 ) ( 12 ) Przywracając naszej pomocniczej zmiennej q jej oryginalną wartość 2π m / N , otrzymujemy postać ogólną tzw. jądra Dirichleta: X ( m) = e ( − j ( 2π m / N ) n0 −( K −1) / 2 ) ⋅ sin (π mK / N ) sin (π m / N ) ( 13 ) Równanie (13) stanowi ogólne wyrażenie dla DFT funkcji prostokątnej. Opracowano na podstawie: R. G. Lyons „Wprowadzenie do cyfrowego przetwarzania sygnałów” 1999 -1- Filtry cyfrowe – cz.1 Wprowadzenie Filtracja jest procesem przetwarzania sygnału w dziedzinie czasu. Polega na redukowaniu ( odfiltrowaniu ) niepożądanych składowych zawartych w sygnale wejściowym. x[n] y[n] FILTR CYFROW Y Ze względu na typ przetwarzanych sygnałów filtrację dzieli się na: • Analogową (filtr analogowy działa na sygnale ciągłym, filtr = układ elektroniczny, np. RLC ) • Cyfrową (przetwarzanie ciągu wartości próbek, filtr = program komputerowy, np. w procesorze sygnałowym ) Ze względu na sposób przetwarzania sygnału, filtry cyfrowe dzieli się na: Nierekursywne ( o skończonej odpowiedzi impulsowej SOI ) Rekursywne ( o nieskończonej odpowiedzi impulsowej NOI ) -2- Ograniczając się do systemów LTI filtry cyfrowe można opisać za pomocą liniowego równania różnicowego: M N −1 k =0 k =0 ∑ bk yn−k = ∑ ak xn−k przy czym o dla M=0 równanie opisuje filtr nierekursywny ( SOI ) o dla M>0 równanie opisuje filtr rekursywny ( NOI ) Charakterystyki widmowe filtrów cyfrowych: Transmitancję filtru cyfrowego definiuje się jako stosunek transformaty zet sygnału wyjściowego do transformaty zet sygnału wejściowego. H (z ) = gdzie: Y (z ) = X (z ) = ∞ ∑ y[n]z − n n = −∞ ∞ ∑ x[n]z − n n = −∞ Z {y[n]} Y ( z ) = Z {x[n]} X ( z ) -3- Transmitancja filtru nierekursywnego ( SOI, M=0 ): N −1 ak z − k ∑ Z {y[n]} k = 0 H (z ) = = Z {x[n]} b0 = N −1 ∑ hk z − k k =0 gdzie współczynniki hk = ak b0 stanowią reakcję impulsową filtru, tj. odpowiedź na wymuszenie δ [n] Transmitancja filtru rekursywnego ( NOI, M > 0 oraz M ≤ N − 1): N −1 ak z − k ∑ ∞ Z {y[n]} k = 0 H (z ) = = M = ∑ hk z − k Z {x[n]} ∑ bk z − k k = 0 k =0 gdzie współczynniki oblicza się z wykorzystaniem transformaty odwrotnej zet. Wprowadzając podstawienie z=e jωT p określamy przekształcenie Fouriera dla sygnałów dyskretnych (obszar zbieżności transformaty musi zawierać okrąg jednostkowy). -4- Odnosząc się do transmitancji filtru, otrzymujemy dla obu rodzajów filtrów odpowiednie charakterystyki widmowe: H ( jω ) = H ( z ) H ( jω ) = H ( z ) z =e z =e jωT p j ωT p = N −1 ∑ hk e − jkωT p k =0 = ∞ ∑ hk e − jkωT p k =0 które umożliwiają bardzo efektywną analizę filtrów cyfrowych w dziedzinie częstotliwości. Charakterystyka widmowa H ( jω ) = H (ω )e jφ (ω ) określa jednocześnie charakterystykę amplitudową H (ω ) = H ( jω ) oraz charakterystykę fazową φ (ω ) = arg H ( jω ) -5- Cyfrowe filtry nierekursywne Filtry typu SOI (ang. FIR – Finite Impulse Response ) są najprostszym w analizie typem filtrów cyfrowych. Do uzyskania próbki sygnału wyjściowego wykorzystuje bieżącą i przeszłe próbki sygnału wejściowego. Przykład Rozparzymy bardzo prosty algorytm, którego zadaniem jest wygładzanie przebiegu (np. zawierającego szum przypadkowy). Jednym ze sposobów wygładzania jest uśrednianie sąsiednich próbek. Operację filtrowania (?!) można zapisać jako: y[k ] = x[k ] + x[k − 1] 2 Równanie to opisuje system LTI. W tabeli pokazano przykładowe próbki sygnału podanego na wejście filtru x[k] oraz próbki wyjściowe y[k]: k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 x[k] 0.38 0.46 0.76 0.82 0.92 0.85 0.96 0.98 0.97 1.12 1.13 1.06 1.17 1.01 1.16 y[k] 0.42 0.61 0.79 0.87 0.89 0.91 0.97 0.98 1.04 1.12 1.10 1.12 1.09 1.09 -6- 16 17 18 19 20 1.15 1.08 1.12 1.19 1.13 1.15 1.11 1.10 1.15 1.16 Z tabeli oraz wykresu możemy zauważyć, że sygnał wyjściowy jest bardziej gładki niż wejściowy, a to oznacza wolniejsze zmiany w sygnału wyjściowego. Możemy przypuszczać, że po przejściu sygnału przez układ ( filtr ), zostały wytłumione składniki o wyższych częstotliwościach. x[k] k 0 2 4 6 8 10 12 14 16 18 20 Czy rzeczywiście mamy do czynienia z filtrem, i z jakim filtrem przekonamy się określając jego charakterystykę widmową: y[k ] = 0.5 ⋅ x[k ] + 0.5 ⋅ x[k − 1] -7- Transformata zet obu stron równania różnicowego: Y ( z ) = 0.5 ⋅ X ( z ) + 0.5 ⋅ z −1 X ( z ) Y ( z ) = 0.5 ⋅ (1 + z −1 )X ( z ) Transmitancja filtru wynosi: H ( z) = Y (z ) = 0.5 ⋅ (1 + z −1 ) X (z ) Charakterystyka widmowa Stosując podstawienie (dla okresu próbkowania Tp=1) z=e jωT p = e jω ( H ( j ω ) = H ( z ) z = e j ω = 0. 5 ⋅ 1 + e − j ω H ( jω ) = e − j 1ω 2 ) j 1ω − j 1ω ⋅ 0.5⎛⎜ e 2 + e 2 ⎞⎟ ⎝ ⎠ H ( jω ) = e − j 1ω 2 ⋅ cos(ω2 ) Jeżeli założony okres próbkowania wynosi 1, to zgodnie z twierdzeniem o próbkowaniu maksymalna częstotliwość charakterystyki ( odpowiedzi impulsowej ) ze względu na zjawisko powielania widma wyniesie: ω max = 12 ⋅ ω p = 12 ⋅ 2πf p = π Tp =π -8- Charakterystyka amplitudowa H (ω ) = H ( jω ) = e − j 1ω 2 cos(ω2 ) H (ω ) = cos(ω2 ) H (ω ) 1 H (ω k ) ω 0 0 1 2 ωk 3 π ω max Charakterystyka fazowa − jω ⎛ arg H (ω ) = arg⎜ e 2 cos(ω2 )⎞⎟ ⎝ ⎠ arg H (ω ) = − ω 2 4 5 6 2π ω p -9- arg H ( j ω ) 0 ωk ω max π ω p 2π ω φ (ω k ) − π 2 Charakterystyki amplitudową oraz fazową filtru nierekursywnego można wyznaczyć w sposób graficzny, znając położenie wszystkich zer transmitancji filtru za płaszczyźnie zet. Zakres częstotliwości charakterystyk jak pokazano wcześniej dla okresu próbkowania Tp=1 wynosi od zera od π . Poruszając się po półokręgu o promieniu jednostkowym, możemy dla dowolnego punktu odpowiadającemu częstotliwości ω k wyznaczyć wartości widma: • amplitudowego (jako iloczyn długości odcinków łączących punkt ω k z wszystkimi zerami transmitancji filtru) • fazowego (jako sumę kątów jakie tworzą odcinki łączące punkt ω k z zerami i osią rzeczywistych ) Należy zatem zauważyć, że istnieje ścisły, jednoznaczny związek między położeniem zer transmitancji i kształtem charakterystyk amplitudowej i fazowej. W literaturze poświęcono sporo uwagi zagadnieniom doboru zer filtru cyfrowego ze skończoną pamięcią ( SOI ), pozwalającego osiągnąć zadane charakterystyki amplitudowe i fazowe. -10- Im ( z ) ωk ω H (ω k ) Re ( z ) ω max = π − φ (ω k ) 0 1 ω =0 zero transmitancji Przykład: Na wykresach przedstawiony jest sygnał na wejściu oraz na wyjściu filtru. Należy obliczyć charakterystyki widmowe: x[k] 1 k X ( z ) = 1 + z −1 -11- x[k] 2 1 k ( Y ( z ) = 1 + 2 z −1 + z − 2 = 1 + z −1 ) 2 Transmitancja ( ) Y ( z ) 1 + z −1 H (z ) = = = 1 + z −1 −1 X (z ) 1 + z 2 Równanie różnicowe: Y ( z ) = H ( z ) X ( z ) → y[k ] = x[k ] + x[k − 1] Otrzymaliśmy równanie jak w poprzednim przykładzie. Przykład: Dla danych dwóch wcześniejszych położeń obiektu x[k-2], x[k-1], przewidywane położenie obiektu y[k] znajduje się na linii prostej przecinającej punkty x[k-2], x[k-1]. Należy znaleźć cyfrowy filtr predykcji sygnału ( przewidującego położenie obiektu ). -12- y[k] x[k-1] x[k-2] k k-2 k-1 k Równanie prostej przechodzącej przez dwa punkty x[k − 1] − x[k − 2] (k − (k − 1)) = y[k ] − x[k − 1] (k − 1) − (k − 2) x[k − 1] − x[k − 2] = y[k ] − x[k − 1] 2 ⋅ x[k − 1] − x[k − 2] = y[k ] Transmitancja H ( z ) = 2 ⋅ z −1 − z −2 Charakterystyka widmowa H ( jω ) = 2 ⋅ e − jω − e −2 jω -13- Projektowanie dolnoprzepustowych filtrów nierekursywnych Procedura projektowania rozpoczyna się od założenia wymaganej charakterystyki filtru ( funkcji transmitancji ). Następnie oblicza się współczynniki filtru. Najczęściej stosowane metody projektowania filtrów SOI to: • metoda okien ( polega na obliczaniu odpowiedzi impulsowej filtru poprzez wyznaczanie odwrotnej DFT oraz zastosowanie funkcji okien wygładzających ) • metody optymalizacyjne (np. metoda Remeza) (wykorzystują algorytmy wyznaczania współczynników filtru, na podstawie zadanych warunków w dziedzinie częstotliwości, tj. dla charakterystyki widmowej) • metody ewolucyjne (algorytmy genetyczne) ( nowe metody wykorzystujące algorytmy wyszukiwania współczynników metodami losowań i wyboru statystycznego ) Metoda okien: Projektowanie rozpoczyna się od przyjęcia funkcji transmitancji filtru, który będziemy konstruować. Zdefiniujemy idealną charakterystykę analogowego filtru dolnoprzepustowego. H(f) funkcja transmitancji filtru o zerowej fazie 1 częstotliwość graniczna f -f p -f p /2 0 f p /2 fp -14- Przyjmujemy wartość jednostkową w paśmie dolnych częstotliwości, oraz zero w paśmie powyżej częstotliwości granicznej, czyli w paśmie zaporowym. Dyskretny odpowiednik funkcji transmitancji jest funkcją periodyczną z okresem równym częstotliwości próbkowania. Zagadnienia związane z powielaniem widma w wyniku dyskretyzacji funkcji czasu, omawiano na wykładzie dotyczącym metod próbkowania sygnałów analogowych. Rysunek przedstawia dolnoprzepustowego. dyskretną funkcję transmitancji idealnego filtra H[m] m m=-N m=-N/2 m=0 m=N/2 -f p /2 m=N f p /2 fp 0 Po wybraniu funkcji transmitancji realizowanego filtru, należy zdefiniować H[m] w pojedynczym okresie od 0 do fp. Na rysunku pokazano dyskretną postać funkcji transmitancji, gdzie przyjęto przykładowo N=32 punkty reprezentacji w dziedzinie częstotliwości. H[m] 1 0 4 f p /2 8 12 16 m 20 24 28 31 fp -15- Stosując 32 punktowe odwrotne DFT ( lub odwrotne FFT ) otrzymujemy 32 wartości h[n], jak na rysunku indeksowane od n=-15 do n=16. 0.219 odwrotna DFT H[m] n -15 0 16 Współczynniki filtru wynikowego powinny być symetrycznie z maksymalną wartością w środku okna filtru. rozmieszczone Opuszczamy zatem próbkę dla n=16 i przesuwamy wszystkie współczynniki tak aby były numerowane od wartości zero. Zgodnie z twierdzeniem o przesunięciu ciągu w dziedzinie czasu, charakterystyka amplitudowa nie zmienia swojego kształtu, następuje jedynie zmiana charakterystyki fazowej. Przedstawione na rysunku wartości realizują dolnoprzepustowy filtr nierekursywny 31 rzędu. h[n]= przesunięta odwrotna DFT H[m] n 0 15 30 -16- Pokażemy jak zależy dokładność aproksymacji funkcji transmitancji od liczby współczynników filtru. Zdefiniujemy funkcję okna prostokątnego o zmiennej szerokości i jednostkowej wysokości w[n]. Mnożenie odpowiedzi impulsowej filtru idealnego przez funkcje w[n], pozwala za zmianę liczby współczynników filtru. h[n] = h ∞ [n]⋅ w[n] Użycie filtru 9 rzędu daje w wyniku filtr dolnoprzepustowy, ale jeżeli porównamy jego charakterystykę amplitudową jest ona daleka od ideału. h[k] n=9 Sytuację poprawia zastosowanie filtru 19 rzędu. Charakterystyka amplitudowa zbliża się kształtem do zakładanej, prostokątnej. Zauważmy wyraźne nierównomierności w paśmie przepustowym. h[k] n=19 15 -17- Zastosowanie filtru 31 rzędu daje jeszcze lepszą charakterystykę znacznie zmniejszyliśmy pasmo przejściowe. Jednak nierównomierności charakterystyki w paśmie przepustowym nadal są wyraźnie widoczne. h[k] n=31 0 15 30 Wnioski: • Dalsze zwiększanie liczby współczynników powoduje zawężenie obszaru przejściowego, ale nie likwiduje nierównomierności charakterystyki amplitudowej w paśmie przepustowym. • Efekt ten jest nazywany efektem Gibsa i występuje gdy nieciągłość funkcji prostokątnej w[n] wyrażona jest w postaci szeregu Fouriera. Inaczej można stwierdzić, że zbiór przebiegów sinusoidalnych nie jest w stanie odwzorować nieciągłości. • Nierównomierności w paśmie przepustowym można jednak minimalizować stosując tzw. funkcje okien wygładzających. -1- Filtry cyfrowe – cz.2 Zastosowanie funkcji okien do projektowania filtrów SOI Nierównomierności charakterystyki amplitudowej filtru cyfrowego typu SOI można zredukować stosując funkcje okien wyznaczające rząd filtru, inne niż o kształcie prostokąta. Na rysunku niżej przedstawiono przypadek stosowania okna prostokątnego w[n]. Z ciągu nieskończonego odpowiedzi impulsowej filtru h∞[n] wybierana jest żądana liczba współczynników filtru. Operacja ta polega na mnożeniu funkcji w[n] oraz h∞[n]. h[n] = w[n]⋅ h ∞ [n] -2- W dziedzinie częstotliwości odpowiada to operacji splatania transformat Fouriera funkcji w[n] oraz h∞[n]. H [m] = W [m]∗ H ∞ [m] Rysunek poniżej przedstawia w sposób graficzny, splot w dziedzinie częstotliwości. Jeżeli będziemy interpretować splot jako sumę iloczynów |W[m]| oraz |H∞[m]| dla kolejnych przesunięć W[m] względem H∞[m] to łatwo zauważyć przyczynę powstawania zafalowań charakterystyki amplitudowej filtru. Możemy także zauważyć, że największe wartości zafalować w paśmie przepustowym charakterystyka osiąga w punkcie, w którym kończy się pasmo przepustowe charakterystyki filtru idealnego, o charakterystyce prostokątnej. -3- Rysunek poniżej przedstawia obszar nierównomierności oraz obszar przejściowy filtru dolnoprzepustowego, wyznaczanego dla okna prostokątnego, dla dwóch różnych rzędów Zredukowanie nieciągłości okna w[n] Projektowanie metodą okna polega na zredukowaniu nieciągłości w[n] przez zastosowanie okna o innego niż prostokątne. Zastąpimy okno prostokątne oknem, którego dyskretne wartości wyznacza zależność: ⎛ 4πn ⎞ ⎛ 2πn ⎞ w[n] = 0,42 − 0,5 cos⎜ ⎟ dla n = 0,1,2,..., N − 1 ⎟ + 0,08 cos⎜ ⎝ N ⎠ ⎝ N ⎠ -4- Rysunek poniżej przedstawia zastosowanie okna Blackamana do projektowania filtru SOI, oraz charakterystyki filtrów 31 i 63 rzędu. Dzięki zastosowaniu okna Blackmana znacznie zmniejszono zafalowania w paśmie przepustowym. Oczywiście dla rozpatrywanego dolnoprzepustowego filtru SOI możemy użyć innej, dowolnej funkcji okna. Na tym właśnie polega istota projektowania filtrów SOI tą metodą, tj. metodą okna. -5- Przykłady i porównanie innych okien wygładzających w[n] Rysunek poniżej przedstawia porównanie charakterystyk filtru o oknie prostokątnym i oknie Blackmana. Dzięki zastosowaniu odpowiedniego okna można zatem poprawić własności filtru, poprzez zmniejszenie poziomu listków bocznych. Należy być jednak świadomym tego, że to polepszenie uzyskuje się dzięki poszerzeniu listka głównego, i projektowanie zwykle polega na znalezieniu odpowiedniego kompromisu między szerokością listka głównego i poziomem listków bocznych -6- Okno Czebyszewa ⎧ ⎡ ⎛ m ⎞⎤ ⎫ cos⎨ N ⋅ cos −1 ⎢α ⋅ cos⎜ π ⎟⎥ ⎬ ⎝ N ⎠⎦ ⎭ ⎣ ⎩ w[n] = cosh N ⋅ cosh −1 (α ) [ ] gdzie ⎛1 ⎞ cosh −1 (10γ )⎟ ⎝N ⎠ m = 0,1,2,..., N − 1 α = cosh⎜ Funkcja została wyprowadzona, na podstawie analizy macierzowej anten. Parametr gamma umożliwia sterowanie szerokością listka bocznego oraz poziomem listków bocznych. -7- Okno Kaisera 2 ⎡ ⎛n− p⎞ ⎤ I 0 ⎢ β 1 − ⎜⎜ ⎟⎟ ⎥ ⎢ ⎝ p ⎠ ⎥⎦ ⎣ w[n] = I 0 (β ) gdzie n = 0,1,2,..., N − 1 N −1 p= 2 Równanie pochodzi z badań Kaisera nad funkcjami sferycznymi z użyciem funkcji Bessela zerowego rzędu. Parametr beta umożliwia sterowanie szerokością listka bocznego oraz poziomem listków bocznych. -8- Projektowanie środkowoprzepustowych filtrów SOI Projektowanie filtru środkowoprzepustowego polega na przesunięciu charakterystyki filtru dolnoprzepustowego. Można tego dokonać przez pomnożenie współczynników filtru dolnoprzepustowego hlp[n] przez funkcję sinusoidalną o częstotliwości fs/4. W wyniku otrzymuje się współczynniki filtru środkowoprzepustowego hbp[n]. Sinusoidę reprezentuje na rysunku ciąg sshift[n], są to próbki sinusoidy pobierane 4 razy w okresie. hhp [n] = hlp [n]⋅ sshift [n] = hlp [n]⋅ [0,1,0,−1,0,1,0,−1,0,1...] Przy projektowaniu filtru pasmowego SOI o częstotliwości środkowej fs/4 musimy dokonać jedynie połowę mnożeń, ponieważ co drugi współczynnik jest zerem. Jeżeli jednak środkowa częstotliwość jest różna od fs/4 to musimy wykonać wszystkie mnożenia. -9- Projektowanie górnoprzepustowych filtrów SOI Aby wyznaczyć współczynniki filtru górnoprzepustowego hhp[n], należy jedynie zmodyfikować ciąg przesuwający. Ciąg sshift[n] powinien reprezentować sinusoidę o częstotliwości fs/2. hhp [n] = hlp [n]⋅ sshift [n] = hlp [n]⋅ [1,−1,1,−1,1,−1,1,−1...] -10- Charakterystyka fazowa filtrów SOI Jedną z podstawowych właściwości filtrów SOI jest liniowość charakterystyki fazowej. Przykład wyznaczania charakterystyki przedstawia rysunek niżej. -11- Zauważymy, że charakterystyka fazowa jest liniowa w paśmie przepustowym. Oznacza to jednakowe opóźnienie wszystkich składników częstotliwościowych, a to oznacza że sygnał wejściowy nie jest zniekształcany. Ta cecha dotyczy wszystkich filtrów SOI o symetrycznych współczynnikach. -12- Filtry o nieskończonej odpowiedzi impulsowej NOI Filtry tego typu zawsze wymagają sprzężenia zwrotnego. Inaczej, każda próbka sygnału wyjściowego zależy od poprzednich próbek sygnału wejściowego i wyjściowego. Filtry NOI w porównaniu z filtrami SOI, są bardziej skomplikowane w projektowaniu i analizie i nie mają liniowej charakterystyki fazowej, są jednak bardziej efektywne. NOI wymagają znacznie mniejszej liczby mnożeń do obliczenia próbki sygnału wyjściowego niż SOI przy zapewnieniu odpowiedniej charakterystyki filtru. Na rysunku porównano charakterystyki amplitudowe dolnoprzepustowego filtru NOI 4 rzędu oraz filtru SOI 19 rzędu. • SOI 19 rzędu wymaga 19 operacji mnożenia • NOI 4 rzędu wymaga 9 operacji mnożenia Filtr NOI ma mniejsze nierówności w paśmie przepustowym, mniejsze pasmo przejściowe i jest bardziej efektywny ze względu na liczbę operacji matematycznych. -13- Struktura filtru SOI Na rysunku przedstawiono schemat blokowy przedstawiający strukturę filtru SOI opisanego równaniem różnicowym w dziedzinie czasu: y[n] = h[0]x[n] + h[1]x[n − 1] + h[2]x[n − 2] + h[3]x[n − 3] -14- Struktura filtru NOI Na rysunku przedstawiono schemat blokowy przedstawiający strukturę filtru NOI opisanego równaniem różnicowym w dziedzinie czasu: y[n] = b[0]x[n] + b[1]x[n − 1] + b[2]x[n − 2] + b[3]x[n − 3] + + a[1]y[n − 1] + a[2]y[n − 2] + a[3]y[n − 3] Ciąg d[n] w strukturze filtru NOI jest równy ciągowi y[n] w strukturze filtru SOI -15- Przykład dolnoprzepustowego filtru NOI drugiego rzędu y[n] = 0,0605 x[n] + 0,121x[n − 1] + 0,0605 x[n − 2] + + 1,194 y[n − 1] − 0,436 y[n − 2] Transformata ZET Y ( z ) = 0,0605 X ( z ) + 0,121X ( z )z −1 + 0,0605 X ( z )z −2 + + 1,194Y ( z )z −1 − 0,436Y ( z )z − 2 Transmitancja 0,0605 + 0,121z −1 + 0,0605 z −2 H (z ) = 1 − 1,194 z −1 + 0,436 z − 2 Charakterystyka częstotliwościowa 0,0605e − j 0ω + 0,121e − j1ω + 0,0605e − j 2ω H ( jω ) = 1 − 1,194e − j1ω + 0,436e − j 2ω -16- Rysunek przedstawia charakterystykę amplitudową i fazową obliczonego filtru: Dla porównania wykreślono charakterystyki filtru SOI 5 rzędu Charakterystyka fazowa filtru NOI jest nieliniowa. Przy tym samym nakładzie obliczeń filtrów charakterystyka amplitudowa filtru NOI ma mniejsze nierówności i jest bardziej stroma w paśmie przejściowym niż SOI. -17- Projektowanie filtrów NOI metodą niezmienniczości odpowiedzi impulsowej Metoda polega na projektowaniu filtru cyfrowego, którego odpowiedź impulsowa jest spróbkowaną wersją odpowiedzi filtru analogowego. Jeżeli prototypowy filtr analogowy ma żądaną charakterystykę częstotliwościową, to projektowany filtr cyfrowy NOI będzie aproksymował tę charakterystykę Na podstawie tego co wiemy o zjawisku powielania widma na skutek próbkowania sygnału, możemy stwierdzić, widmo ciągłej odpowiedzi impulsowej ulegnie powieleniu i otrzymamy widmo okresowe. Podczas projektowania filtrów NOI należy uwzględniać efekt nakładania widma (aliasingu) Z tego powodu w praktyce wybiera się duże częstotliwości próbkowania. -18- Efekt powielania widma sygnału dyskretnego. -19- Przykład projektowania filtru NOI Zaprojektujemy filtr NOI, którego nierówność charakterystyki w paśmie przepustowym wynosi 1dB. Częstotliwość próbkowania 100Hz. (ts=0.01). Częstotliwość graniczna przy spadku o 1dB wynosi 20Hz. Analogowy filtr transmitancję: Czebyszewa H c (s ) = odpowiadający tym wymaganiom 17410,145 s + 137,94536 s + 17410,145 2 Obliczymy odwrotną transformatę Laplace’a wykorzystując zależność: Aω (s + α ) + ω 2 2 L ⎯ ⎯→ Ae −αt sin (ωt ) hc (t ) = 154,77724e −68,972680t sin (112,485173t ) ma -20- Obliczymy transformatę ZET wykorzystując zależność Ce −αnt s Ce −αt s sin (ωt s )z −1 sin (ωnt s ) ⎯ ⎯→ 1 − 2 e −αt s cos(ωt s ) z −1 + e − 2αt s z − 2 Z [ ] 154,77724e −68,972680t s sin (112,485173t s )z −1 H (z ) = 1 − 2 e − 68,972680t s cos(112,485173t s ) z −1 + e − 2⋅68,972680t s z − 2 [ ] 70,059517 z −1 H (z ) = 1 − 0,43278805 z −1 + 0,25171605 z − 2 Stąd można wyznaczyć równanie różnicowe realizujące filtr NOI [ X ( z )70,059517 z −1 = Y ( z ) 1 − 0,43278805 z −1 + 0,25171605 z −2 ] Y ( z ) = X ( z )70,059517 z −1 + Y ( z )0,43278805 z −1 − Y ( z )0,25171605 z −2 Ostatecznie: y[n] = 70,059517 x[n − 1] + 0,43278805 y[n − 1] − 0,25171605 y[n − 2] Na podstawie: R. G. Lyons „Wprowadzenie do cyfrowego przetwarzania sygnałów” 1999 J. Izydorczyk, G. Płonka, G. Tyma „Teoria sygnałów” 1999 -1- Filtry cyfrowe – cz.3 Filtry cyfrowe NOI (projektowanie) Metoda standardowa transformaty ZET Metoda polega na podziale analogowego filtru prototypowego, na wiele filtrów analogowych o pojedynczym biegunie. Następnie każdy taki cząstkowy filtr aproksymuje się filtrem cyfrowym o pojedynczym biegunie. W ten sposób utworzone filtry cyfrowe łączy się w jeden filtr NOI wyższego rzędu. Metodę można podzielić na etapy: 1. Wyznacza się transmitancję (transformata Laplace’a) analogowego filtru prototypowego w postaci: H (s) = bN s N + bN −1s N −1 + L + b1s + b0 = aM s M + aM −1s M −1 + L + a1s + a0 N = bk s k ∑ k =0 M ak s k ∑ k =0 (1) -2- 2. Określa się częstotliwość próbkowania fp i oblicza odstęp między próbkami Tp = 1 fp (2) 3. Wyraża się funkcję transmitancji H(s) filtru analogowego jako sumę transmitancji filtrów o pojedynczych biegunach – metoda rozkładu na ułamki proste. Ak A A A = 1 + 2 +L + M s − s1 s − s2 s − sM k =1 s − sk M H (s) = ∑ (3) Oznaczymy transmitancję k-tego filtru analogowego przez: Hk ( s) = Ak s − sk 4. Dokonuje się podstawienia : sT s − sk → 1 − e k p z −1 w wyrażeniu (3). Takie odwzorowanie bieguna sk na płaszczyźnie s w punkt z = e s T na płaszczyźnie z jest aproksymacją odpowiedzi impulsowej jednobiegunowego filtru analogowego przez jednobiegunowy filtr cyfrowy o transmitancji: k Hk ( z ) = Ak 1 − e skT p z −1 p (4) -3- 5. Oblicza się funkcję transmitancji sumy M filtrów cyfrowych o jednym biegunie Ak M M k =1 k =1 1 − e H ( z ) = ∑ Hk ( z ) = ∑ sk T p −1 z (5) Przekształcając do postaci ilorazu wielomianów: N bk z − k ∑ Y ( z ) k =0 H ( z) = = X ( z) M ak z − k ∑ k =0 (6) 6. W dziedzinie czasu równanie różnicowe opisujące filtr ma postać: a0 y ⎡⎣ n ⎤⎦ + a1 y ⎣⎡ n −1⎦⎤ + L aM y ⎡⎣ n − M ⎤⎦ = = b0 x ⎡⎣ n ⎤⎦ + b1 x ⎣⎡ n − 1⎦⎤ + LbN x ⎡⎣ n − N ⎤⎦ Przykład: Przykład projektowania filtru NOI metodą standardową transformaty ZET Wyznaczono prototyp filtru analogowego, jako dolnoprzepustowy filtr Czebyszewa drugiego rzędu. Nierównomierność w paśmie przepustowym wynosi 1dB H (s) = 17410 s + 137,9s + 17410 2 (7) -4- Częstotliwość próbkowania wynosi 100 Hz. Oznaczymy b=137,9 oraz c=17410 H (s) = c s + bs + c 2 Zapiszemy transmitancję w postaci H (s) = c ( s − s1 )( s − s2 ) gdzie b 4c − b2 s1 = − − j 2 4 4c − b2 4 b 2 s1 = − + j lub s1,2 = −b / 2 m jω Rozkładamy funkcję H(s) na ułamki proste: H (s) = c ( s + b / 2 + jω )( s + b / 2 − jω ) = A1 A2 + s + b / 2 + jω s + b / 2 − jω Stąd A1 = H ( s ) ( s + b / 2 − jω ) A2 = H ( s )( s + b / 2 + jω ) s = −b / 2 − jω s = −b / 2 + jω = = c c =j s + b / 2 − jω 2ω c c =−j s + b / 2 + jω 2ω -5- H (s) = jc / 2ω − jc / 2ω + s + b / 2 + jω s + b / 2 − jω Filtr analogowy ma dwa bieguny zlokalizowane w punktach s1 i s2 na płaszczyźnie s. Dokonując podstawienia sT s − sk → 1 − e k p z −1 odwzorujemy bieguny na płaszczyźnie z Płaszczyzna s Płaszczyzna z Im(s) Im(z) jω Obszar stabilności -1 -b/2 Re(s) 1 Obszar stabilności -jω H ( z) = jc / 2ω − jc / 2ω + − b / 2+ jω )T p −1 − b / 2− jω )T p −1 z z 1− e ( 1− e ( Re(z) -6- Przekształcamy wyrażenie do postaci ( jc / 2ω ) ebT / 2 ( e− jωT p H ( z) = 1− e H ( z) = −bT p / 2 (e jωT p −e p − jωT p ) − e jωT p z −1 )z −1 +e − bT p −2 z ( c / ω ) e−bT / 2 (sin ωTp ) z −1 p 1− e −bT p / 2 ( 2cosωTp ) z −1 + e−bT z −2 p Podstawiając wartości liczbowe: H ( z) = 70,059 z −1 1 − 0,43278 z −1 + 0, 2517 z −2 W postaci równania różnicowego: y ⎡⎣ n ⎤⎦ − 0,43278 y ⎡⎣ n −1⎤⎦ + 0,25171y ⎡⎣ n − 2⎤⎦ = 70,059 x ⎡⎣ n − 1⎤⎦ Schemat blokowy filtru: -7- x[n] + y[n] + z-1 x[n-1] z-1 70,0595 + + 0,432788 y[n-1] z-1 -0,251716 y[n-2] MATLAB: % % Filtr cyfrowy NOI projektowany "Metoda standardowa transformaty ZET" % niezmienniczosci odpowiedzi impulsowej % clear B=[0 0 17410.145]; A=[1 137.94536 1.7410e+004]; fp=100; % [BZ,AZ] = IMPINVAR(B,A,fp); % %help % %IMPINVAR Impulse invariance method for analog to digital filter conversion. % [BZ,AZ] = IMPINVAR(B,A,fp) creates a digital filter with numerator % and denominator coefficients BZ and AZ respectively whose impulse % response is equal to the impulse response of the analog filter with % coefficients B and A sampled at a frequency of Fs Hertz. The B and A % coefficients will be scaled by 1/fp. % BZ=BZ*fp; disp (BZ); disp(AZ); -8- Metoda transformacji biliniowej. Metoda polega na przejściu od prototypu analogowego filtru H(s) do jego odpowiednika dyskretnego H(z) poprzez zastosowanie podstawienia: s= 2 ⎛ 1 − z −1 ⎞ ⎜ ⎟ Tp ⎜⎝ 1 + z −1 ⎟⎠ (8) Tp – okres próbkowania Podstawowe cechy metody transformacji biliniowej: uproszczenie matematycznego przejścia od H(s) do H(z).(Nie trzeba stosować przekształcenia Laplace’a oraz ZET, oraz rozkładu na ułamki proste) odwzorowanie całej płaszczyzny s na płaszczyznę z. ( brak problemu aliasingu) nieliniowe zniekształcenia osi częstotliwości funkcji H(z) względem H(s) (krótsze pasmo przejściowe filtru cyfrowego niż prototypu analogowego) Każdy biegun leżący w lewej półpłaszczyźnie zmiennej s jest odwzorowany w biegun położony wewnątrz koła jednostkowego na płaszczyźnie zmiennej z. -9- Przekształcając równanie (8) do postaci sT p 2 z= sTp 1− 2 1+ (9) oraz oznaczając s = σ _ jω a , gdzie ω a - częstotliwość charakterystyki analogowej Równanie (9) przyjmuje postać: (1+ σ ) + jω z= (1− σ ) − jω Tp Tp 2 2 a a Tp Tp 2 (10) 2 Moduł z= ( ) ( (1− σ ) − (ω 1 + σ Tp 2 Tp 2 + ωa Tp 2 2 2 a Tp 2 ) ) 2 2 (11) Zatem dla σ < 0 z < 1 bieguny lewostronne dla σ > 0 z > 1 bieguny prawostronne Oznacza to, że bieguny zlokalizowane w lewej półpłaszczyźnie zmiennej s przy zastosowaniu transformacji biliniowej zostaną odwzorowane do wnętrza okręgu jednostkowego zmiennej z. -10- Gwarantuje to, że stabilne bieguny filtru prototypowego analogowego będą odwzorowane na stabilne bieguny filtru cyfrowego NOI. dla σ = 0 z = 1 Oś jω a na płaszczyźnie s odwzorowana jest w okrąg jednostkowy na płaszczyźnie z, jednak odwzorowanie to nie jest liniowe. Płaszczyzna s Im(s) Płaszczyzna z ωa = ∞ Obszar stabilności Im(z) ωd = π ωa = ∞ Re(s) ωd = 0 ωa = 0 Obszar stabilności Re(z) ω a = −∞ Liczba zespolona położona na okręgu jednostkowym zmiennej z z = e jωd (12) gdzie ω d - częstotliwość charakterystyki dyskretnej Podstawiając (12) do (8) 2 ⎛ 1 − e− jωd s= ⎜ T p ⎜⎝ 1 + e− jωd ⎞ ⎟ ⎟ ⎠ -11- s = σ + jω a = 2 e− jωd / 2 ⎛ e jωd / 2 − e− jωd / 2 ⎞ ⎜ ⎟ Tp e− jωd / 2 ⎜⎝ e jωd / 2 + e− jωd / 2 ⎟⎠ − jω / 2 2 e d j sin (ω d / 2 ) s = σ + jω a = Tp e− jωd / 2 cos (ω d / 2 ) ωa = 2 ⎛ ωd ⎞ tg ⎜ ⎟ Tp ⎝ 2 ⎠ ⎛ ω aT p ⎞ ⎟⎟ ⎝ 2 ⎠ ω d = 2arctg ⎜⎜ Nieliniowa zależność między częstotliwościami fd i fa. fd = 1 π arctg (π f a / f p ) fd (13) fd fa Hd Ha fa -12- Metodę można podzielić na etapy: 1. Wyznacza się transmitancję (transformata Laplace’a) analogowego filtru prototypowego w postaci: N H (s) = bk s k ∑ k =0 M ∑ ak s (14) k k =0 2. Określa się częstotliwość próbkowania fp i oblicza odstęp między próbkami Tp = 1 fp (15) 3. Za zmienną s w funkcji transmitancji H(s) podstawia się wyrażenie: 2 ⎛ 1 − z −1 ⎞ ⎜ ⎟ Tp ⎜⎝ 1 + z −1 ⎟⎠ (16) 4. Przekształca się H(z) do postaci ilorazu wielomianów: N H ( z) = bk z − k ∑ k =0 M ∑ ak z k =0 −k (17) -13- 5. W dziedzinie czasu równanie różnicowe opisujące filtr NOI ma postać: a0 y ⎡⎣ n ⎤⎦ + a1 y ⎣⎡ n − 1⎦⎤ + L aM y ⎡⎣ n − M ⎤⎦ = = b0 x ⎡⎣ n ⎤⎦ + b1 x ⎣⎡ n − 1⎦⎤ + LbN x ⎡⎣ n − N ⎤⎦ Przykład Przykład projektowania filtru NOI metodą transformacji biliniowej Wyznaczono prototyp filtru analogowego, jako dolnoprzepustowy filtr Czebyszewa drugiego rzędu. Nierównomierność w paśmie przepustowym wynosi 1dB H (s) = 17410 s + 137,94s + 17410 2 Częstotliwość próbkowania wynosi 100 Hz. Oznaczymy b=137,94 oraz c=17410 H (s) = c s + bs + c 2 Podstawiając s= 2 ⎛ 1 − z −1 ⎞ ⎜ ⎟ Tp ⎜⎝ 1 + z −1 ⎟⎠ (18) -14- Transmitancja filtru cyfrowego wynosi H (z) = c 2 2 ⎛ 1 − z −1 ⎞ 2 ⎛ 1 − z −1 ⎞ ⎜ ⎟ + b ⎜⎜ ⎟+c Tp ⎜⎝ 1 + z −1 ⎟⎠ Tp ⎝ 1 + z −1 ⎟⎠ Oznaczymy a=2/Tp H (z) = c 2 ⎛ 1 − z −1 ⎞ ⎛ 1 − z −1 ⎞ a ⎜⎜ + ab ⎜⎜ +c −1 ⎟ −1 ⎟ ⎟ ⎟ ⎝ 1+ z ⎠ ⎝ 1+ z ⎠ ( Mnożymy licznik i mianownik przez 1 + z −1 H (z) = H ( z) = ( ) 2 c 1 + z −1 ( ) 2 ( )( ) 2 ) ( a 1 − z −1 + ab 1 + z −1 1 − z −1 + c 1 + z −1 ( ) ( a + ab + c ) + ( 2c − 2a ) z + ( a ) 2 c 1 + 2 z −1 + z −2 −1 2 2 ) + c − ab z −2 Podstawiając wartości liczbowe: H (z) = 0,20482 + 0, 40965 z −1 + 0, 20482 z −2 1 − 0,53153z −1 + 0,350839 z −2 Równanie różnicowe: y[n ] − 0,53153 y[n − 1] + 0,350839 y[n − 2] = 0,20482 x[n] + 0,40965 x[n − 1] + 0,20482 x[n − 2] -15- x[n] 0,20482 + w[n] y[n] + z-1 x[n-1] z-1 0,40965 + + 0,53153 z-1 z-1 x[n-2] x[n] y[n-1] 0,20482 -0,350839 0,20482 + + z-1 + 0,53153 0,40965 z-1 -0,350839 0,20482 Schemat filtru typu NOI + y[n-2] y[n] -16- MATLAB: % % Filtr cyfrowy NOI projektowany "Metoda transformacji biliniowej" % % clear B=[0 0 17410.145]; A=[1 137.94536 1.7410e+004]; fp=100; % [BZ,AZ] = bilinear(B,A,fp); % %help %BILINEAR Bilinear transformation with optional frequency prewarping. % [BZ,AZ] = BILINEAR(B,A,fp) converts the s-domain transfer % function specified by B, A, to a z-transform discrete % equivalent obtained from the bilinear transformation: % H(z) = H(s) | % | s = 2*Fs*(z-1)/(z+1) % where B and A are row vectors containing numerator and denominator % transfer function coefficients, B(s)/A(s), in descending powers of % s, transforms to z-transform coefficients BZ(z)/AZ(z). % disp (BZ); disp(AZ); Porównanie filtrów NOI projektowanych metodą biliniową i metodą niezmienniczości odpowiedzi impulsowej. -17- Porównanie filtrów SOI i NOI Własność NOI SOI Liczba wymaganych mnożeń Mała Duża Wrażliwość na kwantyzację współczynników Duża * Bardzo mała Prawdopod. wystąpienia błędów przepełnienia Duże * Bardzo małe Stabilność Musi być projektowana Zapewniona Liniowość fazy Nie Zapewniona ** Możliwość symulowania filtru analogowego Tak Nie Sprzętowe wymagania dla pamięci Małe Duże Łatwość projektowania Średnia Prosta Stopień trudności analizy szumu kwantowania Bardzo trudne Możliwość filtracji adaptacyjnej Tak *) Można uniknąć stosując struktury kaskadowe **) Zagwarantowana tylko dla symetrycznych współczynników SOI Łatwe Tak 1 Szybkie przekształcenie Fouriera (FFT – ang. Fast Fourier Transform) Rozpatrzymy sygnał o długości N x ⎡⎣0⎤⎦ , x ⎡⎣1⎤⎦ ,K, x ⎡⎣ N − 1⎤⎦ (1) dla którego chcemy obliczyć dyskretną transformatę Fouriera (DFT). Rozłożymy ten sygnał na dwa sygnały w ten sposób, g[n] będzie zawierał kolejne próbki parzyste x[n], a sygnał h[n] będzie równy nieparzystym próbkom x[n]. g ⎡⎣ n ⎤⎦ = x ⎡⎣ 2n ⎤⎦ , n = 0,1,K, N2 − 1 (2) h ⎡⎣ n ⎤⎦ = x ⎡⎣ 2n + 1⎤⎦ , n = 0,1,K, N2 − 1 (3) Dyskretna transformata Fouriera sygnału g[n] (N/2 punktowa ) jest określona wzorem: G (k ) = N −1 2 ∑ g ⎡⎣n⎤⎦ e n =0 − jnk 2π / ⎛⎜ N /2 ⎞⎟ ⎝ ⎠ , k = 0,1,K, N2 − 1 Należy zwrócić uwagę, że w wyrażeniu (4) pojawia się N/2 zamiast N (definicja DFT), ponieważ sygnał ma długość N/2. (4) 2 Jeżeli zastąpimy k przez (k+N/2), to wyrażenie (4) pozostanie nie zmienione, ponieważ powoduje to dodanie wielokrotności 2πj do wykładnika. Stąd można zapisać: G ( k + N2 ) = G (k + G (k + N 2 N 2 N −1 2 ∑ n =0 g ⎡⎣ n ⎤⎦ e N −1 2 ) = ∑ g ⎡⎣n⎤⎦ e − jn( k + N /2)2π / ⎛⎜ N /2 ⎞⎟ ⎝ ⎠ − jnk 2π / ⎛⎜ N /2 ⎞⎟ − jn 2π ⎝ ⎠ e n =0 N −1 2 ) = ∑ g ⎡⎣n⎤⎦ e − jnk 2π / ⎛⎜ N /2 ⎞⎟ ⎝ ⎠ ⋅1 n =0 G ( k + N2 ) = G ( k ) (5) W analogiczny sposób możemy obliczyć transformatę sygnału h[n]: N −1 2 H ( k ) = ∑ h ⎡⎣ n ⎤⎦ e − jnk 2π / ( N / 2 ) n =0 , k = 0,1,K, N2 − 1 (6) oraz zgodnie z wyrażeniem okresowości H (k + N 2 N −1 2 ) = ∑ h ⎡⎣n⎤⎦ e − jn( k + N /2)2π / ⎛⎜ N /2 ⎞⎟ ⎝ ⎠ n =0 stąd: H ( k + N2 ) = H ( k ) (7) 3 Obliczenie wyrażenia (4), tak jak (6) wymaga (N/2)2 mnożeń, a więc razem potrzeba 2(N/2)2 mnożeń aby otrzymać: G ( k ) , k = 0,1,K N − 1 (8) H ( k ) , k = 0,1,K N − 1 Transformatę sygnału x[n] można otrzymać jako kombinację G(k) oraz H(k). Rozważymy wyrażenie G ( k ) + e− jk 2π / N H ( k ) = N −1 2 ∑ g ⎡⎣n⎤⎦ e n =0 − jnk 2π / ⎛⎜ N /2 ⎞⎟ ⎝ ⎠ +e − jk 2π / N N −1 2 ∑ h ⎡⎣n⎤⎦ e n =0 − jnk 2π / ⎛⎜ N /2⎞⎟ ⎝ ⎠ (9) dla k = 0,1,K, N − 1 Zastępując zgodnie z definicją: g ⎡⎣ n ⎤⎦ ← x ⎡⎣ 2n ⎤⎦ (10) h ⎡⎣ n ⎤⎦ ← x ⎡⎣ 2n + 1⎤⎦ i przenosząc czynnik wykładniczy pod znak sumowania otrzymamy: N −1 2 ∑ x ⎡⎣2n ⎤⎦ e − j ( 2 n )k 2π / N n =0 1444 424444 3 parzyste N −1 2 + ∑ x ⎡⎣ 2n + 1⎤⎦ e − j ( 2n+1)k 2π / N n =0 14444 4244444 3 nieparzyste N −1 = ∑ x ⎡⎣ n ⎤⎦ e− jnk 2π / N n =0 (11) 4 Tak więc: X ( k ) = G ( k ) + WNk H ( k ) gdzie: (12) − j 2π / N ) WN = e ( Zależność (12) pokazuje, jak można otrzymać transformatę sygnału x[n] jako kombinację dwóch „subtransformat”. G[0] x[0] N/2 punktowa DFT x[2] x[4] x[6] x[1] x[3] N/2 punktowa DFT x[5] x[7] X[0] G[1] W0N G[2] W1N G[3] W2N H[0] W3N H[1] W4N H[2] W5N H[3] W6N W7N X[1] X[2] X[3] X[4] X[5] X[6] X[7] Proces łączenia G(k) i H(k) wymaga dodatkowo N mnożeń, zatem razem wykonuje się 2(N/2)2+N mnożeń, Natomiast obliczanie DFT na podstawie definicji wymaga N2 mnożeń Oszczędza się zatem: ( ) N2 − N2 /2+ N = N2 /2− N (13) 5 Przykład liczbowy: N 1000 2(N/2)2+N 501000 N2 1000000 Oszczędzamy 499000 Nie ma przeszkód aby „subtransformaty” G(k) oraz H(k) obliczać posługując się tą samą metodą, to znaczy: podzielić teraz sygnał g[n] na dwie części: parzystą g[2n] i nieparzystą g[2n+1] Obliczyć DFT każdej części i połączyć je w celu otrzymania G(k). x[0] x[4] x[2] x[6] N/4 punktowa DFT 0 WN/2 1 WN/2 N/4 punktowa DFT 2 WN/2 3 WN/2 G[0] G[1] G[2] G[3] Wtedy obliczenie G(k) wymaga 2(N/4)2+N/2 mnożeń tak jak i H(k). Obliczenie F(k) wymaga wtedy 4 ( N / 4 ) + 2 N mnożeń. 2 Przykład liczbowy: N 1000 N2 4 ( N / 4) + 2 N 1000000 252000 2 Oszczędzmy 748000 6 Jeżeli N jest potęgą liczby 2, proces ten możemy powtarzać log2N razy. x[0] 0 WN/4 =WN0 x[4] 1 WN/4 =WN4 W ostatnim kroku DFT dla N=1 nie wymaga mnożeń i znika składnik N2 w wyrażeniu na liczbę mnożeń. Za każdym razem dzielenia sygnału na dwie części wprowadzamy N mnożeń, a ponieważ robimy to log2N razy to potrzebujemy razem Nlog2N mnożeń. Jest to jedna z postaci FFT (algorytm dziesiątkowania w czasie), wymaga aby N było całkowitą potęgą liczby 2. Dla N=210=1024 oszczędność operacji mnożenia jest ponad 100 krotna. Programowanie FFT (struktury motylkowe) Obliczymy 8 punktową DFT, sygnału f[n]. x[0] x[2] x[4] x[6] x[1] x[3] x[5] x[7] − j 2π / N ) gdzie: WN = e ( X[0] W0N W0N W0N W4N W2N W1N W0N W4N W2N W4N W3N W0N W0N W4N W4N W2N W5N W0N W4N W6N W4N W6N W7N X[1] X[2] X[3] X[4] X[5] X[6] X[7] 7 Można zauważyć, że proces „tasowania” próbek polega na odwróceniu bitów wskaźników tablicy próbek sygnału. Operacja zmiany porządku jest wykonana na wstępie 000 000 001 001 010 010 011 011 100 100 101 101 110 110 111 111 Ważną zaletą algorytmu jest możliwość odwracania bitów i łączenia w ramach jednej tablicy bez przepisywania jej w czasie obliczeń, zatem algorytm potrzebuje względnie mało pamięci. Przetwarzanie danych czasowych przed wyznaczeniem FFT Możemy odrzucić tyle próbek danych, aby długość pozostałego ciągu wejściowego FFT była całkowitą potęgą dwójki. (zmniejsza się rozdzielczość) Lepszym podejściem jest dodanie wymaganej liczby próbek o wartościach zerowych do części końcowej ciągu danych czasowych, aby dopasować liczbę jego punktów do kolejnego rozmiaru FFT o podstawie 2. 8 Na przykład, jeśli mamy do przetransformowania 1000 próbek czasowych, wówczas zamiast analizować jedynie 512 spośród nich za pomocą 512-punktowej FFT, powinniśmy dodać 24 kolejne próbki o wartościach zerowych do ciągu oryginalnego i użyć 1024-punktowej FFT. FFT obarczone jest negatywnymi skutkami przecieku widmowego (tak jak DFT). Możemy przemnażać dane czasowe przez funkcje okien, aby złagodzić problem przecieku. Bądźmy jednak przygotowani na degradację rozdzielczości częstotliwościowej, nieuchronnie występującą, jeśli są używane okna. Przy okazji, jeśli dołączenie zer jest niezbędne do rozszerzenia zbioru danych ciągu czasowego, musimy być pewni, że dołączamy zera po przemnożeniu oryginalnego ciągu danych czasowych przez funkcję okna. Zastosowanie funkcji okna do ciągu próbek uzupełnionego próbkami o zerowych wartościach zniekształci wynikowe okno i powiększy przeciek FFT. Próbkowanie wystarczająco szybkie i wystarczająco długie Powinniśmy podejrzewać powstanie aliasingu, jeśli istnieją jakiekolwiek składowe widmowe, których częstotliwości okazują się zależnymi od szybkości próbkowania. Jeśli podejrzewamy, że pojawia się aliasing, lub że sygnał ciągły zawiera szum szerokopasmowy będziemy musieli użyć analogowego filtru dolnoprzepustowego przed przetworzeniem A/C. Częstotliwość graniczna filtru dolnoprzepustowego musi być większa, niż zakres częstotliwości, jaki nas interesuje, ale mniejsza od połowy szybkości próbkowania. 9 Przedział czasu, w którym zbieramy dane, musi być wystarczająco długi, aby spełnić wymagania dotyczące rozdzielczości częstotliwościowej FFT przy zadanej szybkości próbkowania. Przedział czasu, w którym zbieramy dane, jest odwrotnością wymaganej rozdzielczości FFT i im dłużej próbkujemy z ustaloną szybkością próbkowania fp, tym lepsza będzie rozdzielczość częstotliwościowa. Na przykład, jeśli wymagana jest rozdzielczość widmowa wynosi 5 Hz, to liczba niezbędnych próbek wynosi: N= fp f = p = 0,2 ⋅ f p wymagana rozdz. 5 (15) 10 MATLAB Przykład 1 x = [4 3 7 -9 1 0 0 0]' y = fft(x) % % Wektor x jest rzeczywisty natomiast y jest zespolony. % W przykładzie pierwszy wyraz reprezentuje składową stałą, % a piąty wyraz odpowiada częstotliwości Nyquista. % Ostatnie trzy wyrazy odpowiadają częstotliwościom ujemnym % i są odpowiednio sprzężone z 2, 3 i 4 wyrazem. x = 4 3 7 -9 1 0 0 0 y = 6.0000 11.4853 -2.0000 -5.4853 18.0000 -5.4853 -2.0000 11.4853 - 2.7574i -12.0000i +11.2426i -11.2426i +12.0000i + 2.7574i 11 Przykład 2 %Tworzymy przebieg składający się z jednej składowej sinusoidalnej % t=0:1/100:10-1/100;%jaka jest częstotliwość próbkowania? %x=sin(2*pi*40*t); x=sin(2*pi*20*t)+0.5*sin(2*pi*30*t+pi/3); y=fft(x); %obliczanie DFT ciągu x m=abs(y); %amplituda p=unwrap(angle(y)); %faza; % %Funkcja unwrap służy do usunięcia skoków fazy większych niż % "pi" pomiędzy kolejnymi próbkami. % %Tworzymy oś częstotliwości i rysujemy wykres amplitudy i fazy % f=(0:length(y)-1)'*100/length(y); %oś czestotliwości subplot(2,1,1), stem(f,m,'k.'); %wykres amplitudy ylabel('modul amplitudy'), grid on subplot(2,1,2), plot(f,p*180/pi); %faza ylabel('faza [stopnie]'), grid on xlabel('Czestotliwosc [Hz]') 12 modul amplitudy 600 400 200 0 0 10 20 30 10 20 30 40 50 60 70 80 90 100 40 50 60 Czestotliwosc [Hz] 70 80 90 100 4 faza [stopnie] 3 x 10 2 1 0 0 13 Przykład 3 t=0:0.001:0.6; x=sin(2*pi*50*t)+sin(2*pi*120*t); y=x+2*randn(size(t)); figure(1) plot(y(1:50)) title('sygnal z szumem');grid on xlabel('czas [s]') Y=fft(y,512); Pyy=Y.*conj(Y)/512; % Rysujemy wykres pierwszych 257 punktów na osi częstotliwości: f=1000*(0:256)/512; figure(2) plot(f,Pyy(1:257)),grid on title('Widmo mocy y') xlabel('f (Hz)') sygnal z szumem 5 4 3 2 1 0 -1 -2 -3 -4 -5 0 5 10 15 20 25 czas [s] 30 35 40 45 50 14 Widmo mocy y 80 70 60 50 40 30 20 10 0 0 50 100 150 200 250 f (Hz) 300 350 400 450 Opracowano na podstawie: R. G. Lyons „Wprowadzenie do cyfrowego przetwarzania sygnałów” 1999 K. Steiglitz „Wstęp do systemów dyskretnych” 1977 500