Transformacja Fouriera i biblioteka CUFFT 3.0



Podobne dokumenty
Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago

Transformata Fouriera

dr inż. Artur Zieliński Katedra Elektrochemii, Korozji i Inżynierii Materiałowej Wydział Chemiczny PG pokój 311

Technika audio część 2

Przekształcenie Fouriera obrazów FFT

Szybka transformacja Fouriera (FFT Fast Fourier Transform)

Zastowowanie transformacji Fouriera w cyfrowym przetwarzaniu sygnałów

3. Przetwarzanie analogowo-cyfrowe i cyfrowo-analogowe... 43

Przetwarzanie i transmisja danych multimedialnych. Wykład 8 Transformaty i kodowanie cz. 2. Przemysław Sękalski.

FFT i dyskretny splot. Aplikacje w DSP

uzyskany w wyniku próbkowania okresowego przebiegu czasowego x(t) ze stałym czasem próbkowania t takim, że T = t N 1 t

9. Dyskretna transformata Fouriera algorytm FFT

Przekształcenie Fouriera i splot

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7

Szybka transformacja Fouriera

Układy stochastyczne

Wstęp do metod numerycznych Dyskretna transformacja Fouriera. P. F. Góra

Transformaty. Kodowanie transformujace

Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry Pojęcia podstawowe Klasyfikacja sygnałów

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 6. Transformata cosinusowa. Krótkookresowa transformata Fouriera.

Transformata Fouriera i analiza spektralna

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

DYSKRETNA TRANSFORMACJA FOURIERA

Adaptacyjne Przetwarzanie Sygnałów. Filtracja adaptacyjna w dziedzinie częstotliwości

4 Zasoby językowe Korpusy obcojęzyczne Korpusy języka polskiego Słowniki Sposoby gromadzenia danych...

Teoria sygnałów Signal Theory. Elektrotechnika I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera)

Cyfrowe przetwarzanie i kompresja danych

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obieralny (obowiązkowy / nieobowiązkowy) polski semestr VI

Andrzej Leśnicki Laboratorium CPS Ćwiczenie 6 1/8 ĆWICZENIE 6. Dyskretne przekształcenie Fouriera DFT

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

Szereg i transformata Fouriera

Analiza szeregów czasowych: 1. Dyskretna transformata Fouriera i zagadnienia pokrewne

Ćwiczenie 3. Właściwości przekształcenia Fouriera

Ćwiczenie: Własności dyskretnej transformaty Fouriera (DFT)

Przetwarzanie sygnału cyfrowego (LabVIEW)

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

Algorytmy detekcji częstotliwości podstawowej

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski

Analiza szeregów czasowych: 2. Splot. Widmo mocy.

Opis efektów kształcenia dla modułu zajęć

Lista 1. (e) z działaniem dodawania ciągów i mnożeniem ciągu przez liczbę. (f) z działaniem dodawania ciągów i mnożeniem ciągu przez liczbę

KARTA PRZEDMIOTU. Techniki przetwarzania sygnałów, D1_3

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Transformacje Fouriera * podstawowe własności

AiR_CPS_1/3 Cyfrowe przetwarzanie sygnałów Digital Signal Processing

Wykład 2. Transformata Fouriera

Nowinki technologiczne procesorów

Różne reżimy dyfrakcji

Akwizycja i przetwarzanie sygnałów cyfrowych

FPGA IMPLEMENTATION OF FAST FOURIER TRANSFORM ALGORITHM IMPLEMENTACJA ALGORYTMU SZYBKIEJ TRANSFORMATY FOURIERA W UKŁADZIE PROGRAMOWALNYM FPGA

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

CYFROWE PRZETWARZANIE SYGNAŁÓW

10.Architekturyspecjalizowane

Praca dyplomowa magisterska

Analiza szeregów czasowych: 1. Dyskretna transformata Fouriera i zagadnienia pokrewne

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

Julia 4D - raytracing

Przekształcenia całkowe. Wykład 1

8. Analiza widmowa metodą szybkiej transformaty Fouriera (FFT)

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Propagacja w przestrzeni swobodnej (dyfrakcja)

Diagnostyka obrazowa

Egzamin / zaliczenie na ocenę*

Ćwiczenia 05. Sylwester Arabas (ćwiczenia do wykładu prof. Szymona Malinowskiego) 9. listopada 2010 r.

PL B1. Sposób i układ pomiaru całkowitego współczynnika odkształcenia THD sygnałów elektrycznych w systemach zasilających

Teoria Sygnałów. Inżynieria Obliczeniowa II rok 2018/19. Wykład 10. ( t) Wykorzystanie transformacji Fouriera w analizie korelacyjnej

Laboratorium 1. Wprowadzenie do środowiska GnuRadio. I. Wprowadzenie

4,5. Dyskretne zmienne losowe (17.03; 31.03)

Zmienne losowe. dr Mariusz Grządziel Wykład 12; 20 maja 2014

Diagnostyka obrazowa

Dyskretne zmienne losowe

Wymiana i składowanie danych multimodalnych

PRZETWARZANIE SYGNAŁÓW

Przeksztacenie Laplace a. Krzysztof Patan

Podstawy Automatyki. wykład 1 ( ) mgr inż. Łukasz Dworzak. Politechnika Wrocławska. Instytut Technologii Maszyn i Automatyzacji (I-24)

Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab

Matematyczne Metody Fizyki II

Przetwarzanie sygnałów

Przetwarzanie i transmisja danych multimedialnych. Wykład 7 Transformaty i kodowanie. Przemysław Sękalski.

Joint Photographic Experts Group

POLITECHNIKA POZNAŃSKA

Przekształcenie Z. Krzysztof Patan

PORÓWNANIE TREŚCI ZAWARTYCH W OBOWIĄZUJĄCYCH STANDARDACH EGZAMINACYJNYCH Z TREŚCIAMI NOWEJ PODSTAWY PROGRAMOWEJ

Akwizycja i przetwarzanie sygnałów cyfrowych

Przetwarzanie obrazów wykład 6. Adam Wojciechowski

KARTA MODUŁU / KARTA PRZEDMIOTU

13. Wybrane algorytmy cyfrowego przetwarzania sygnałów

Moc płynąca z kart graficznych

Kartkówka 1 Opracowanie: Próbkowanie częstotliwość próbkowania nie mniejsza niż podwojona szerokość przed spróbkowaniem.

Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i JPEG

Obliczenia Naukowe. Wykład 12: Zagadnienia na egzamin. Bartek Wilczyński

Współczesne techniki informacyjne

Transkrypt:

Transformacja Fouriera i biblioteka CUFFT 3.0 Procesory Graficzne w Zastosowaniach Obliczeniowych Karol Opara Warszawa, 14 kwietnia 2010

Transformacja Fouriera

Definicje i Intuicje Transformacja z dziedziny czasu w dziedzinę częstotliwośći F : R R C R Oznaczenia: F [f (x)](ξ), ˆf (ξ) Rozkład funkcji (sygnału) na szereg funkcji okresowych F [f (x)](ξ) = ˆf (ξ) := cos(2πξ) + i sin(2πξ) = e 2πiξ Istnieje transformata odwrotna f (x) = f (x) e 2πixξ dx ˆf (ξ) e 2πixξ dξ Jeśli x reprezentuje czas [s], to ξ reprezentuje częstotliwość [Hz]

Dyskretna Transformacja Fouriera (DFT) Sygnał próbkowany (np. dzwięk, sygnały elektromagnetyczne, obrazki) opisany próbkami (a 0, a 1,..., a n 1 ), gdzie a i R Ciąg harmonicznych (A 0, A 1,..., A n 1 ), gdzie A i C A k = N 1 n=0 a n exp Istnieje przekształcenie odwrotne a n = 1 N N 1 k=0 A k exp Złożoność algorytmu naiwnego O(n 2 ) ( ) 2πi kn N ( ) 2πi kn N

Przykłady transformat sygnałów Sygnał próbkowany z częstotliwością 1000 Hz w czasie 0.5 s Dyskretna transformata Fouriera (DFT) oparta na 512 punktach (ostatnie 12 punktów zapełnione zerami) Do poprawnego odtworzenia sygnału trzeba próbkować przynajmniej dwa razy na okres (tw. Kotielnikowa-Shannona daje ograniczenie na częstotliwość poprawnie odtwarzanych sygnałów) Moc sygnału x(t) dla częstotliwości ν dana jest przez ˆx(ν)ˆx(ν), czyli kwadrat modułu transformaty

Przykład: transformacja sinusa

Przykład: transformacja sinusa

Przykład: transformacja sumy sinusów

Przykład: transformacja sumy sinusów

Przykład: transformacja sygnałów zaszumionych

Przykład: transformacja sygnałów zaszumionych

Przykład: transformacja sygnałów zaszumionych

Problemy z transformatą dyskretną

Własności Transformacja Fouriera Liniowość: jeżeli h(x) = af (x) + bg(x), to ĥ(ξ) = a ˆf (ξ) + b ĝ(ξ) Translacje: jeżeli h(x) = f (x x 0 ), to ĥ(ξ) = e 2πix 0ξˆf (ξ) Modulacja: jeżeli h(x) = e 2πixξ 0 f (x), to ĥ(ξ) = ˆf (ξ ξ 0 ) ( Skalowanie: jeżeli h(x) = f (ax), to ĥ(ξ) = a ˆf 1 ξ a) dla a = 1 jeżeli h(x) = f ( x), to ĥ(ξ) = ˆf ( ξ) Sprzężenie: jeżeli h(x) = f (x), to ĥ(ξ) = ˆf ( ξ) jeżeli f jest funkcją rzeczywistą, to ˆf ( ξ) = ˆf (ξ) Tw. o splocie: jeżeli h(x) = (f g) (x), to ĥ(ξ) = ˆf (ξ) ĝ(ξ)

Zastosowania Transformacja Fouriera Przetwarzanie sygnałów Przetwarzanie obrazów, filtry Równania różniczkowe Obliczanie splotów sumowanie zmiennych losowych mnożenie wielomianów mnożenie dużych liczb Kompresja danych (dyskretne transformaty kosinusowe) np. JPEG, MP3

Fast Fourier Transform Algorytm (rodzina algorytmów) do obliczania DFT i jej odwrotności Ma złożoność O(nlog(n)), opiera się na zasadzie dziel i rządź Najszybciej i najdokładniej działa, gdy długość danych podlegających transformacji jest potęgą pewnej małej liczby pierwszej, najlepiej dwójki Popularna biblioteka FFTW (Fastest Fourier Transform in the West) dla C CUFFT ma podobne API do FFTW NVIDIA CUDA FFT library documentation, February 2010

Własności CUFFT Transformaty sygnałów rzeczywistych i zespolonych 1D, 2D i 3D Wiele transformacji dowolnych wymiarów równolegle Transformaty 2D i 3D mogą przetwarzać sygnały w zakresie [2, 16384] w każdym wymiarze Transformaty 1D mogą przetwarzać do 8 milionów elementów Transformaty w miejscu i zewnętrzne Podwójna precyzja na odpowiednim sprzęcie (GT200 i późniejsze) nowość w wersji 3.0 Wsparcie wykonywania w strumieniach, możliwość asynchronicznego przesyłu danych

Typy danych CUFFT typedef float cufftreal typedef double cufftdoublereal typedef cucomplex cufftcomplex typedef cudoublecomplex cufftdoublecomplex

CUFFT typy transformacji Typy transformacji: typedef enum cuffttype_t { CUFFT_R2C = 0x2a, // Real to complex (interleaved) CUFFT_C2R = 0x2c, // Complex (interleaved) to real CUFFT_C2C = 0x29, // Complex to complex, interleaved CUFFT_D2Z = 0x6a, // Double to double-complex CUFFT_Z2D = 0x6c, // Double-complex to double CUFFT_Z2Z = 0x69 // Double-complex to double-complex } cuffttype; #define CUFFT_FORWARD -1 #define CUFFT_INVERSE 1

1D real-to-complex #define NX 256 #define BATCH 10 cuffthandle plan; cufftcomplex *data; cudamalloc((void**)&data, sizeof(cufftcomplex)*(nx/2+1)*batch); /* Create a 1D FFT plan. */ cufftplan1d(&plan, NX, CUFFT_R2C, BATCH); /* Use the CUFFT plan to transform the signal in place. */ cufftexecr2c(plan, (cufftreal*)data, data); /* Destroy the CUFFT plan. */ cufftdestroy(plan); cudafree(data);

2D complex-to-real #define NX 256 #define NY 128 cuffthandle plan; cufftcomplex *idata; cufftreal *odata; cudamalloc((void**)&idata, sizeof(cufftcomplex)*nx*ny); cudamalloc((void**)&odata, sizeof(cufftreal)*nx*ny); /* Create a 2D FFT plan. */ cufftplan2d(&plan, NX, NY, CUFFT_C2R); /* Use the CUFFT plan to transform the signal out of place. */ cufftexecc2r(plan, idata, odata); /* Destroy the CUFFT plan. */ cufftdestroy(plan); cudafree(idata); cudafree(odata);

Wtyczki Transformacja Fouriera Matlab LabView Mathematica Python R

CUDA FFT, a FFTW Paul Demorest, National Radio Astronomy Observatory, USA, sierpień 2007 CPU: Intel Core 2 Quad, 2.4GHz GPU: NVIDIA GeForce 8800 GTX Procedura testowa, wszystkie transformacje w miejscu 1 8M = 8 10 6 losowych float-ów (64MB). 2 Dane przesyłane do GPU (jeśli zachodzi taka potrzeba) 3 Dane dzielone na 8M/fftLen kawałków (chunks) i dla każdego uruchamiano wsadowe wywołanie FFTW/CUFFT 4 Wyniki przesyłane z powrotem do CPU

Czas/FFT Transformacja Fouriera

Gflops/s Transformacja Fouriera

Wykorzystanie czasu

Podsumowanie Transformacja Fouriera 1 Dość wygodna biblioteka 2 Może pokonać najlepsze biblioteki na CPU, jeśli dane są dostatecznie duże 3 Wąskim gardłem są transfery pamięci 4 Można mieć nadzieję na poprawę szybkości

Dziękuję za uwagę!