PG – Katedra Systemów Mikroelektronicznych ZASTOSOWANIE PROCESORÓW SYGNAŁOWYCH Marek Wroński Wykład 5: Dyskretna Transformata Fouriera, FFT i Algorytm Goertzela Zastosowania DFT Szereg Fouriera Postać zespolona Postać czasowa zespolonego szeregu Fouriera Przekształcenie Fouriera Dyskretna postać transformaty Fouriera: DFT i IDFT Szybka transformata Fouriera - FFT 4 punktowa FFT (podział czasowy) 8 punktowa FFT 8 punktowa FFT (podział częstotliwościowy) Wady obliczania FFT prowadzi do obliczenia wszystkich próbek transformaty DFT, podczas gdy czasem potrzebny jest jedynie niewielki ich podzbiór, np. te próbki, które odpowiadają częstotliwościom DTMF i ewentua1nie ich drugim harmonicznym[1]; algorytmy FFT mają więc w tym zastosowaniu nadmierną złożoność obliczeniową, wymaga zgromadzenia pełnego bloku N próbek przed rozpoczęciem transformacji sygnału, co uniemożliwia realizację algorytmu analizy sygnału on line, tzn. próbka po próbce. • wymaga wyznaczania lub pamiętania wartości współczynników WN: FFT dla sygnałów rzeczywistych Widmo Fouriera X(k), k=0,1,2,...N-1, sygnału rzeczywistego x(n) jest symetryczne wzgl. k=N/2 Dwa N-punktowe sygnały rzeczywiste, jedno N -punktowe FFT Tworzymy sygnał zespolony: Odzyskujemy widma X1 i X2: N-punktowy sygnał rzeczywisty, N/2-punktowe FFT Wg. podziału w dziedzinie czasu widmo X(k) może być odtworzone wg. widma X2n(k) jego próbek parzystych i widma X2n+1(k) jego próbek nieparzystych na podstawie wzoru: Tworzymy: Dwuwymiarowa DFT Wyznaczenie DCT metodą FFT Transformacja kosinusowa stosowana jest w standardach kompresji obrazów nieruchomych JPEG i ruchomych MPEG oraz w algorytmie kompresji dźwięku MPEG audio. Zdefiniowana jest poprzez równanie baz kosinusowych: Sumując oddzielnie parzyste i nieparzyste próbki sygnału x(n) i oznaczając: następnie łącząc połówki sum otrzymamy: Algorytm Goertzela Korzystając z zależności: można przez to pomnożyć prawą stronę równania DFT co da W kn N e j ( 2 / N ) Nk e j 2k 1 N 1 X ( k ) x ( n ) WNk ( N n ) n 0 Wyrażenie to jest dyskretnym splotem ciągu x(n) o skończonej długości N i ciągu (WN-k)n n= 1,2,...,N także o długości N próbek. Wprowadzając oznaczenie: n y k ( n ) x ( v ) WNk WNk ( n v ) , v 0 k 0,1,..., N 1 X(k) y k (n) n N -1 Ciąg yk(n) może być traktowany jako odpowiedź układu (filtru cyfrowego) o odpowiedzi impulsowej (WN-k)n+1 na pobudzenie ciągiem wejściowym x(n). Próbka X(k) jest N-tą próbką ciągu wyjściowego, tzn. próbką o indeksie n=N-1. Graf realizujący algorytm Goertzela W celu zmniejszenia liczby mnożeń omawiany algorytm można przekształcić zgodnie ze wzorem: WN k WN k (1 WN k z 1 ) WN k z 1 H k ( z) k 1 1 2 (1 WN z ) 1 2 cos( 2k / N ) z z 1 2 cos( 2k / N ) z 1 z 2 Zalety algorytmu Goertzela Aby zrealizować pętle sprzężenia zwrotnego tego układu, wystarczy wykonać tylko jedno mnożenie i dwa sumowania rzeczywiste. Ponieważ interesuje nas jedynie wyznaczenie próbki yk (N-1), więc mnożenie przez zespolony współczynnik WN-k nie musi być wykonywane w każdym kroku, lecz jedynie w ostatnim (N-1) kroku. Tak więc obliczenia związane z realizacją pętli sprzężenia zwrotnego wymagają wykonania N -1 mnożeń liczb rzeczywistych oraz 2(N-1) sumowań liczb rzeczywistych, a obliczenie yk (N -1) jest związane z 2 dodatkowymi mnożeniami oraz 1 sumowaniem liczb rzeczywistych. Łącznie należy więc wykonać N+1 mnożeń liczb rzeczywistych oraz 2N-1 sumowań liczb rzeczywistych. Energia sygnału (kwadrat amplitudy prążka) Wybór N alg. Goertzela dla DTMF W celu unikania przecieków DFT jest pożądane aby częstotliwości wszystkich tonów podlegających detekcji odpowiadały częstotliwością próbek DFT, tj. k(fs/N). Więc Zagadnienie okna w DFT Przeciek DFT i widmo fali sinusoidalnej dla niecałkowitej liczby okresów w oknie Odpowiedzi częstotliwościowe DFT dla pobudzenia sinusoidalnego N sin[ (k m)] Wartości prążków: X ( m) (szerokość głównego fs/N) 2 ( k m) Powielenia widmowe Zwiększenie czułości wykrywania sygnałów Wygładzanie nieciągłości Okna wygładzające końcowe nieciągłości