Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 1/8 ĆWICZEIE 6 Dyskretne przekształcenie Fouriera DFT 1. Cel ćwiczenia Dyskretne przekształcenie Fouriera ( w skrócie oznaczane jako DFT z ang. Discrete Fourier Transform) jest przekształceniem zdefiniowanym dla skończonych sygnałów dyskretnych. Pozwala ono wyznaczyć próbki widma sygnału dyskretnego i ma bardzo duże znaczenie praktyczne. Wynika to z tego, że w praktyce przetwarzanie sygnałów dyskretnych odbywa się z użyciem komputera, do którego pamięci można wpisać tylko skończoną liczbę próbek sygnału czy też jego widma. Także skończony czas obserwacji sygnału nieskończonego wymusza na użytkowniku konieczność operowania skończoną liczbą próbek sygnału. Dyskretne przekształcenie Fouriera ma wiele interesujących właściwości. Dzięki nim jest możliwe przeprowadzenie unikalnych operacji przy przetwarzaniu sygnałów dyskretnych. W niniejszym ćwiczeniu będą badane właściwości dyskretnego przekształcenia Fouriera. 2. Wprowadzenie Proste (DFT) i odwrotne (IDFT) dyskretne przekształcenia Fouriera są zdefiniowane odpowiednio następującymi wzorami X x 1 j n [] k x[] n e, k =, 1, K, 1 = n= 1 1 2πk j k [] n X [] k e, n =, 1, K, 1 = k = 2πn (1) (2) W badaniu właściwości dyskretnego przekształcenia Fouriera będzie wykorzystywany interfejs graficzny dftsystem. Okno tego interfejsu graficznego pokazano na rys. 1. W oknie interfejsu rozmieszczono dziesięć układów współrzędnych, w których są wykreślane wyniki operacji dziesięciu bloków. W pierwszej i drugiej kolumnie pierwszy od góry blok jest blokiem generatora próbek sygnału dyskretnego lub próbek widma sygnału dyskretnego. Z zagłębionego menu można wybrać następujący sygnał: - delta Kroneckera (impuls jednostkowy); - impuls prostokątny M = 4 ; - zaliasowany sinc M = 4 ; - sinusoida rzeczywista sin( 2π,1n ); - sinusoida zespolona exp( j2π, 1n) ; - szum gaussowski; - tablica lub funkcja MATLABa. W funkcji MATLABa parametrami mogą być wartości i 1 = 1, a zmiennymi n = :1: 1 oraz m = 1:1:. Długość sygnału można zmieniać suwakiem lub poprzez wpis wartości w polu edycyjnym. Części rzeczywiste próbek są oznaczone niebieskimi znakami o, a części urojone czerwonymi znakami x.
Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 2/8 Rys. 1. Okno interfejsu graficznego dftsystem Trzy bloki poniżej bloków generatorów i ostatni blok na samym dole okna to bloki wykonujące jedną z następujących operacji wybraną z zagłębionego menu: a) Proste dyskretne przekształcenie Fouriera DFT, x[ n] X [ k]. Jest ono wykonywane z użyciem algorytmu szybkiej transformaty Fouriera FFT i z punktu widzenia szybkości obliczeń jest korzystne, gdy liczba próbek jest potęgą dwójki, czyli = 4, 8, 16, K. X k x n. b) Odwrotne dyskretne przekształcenie Fouriera IDFT, [ ] [ ] c) Dyskretno-czasowe przekształcenie Fouriera DTFT, [ n] X ( e ) x, f < 1. Jest to jedyna z listy operacja, która daje wynik w postaci funkcji ciągłej ( część rzeczywista - ciągła linia niebieska, część urojona - przerywana linia czerwona, moduł ciągła linia zielona), a nie funkcji dyskretnej. Dlatego blok poniżej bloku DTFT pobierze próbki z bloku powyżej bloku DTFT. d) Operacja fftshift zmienia połówkami kolejność próbek, np. [ 1,2,3,4] [3,4,1,2]. Jest stosowana przy zmianie indeksowania z asymetrycznego na symetryczne lub odwrotnie. e) Zamiana części rzeczywistej z urojoną imag 1 + 2 j,3 + 4 j będzie real, np. dla [ ] j[ 1 + 2 j,3 + 4 j] = [ 2 + j,4 + 3 j]. f) Sprzężenie x [] n, np. [ 1+ 2 j,3 + 4 j] = [ 1 2 j,3 4 j]. g) Zawinięcie i sprzężenie x [ n ], np. [ 1 2 j,3 + 4 j,5 + 6 j ] [ 1 2 j,5 6 j,3 4 j ] h) Składowa parzysta (symetryczna) sygnału x e [ n] = ( x[ n] + x [ n] ) 2. i) Składowa nieparzysta (antysymetryczna) sygnału [ n] = x[ n] x [ n]. +. x o ( ) 2
Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 3/8 [] j) Skalowanie ax n. Współczynnik skali a można zmieniać w przedziale a 2 suwakiem lub poprzez wpisanie wartości w pole edycyjne. k) Opóźnienie cykliczne x[ n K ], np. x [ n] = [ 1,2,3,4] x[ n 3] = [2,3,4,1 ]. Opóźnienie K można zmieniać w przedziale K suwakiem lub poprzez wpisanie wartości w pole edycyjne. l) Mnożenie x[] n cos ( 2πfn). Częstotliwość f można zmieniać w przedziale f, 5 suwakiem lub poprzez wpisanie wartości w pole edycyjne. ł) Mnożenie x[] n exp ( j2πfn). Częstotliwość f można zmieniać w przedziale f, 5 suwakiem lub poprzez wpisanie wartości w pole edycyjne. m) Powtórzenie [ x [] n, x[] n, K]. Krotność powtórzenia M można zmieniać w przedziale 2 M 4 suwakiem lub poprzez wpisanie wartości w pole edycyjne. n) Uzupełnianie zerami, in. zeropadding [ x [ n ],,, K]. Liczbę zer L można zmieniać w przedziale 1 L 128 suwakiem lub poprzez wpisanie wartości w pole edycyjne. o) Wstawianie zer, in. zeroinserting [ x( ),, x( 1 ),, x(2),,k]. Krotność M wydłużenia ciągu można zmieniać w przedziale 2 M 4 suwakiem lub poprzez wpisanie wartości w pole edycyjne. p) Decymacja, np. z M = 2, to [ x ( ), x( 2), x(4), K]. Krotność M zmniejszenia długości ciągu na skutek pobierania tylko co M-tej próbki można zmieniać w przedziale 2 M 4 suwakiem lub poprzez wpisanie wartości w pole edycyjne. W interfejsie graficznym dftsystem przedostatni blok (drugi od dołu) jest blokiem wykonującym operację na dwóch sygnałach, jednym z lewej kolumny (u 1[] n ) i drugim z prawej kolumny ( u 2[ n] ). Jeżeli sygnały różnią się długością, to krótszy z nich jest uzupełniany zerami. Z zagłębionego menu można wybrać jedną z czterech operacji (każda ze współczynnikiem skali a): a) Dodawanie a( u1 [] n + u2[] n ). b) Odejmowanie a ( u1[ n] u2[ n] ). c) Mnożenie a ( u1[] n. u2[] n ). d) Splot kołowy a u1 n u2 n. ( [] []) 1 n= ( [] []) [] [ ] e) Korelacja a u1 n corr u2 n = a u1 n u2 n + l. Części rzeczywiste i urojone sygnałów od x [ n] do [ n] w są dostępne do dalszego przetwarzania (w innych programach) w pliku tekstowym dftsystemwyniki w obszarze roboczym work MATLABa. Właściwości dyskretnego przekształcenia Fouriera zostaną zilustrowane w poniższych przykładach. Przykład 1. Sygnał { [ n] } = { 1,, 1, X x } ma długość = 4 i jego widmo, to j2ω ( e ) 1 e = e ( e e ) = 2 je sinω = (3) Wyniki obliczeń komputerowych są takie same jak obliczeń ręcznych. Wyniki uzyskane z użyciem interfejsu graficznego dftsystem są pokazane na rys. 1. Sygnał { x [] n } = { 1,, 1, }, jego widmo X ( e ) i próbki widma X [ k] są pokazane w lewej kolumnie. Sygnał { x n } = { 1,, 1,,,,, }, = 8 jego widmo X e i próbki widma X k są pokazane [] ( ) []
Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 4/8 w prawej kolumnie. Zwiększanie w DFT powoduje, że mamy coraz więcej próbek widma DTFT. Przykład 2. Zademonstrujemy zjawisko przecieku widma na przykładzie sygnału kosinusoidalnego. Jeżeli częstotliwość sygnału ma wartość f =, 125 i liczba próbek = 8, to próbki sygnału x[ n] = cos( 2π. 125n) i próbki widma są takie jak na rys. 2 w lewej kolumnie. Okresowe powtarzanie próbek sygnału złoży się na niezniekształconą kosinusoidę. Widmo sygnału składa się z dwóch prążków X [ 1] = 4 i X[7] = 4 na k 1 k 7 częstotliwościach = =,125 oraz = =, 825 i nie ma przecieku widma. 8 8 Jeżeli częstotliwość sygnału ma wartość f =, 2 i liczba próbek = 8, to próbki sygnału x[ n] = cos( 2π. 2n) i próbki widma są takie jak na rys. 2 w prawej kolumnie. Okresowe powtarzanie próbek sygnału nie składa się na czystą, niezniekształconą kosinusoidę. awet wartość średnia sygnału jest teraz różna od zera i próbka widma X[] 1 1 jest różna od zera. Próbki widma są rozmieszczone na osi częstotliwości co = =,125 i 8 wśród tych częstotliwości nie ma w ogóle częstotliwości kosinusoidy f =,2. Prążek o maksymalnej amplitudzie występuje na częstotliwości zbliżonej do f =,2, tj. na częstotliwości k 2 = = 8,25 i ma amplitudę mniejszą niż 4. Tak więc prążek główny zmalał, a pojawiły się prążki widma na częstotliwościach, na których niezniekształcona kosinusoida ma widmo zerowe. Jest to efekt przecieku widma.
Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 5/8 Rys. 2. Sygnał kosinusoidalny i jego DFT: w lewej kolumnie parametry dobrane, że nie ma zjawiska przecieku widma; w prawej kolumnie parametry dobrane, że występuje zjawisko przecieku widma f, f, są tak są tak Przykład 3. Jedna z właściwości DFT mówi o tym, że z sygnału zespolonego x[] n = xr [] n + jxi [] n można usunąć część urojoną i pozostawić tylko część rzeczywistą x R [ n] wykonując operacje nie w dziedzinie czasu, ale w dziedzinie częstotliwości x R 1 ( k ) (4) 2 [] n X [] k = X [ k] + X [ ] e Przykładowo dla sygnału zespolonego { x[ n] } = { 2j, 3 4 j, 5 6 j, 7 8 j} jak na rys. 3. W lewej kolumnie wyznaczono próbki widma X [ k] wyznaczono próbki widma zawinięte i sprzężone X [ k] 1 wyniki są takie. W prawej kolumnie. astępnie próbki z lewej i prawej kolumny dodano ze współczynnikiem wagowym a = 1 2 i wyznaczono odwrotne dyskretne przekształcenie Fouriera IDFT. Zgodnie z oczekiwaniami pozbyto się części x R n = 1, 3, 5, 7. urojonej sygnału i pozostała tylko część rzeczywista sygnału { [ ]} { }
Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 6/8 Rys. 3. Pozbycie się części urojonej sygnału poprzez wykonanie stosownych operacji w dziedzinie częstotliwości Przykład 4. Sygnały dyskretne mogą być wydłużane lub skracane na różne sposoby. iezależnie jednak od sposobu wydłużania lub skracania jest ogólną prawidłowością, że rozciąganiu sygnału w dziedzinie czasu odpowiada ściśnięcie widma sygnału i odwrotnie. Ścieśnianiu sygnału w dziedzinie czasu odpowiada rozciąganie widma sygnału. Zbadamy ten efekt na przykładzie impulsu prostokątnego rozciąganego poprzez wstawianie zer między próbkami (ang. zeroinserting) i ścieśnianemu poprzez pozostawienie tylko co M-tej próbki (decymacja). W badaniach wykorzystamy interfejs graficzny dftsystem. Sygnał { x [] n } = { 1, 1, 1, 1,,, K} jest impulsem prostokątnym i ma widmo o postaci funkcji asinc. Dwukrotne rozciągnięcie sygnału w dziedzinie czasu poprzez wstawienie po jednym zerze między próbkami (zeroinserting) powoduje dwukrotne ściśnięcie widma sygnału (rys. 4, lewa kolumna). Dwukrotne ściśnięcie sygnału w dziedzinie czasu poprzez pozostawienie tylko co drugiej próbki (decymacja) powoduje dwukrotne rozciągnięcie widma sygnału (rys. 4, prawa kolumna).
Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 7/8 Rys. 4. Zmiana widma sygnału spowodowana zeroinsertingiem (lewa kolumna) i decymacją (prawa kolumna) 3. Wykonanie ćwiczenia 1. Pokaż, że przekształcenie DFT daje próbki widma DTFT podobnie jak w przykładzie 1. Posłuż się interfejsem graficznym dftsystem. Wybierz krótki sygnał x [ n], narysuj ten sygnał i jego widmo DTFT. a tle widma DTFT narysuj próbki widma DFT. Jakim częstotliwościom odpowiadają próbki widma? Pokaż, że liczba próbek widma zwiększa się dzięki uzupełnianiu zerami (zeropaddingowi). 2. Zbadaj zjawisko przecieku widma podobnie jak w przykładzie 2. Wybierz do badań sinusoidę rzeczywistą lub zespoloną. Dobierz częstotliwość f i parametr raz tak, aby zjawisko przecieku widma nie występowało i raz tak, aby zjawisko przecieku widma występowało. Sporządź stosowne rysunki sygnałów i widm i przedyskutuj uzyskane wyniki. 3. Wybierz dowolny sygnał zespolony i usuń z niego część urojoną lub rzeczywistą wykonując odpowiednie operacje w dziedzinie częstotliwości podobnie jak w przykładzie 3. Sporządź stosowne rysunki i przedyskutuj uzyskane wyniki. 4. Zbadaj wpływ wydłużania sygnału poprzez zeroinserting i skracania sygnału poprzez decymację na widmo sygnału (podobnie jak w przykładzie 4, ale wybierz własny sygnał x[]). n Sporządź stosowne rysunki i przedyskutuj uzyskane wyniki.
Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 8/8 4. Zadania testowe na wejściówki i sprawdziany 1. arysuj sygnał x[] n = δ [] n δ [ n 1]. Oblicz DFT ( = 2 ) i wyniki nanieś na tle widma DTFT sygnału x[] n. Oblicz DFT ( = 4 ) sygnału y [ n] powstałego z sygnału x [ n] wydłużonego dwukrotnie poprzez: zeropadding, zeroinserting, powtórzenie. arysuj te wydłużone sygnały. Wykreśl DFT ( = 4 y n na tle ich widm DTFT. 2. Sygnał [] n = exp( nt x 2 ) spróbkowaną z częstotliwością f p ) sygnałów [ ] jest sinusoidą zespoloną o częstotliwości f = 1 khz = 5 khz. aszkicuj moduł transformaty DFT tego sygnału przy = 8. Wyjaśnij zjawisko przecieku widma i napisz jak go unikać lub minimalizować. Znajdź wartości, przy których przecieku widma nie będzie. Dla najmniejszej ze znalezionych wartości naszkicuj moduł transformaty DFT sygnału x[] n i pokaż, że przecieku widma nie ma. 3. Sygnał [] n exp( nt x = 5 ) jest sinusoidą zespoloną o częstotliwości f = 3 khz spróbkowaną z częstotliwością = 1 khz. aszkicuj moduł transformaty DFT tego f p sygnału przy = 8. Wykaż, że zachodzi zjawisko przecieku widma. Zwiększ poprzez dopisanie zer do 8 poprzednich próbek sygnału tak, aby w rastrze częstotliwości DFT znalazła się częstotliwość sinusoidy zespolonej. aszkicuj moduł DFT wykazując, że wprawdzie przeciek widma nie został zlikwidowany, ale prążek o maksymalnej amplitudzie występuje na częstotliwości sinusoidy zespolonej. 4. Z sygnału { x [] n } = { 1 + j, 2 j, 3 + j, 4 j} usuń składową rzeczywistą wykonując odpowiednie operacje w dziedzinie częstotliwości na próbkach widma X k. [ ] 5. Sygnał { x[] n } = { 1 + j, 2 j, 3 + j, 4 j} ma { X [] k } = { 1, 2 + 2 j, 2 + 4 j, 2 2 j}. Oblicz widma następujących sygnałów: a) x + jx x + jx ; R x b) n ; I I [] x [ n] x e [] n x o [] n x[ n 2] { x [] n, x[] n } { x[] n,,,, } x[],, x[] 1,, x[] 2,, x[] 3, c) ; d) ; e) ; f) ; g) ; h) ; i) { }. R widmo