Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI. Praca dyplomowa

Wielkość: px
Rozpocząć pokaz od strony:

Download "Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI. Praca dyplomowa"

Transkrypt

1 Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra: Systemów Automatyki Imię i nazwisko dyplomanta: Jakub Kołakowski Nr albumu: Forma i poziom studiów: jednolite magisterskie Kierunek studiów: Automatyka i Robotyka Praca dyplomowa Temat pracy: Implementacja algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie CUDA. Opiekun pracy: dr inż. Michał Meller Zakres pracy: Implementacja algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie CUDA i platformie CPU oraz porównanie wydajności obu platform. Gdańsk, 2011

2

3 OŚWIADCZENIE Oświadczam, że niniejszą pracę dyplomową wykonałem samodzielnie. Wszystkie informacje umieszczone w pracy uzyskane ze źródeł pisanych oraz informacje ustne pochodzące od innych osób zostały udokumentowane w wykazie literatury odpowiednimi odnośnikami.... podpis dyplomanta

4

5 Spis treści Spis treści i Wstęp 1 1 Wprowadzenie Filtracjaadaptacyjna Zastosowaniafiltrówadaptacyjnych Strukturyfiltrów Celepracy Podstawy teoretyczne filtracji adaptacyjnej Filtracjaoptymalna-filtrWienera OgraniczeniapraktycznefiltruWienera Metodygradientowe Algorytmynajszybszegospadku AlgorytmyNewtona-Raphsona AlgorytmyQuasi-Newtona Adaptacyjnealgorytmygradientustochastycznego AlgorytmLMS AlgorytmNLMS AlgorytmNLMSznormalizacjąmocy AlgorytmLeaky-LMS Blokowefiltryadaptacyjne Strukturablokowa Decymacjaiinterpolacja Filtradaptacyjny i

6 ii SPIS TREŚCI Normalizacjamocy Złożonośćobliczeniowaalgorytmów Opis platformy CUDA Wprowadzenie Skalowalnośćmodelu Modelprogramowania FunkcjeGPU WątkiCUDA Programowanieheterogeniczne Hierarchiapamięci Możliwościobliczeniowe BibliotekaCUFFT StrumienieCUDA Pamięćpage-locked Transferasynchronicznyinakładanieoperacji Implementacja algorytmów Platformatestowa LaptopDellVostro Szczegółowedanekartygraficznej Etapyimplementacji MATLAB C/C CUDAC WydajnośćplatformGPUiCPU PlatformaCPU PlatformaGPU PorównaniewydajnościplatformCPUiGPU Podsumowanie i wnioski 63 Bibliografia 65 A Spis zawartości nośnika CD 67 Spis rysunków 69

7 Wstęp Adaptacja to nie kaprys, to konieczność. Natura pokazuje, że to organizmy potrafiące zaadaptować się do zmiennych warunków, mają większą szansę przeżycia. Układy adaptacyjnesączęstowlepszejsytuacjiniżte,któreniesąwstaniesięniczegonauczyć, dlatego też znajdują szerokie zastosowanie w różnych dziedzinach techniki, takich jak telekomunikacja, automatyka, nawigacja, inżynieria biomedyczna, czy sejsmologia. Współcześnie dąży się do jak najlepszego oddania rzeczywistości, rzeczywistości która jest zmienna i do której trzeba się przystosować, rzeczywistości która jest skomplikowana, a jej szczegółowy opis wymaga ogromnych ilości danych. Szybkie przetworzenie tych danych umożliwiają najnowsze komputery, posiadające centralne jednostki obliczeniowe (CPU) o coraz większej mocy. Często jednak ta moc jest niewystarczająca. Z pomocą przychodzą wydajne, graficzne jednostki obliczeniowe(gpu). Część z nich wykorzystuje opracowaną przez firmę Nvidia i wciąż rozwijaną architekturę CUDA, która sprzyja programowaniu równoległemu, tak istotnemu w przypadku obróbki dużych ilości danych. Karty graficzne z platformą CUDA zdolne są do przeprowadzania obliczeń numerycznych, poprzez użycie programistycznego języka C/C++. Z dobrymi rezultatami wykorzystuje się je w symulacjach komputerowych i różnego rodzaju praktycznych zastosowaniach, między innymi kryptografii, kompresji wideo, czy obrazowaniu w medycynie. W niniejszej pracy podjęta zostaje próba wykorzystania technologii CUDA do filtracji adaptacyjnej. Celem pracy jest implementacja algorytmów adaptacyjnych o strukturze transwersalnej na platformie CUDA i platformie CPU oraz porównanie wydajności i skuteczności obu platform w zastosowaniu do procesu filtracji adaptacyjnej. W pracy postarano się także stwierdzić, czy zasadne jest użycie kart graficznych do obliczeń związanych z filtracją adaptacyjną. W rozdziale pierwszym przybliżono pojęcie filtracji adaptacyjnej wraz z jej zastosowaniami. Uszczegółowiono także cele niniejszej pracy. W drugiej części przedstawiono podstawy teoretyczne opisujące zagadnienie filtracji adaptacyjnej z użyciem algorytmów 1

8 2 WSTĘP transwersalnych, począwszy od optymalnej filtracji Wienera, aż do blokowych filtrów adaptacyjnych. W trzecim rozdziale zawarto opis platformy CUDA, ograniczono się tu do omówienia podstawowych właściwości architektury oraz niektórych cech, wykorzystanych w dalszych implementacjach algorytmów filtracji adaptacyjnej. W ostatniej części pracy przedstawiono kolejne etapy programowania algorytmów, skupiając się na opisaniu implementacji na platformie CUDA oraz zaprezentowano uzyskane rezultaty, porównujące wydajność platform CPU i GPU.

9 Rozdział 1 Wprowadzenie 1.1 Filtracjaadaptacyjna Schemat blokowy filtra adaptacyjnego przedstawiono na Rysunku 1.1. Jest to układ o dwóch wejściach i dwóch wyjściach. Sygnałami wejściowymi są: sygnał filtrowany u(n) oraz sygnał odniesienia d(n). Sygnały wyjściowe to wynik filtracji y(n) oraz sygnał błędu e(n). Filtr o zmiennej w czasie funkcji przenoszenia ma za zadanie tak przekształcić wejściowy sygnał u(n), aby w wyniku filtracji sygnał wyjściowy y(n) jak najmniej różnił się od sygnału wzorcowego d(n), dla pewnego założonego kryterium błędu. Sygnał błędu e(n) = d(n) y(n) służy do wyznaczenia korekcji współczynników filtra. Najczęściej stosowanym kryterium błędu jest minimalizacja błędu średniokwadratowego. Dla stacjonarnych wejść otrzymywane rozwiązanie nazywane jest filtrem Wienera, który jest optymalny w sensie średniokwadratowym. W przypadku niestacjonarnych sygnałów lub otoczeń o nieznanych charakterystykach sygnałów, stosuje się filtry adaptacyjne oparte o rekursywne algorytmy, pozwalające na skuteczne działanie w sytuacjach nieodpowiednich dla filtra Wienera. Filtry adaptacyjne dzieli się na liniowe i nieliniowe. Filtr jest liniowy jeśli jego wyjście jest wyznaczane jako liniowa kombinacja dostępnych obserwacji na wejściu filtra. W innym przypadku filtr nazywany jest nieliniowym. Opracowano wiele algorytmów, współpracujących z filtrami adaptacyjnymi, a dobór odpowiedniego zależy od kilku czynników, charakteryzujących algorytm, takich jak(wedługpracy[3]): Zbieżność. Opisywana jako liczba iteracji, jakiej potrzebuje algorytm, aby dla stacjonarnych wejść zbliżyć się do rozwiązania optymalnego filtra Wienera. 3

10 4 ROZDZIAŁ 1. WPROWADZENIE FILTR ADAPTACYJNY d(n) + - e(n) u(n) H (z) y(n) Rysunek 1.1: Schemat blokowy filtra adaptacyjnego. Niedopasowanie. Wielkość określająca jak bardzo wartość błędu średniokwadratowego różni się od tej określonej przez filtr Wienera Śledzenie. Zdolność filtra adaptacyjnego do śledzenia statystyk sygnałów w niestacjonarnym środowisku. Odporność algorytmu na niewielkie zakłócenia, pochodzące od czynników wewnętrznych i zewnętrznych. Wymagania obliczeniowe. Czynnik zależny od liczby operacji arytmetycznych, niezbędnych do wykonania jednej iteracji algorytmu, a także ilości pamięci komputera potrzebnej do przechowywania danych. Struktura. Określa sposób przepływu informacji przez algorytm i wpływa na sposób implementacji filtra. Właściwości numeryczne, określające w głównej mierze odporność algorytmu na błędy kwantyzacji, wynikające ze skończonej długości słowa w cyfrowych implementacjach filtra. 1.2 Zastosowania filtrów adaptacyjnych Zdolność filtrów adaptacyjnych do zadowalającego działania w nieznanym środowisku oraz do śledzenia statystycznych cech sygnałów czyni je potężnymi narzędziami w cyfrowym przetwarzaniu sygnałów. Układy zdolne do przystosowania się, mają zdecydowaną przewagę nad tymi, które tego nie potrafią. Na Rysunku 1.2 wyróżniono cztery podstawowe zastosowania filtracji adaptacyjnej. Są one następujące:

11 1.2. ZASTOSOWANIA FILTRÓW ADAPTACYJNYCH (a) Identyfikacja 3*4,&5 6 +7)86*!" / #$"% &'&("&)*+,* *4,&5 6*+7)86* (12,, (b) Modelowanie odwrotne NCOE?P QCDRB;SQC T NCOE?P QMDRB;SQC JAKLE;ME;M H :;<=> F?@?A=?BCDEC - + V G I NCOE?P QCDRB;SQC U (c) Predykcja g`hb\i l]bxmnxmbx\ g`hb\i jmak_xlj` + e WXYZ[ c f g`hb\i o \]\^Z\_`ab` - j`ak_xlj` d (d) Usuwanie zakłóceń Rysunek 1.2: Cztery podstawowe zastosowania filtracji adaptacyjnej.

12 6 ROZDZIAŁ 1. WPROWADZENIE Identyfikacja (Rysunek 1.2a) Filtr adaptacyjny jest używany, w celu zapewnienia, zbliżonego do optymalnego, liniowego modelu nieznanego obiektu. Obiekt i filtr adaptacyjny są pobudzane tym samym sygnałem wejściowym u. Wyjściem obiektu jest sygnał odniesienia d(zwany także wzorcowym), a różnica tego sygnału z wyjściem y filtra daje w rezultacie błąd estymacji e, wykorzystywany do adaptacyjnej korekcji wag filtra. Jeśli obiekt jest dynamiczny, to jego model będzie zmienny w czasie. Modelowanie odwrotne (Rysunek 1.2b) Zadaniem filtra adaptacyjnego w tej konfiguracji jest wyznaczenie modelu odwrotnego, będącego dopasowanym(w pewnym sensie) do nieznanego obiektu. Model ma transmitancję zbliżoną do odwrotności transmitancji obiektu. Jeśli obiektem jest kanał transmisyjny, deformujący przesyłany przez nadajnik sygnał, to filtr adaptacyjny, o odwrotnej funkcji przenoszenia, przeprowadza korekcję otrzymanego sygnału. Niweluje tym samym skutki działania medium transmisyjnego. Jednak, aby wykonać taką operację, niezbędna jest wiedza odbiornika o sygnale przesyłanym przez kanał, którego właściwości mogą zmieniać się w czasie. Nadajnik wysyła więc okresowo tak zwanego pilota, czyli odpowiedni sygnał znany odbiornikowi. Predykcja (Rysunek 1.2c) Filtr adaptacyjny pełni funkcję predyktora, czyli zapewnia, zbliżoną do optymalnej, predykcję aktualnej wartości sygnału wejściowego. Aktualne próbki tego sygnału są sygnałem wzorcowym d filtra adaptacyjnego. Natomiast przeszłe wartości sygnału d podawane są na wejście filtra. W zależności od zastosowania, wyjściem konfiguracji z Rysunku 1.2c może być sygnał wyjściowy y filtra lub sygnał błędu estymacji (predykcji) e. Usuwanie zakłóceń (Rysunek 1.2d) W ostatniej klasie zastosowań, filtr adaptacyjny wykorzystuje się do usuwania nieznanych interferencji zawartych w sygnale odniesienia d, który przenosi także informację. Zadaniem filtra jest takie przekształcenie sygnału wejściowego u, aby w jak najlepszym stopniu skorelować go z interferencjami w sygnale wzorcowym. Wyjściem jest w tym przypadku sygnał błędu e, czyli sygnał odniesienia pozbawiony niepożądanych zakłóceń.

13 1.3. STRUKTURY FILTRÓW 7 wxyz p qr wxy{ z p qr wxy{z wxy{}~z p qr wxy{}~ z st sr sv suqv suqr xyz Rysunek 1.3: Filtr transwersalny. 1.3 Strukturyfiltrów Dobór struktury filtra ma znaczący wpływ na działanie algorytmu adaptacyjnego. Budowa struktury determinuje rodzaj filtra, przy czym wyróżnia się dwa podstawowe rodzaje filtrów: o skończonej odpowiedzi impulsowej(fir, ang. finite-duration impulse response) o nieskończonej odpowiedzi impulsowej(iir, ang. infinite-duration impulse response) Nierekursywny filtr typu FIR rzędu M 1 przedstawiono na Rysunku 1.3. Transmitancja tego filtra jest dana równaniem: W(z)=w 0 +w 1 z 1 +w 2 z w M 1 z M+1 (1.1) natomiast sygnał wyjściowy przyjmuje postać: y(n)= M 1 k=0 w k u(n k) (1.2) gdziew k tok-tywspółczynnikfiltra(k =0,1,...,M 1),u(n)topróbkasygnału wejściowego w chwili n, y(n) to próbka sygnału wyjściowego w chwili n. Strukturę filtra z Rysunku 1.3, opisanego równaniami(1.1) i(1.2) nazywa się strukturą transwersalną. Jest to struktura opierająca się o linię opóźniającą. Liczba elementów opóźniających(identyfikowanychprzezoperatoropóźnieniajednostkowegoz 1 ),użytych w filtrze, wyznacza długość odpowiedzi impulsowej. Określa ona także rząd filtra. Filtry o skończonej odpowiedzi impulsowej, w odróżnieniu od filtrów IIR, nie zawierają ścieżek sprzężeń zwrotnych. Ich obecność w strukturze niesie ze sobą problem

14 8 ROZDZIAŁ 1. WPROWADZENIE ƒ Ž ˆ Š ˆ Š ŽŠ Š ˆ Š ˆ Š ŽŒ Œ Ž Š Š ˆ Š ˆ Š Ž Rysunek 1.4: Struktura filtra IIR. zapewnienia stabilności. Z tego powodu algorytmy filtracji adaptacyjnej typu IIR są bardziej złożone, a co za tym idzie, rzadziej wykorzystywane w praktyce. Filtry o nieskończonej odpowiedzi impulsowej mają również pewne zalety w porównaniu z filtrami FIR. Główną z nich jest możliwość oddzielenia sygnału użytecznego od zakłóceń za pomocą filtra o mniejszym rzędzie niż rząd filtra o skończonej odpowiedzi impulsowej. Przykładową strukturę filtra IIR przedstawiono na Rysunku 1.4. Równanie różnicowe tego filtra ma formę: M M y(n)= h j u(n j)+ g j u(n k) (1.3) j=0 k=1

15 1.3. STRUKTURY FILTRÓW 9 ª «ª ª «ž š ž š ž š ž š ž š œ œ œ š œ œ œ š š š š š š Ÿ Ÿ Ÿ Ÿ Ÿ š Rysunek 1.5: Filtr drabinkowy. Natomiast jego transmitancja jest określona wzorem: W(z)= H(z) 1 G(z) (1.4) gdzie: M H(z)= h j z j (1.5) j=0 M G(z)= g k z k (1.6) k=1 Zależność(1.3) można zapisać w postaci: y(n)=w T x(n) (1.7) gdzie: w=[h 0,h 1,...,h M,g 1,g 2,...,g M ] T (1.8) x(n)=[u(n),u(n 1),...,u(n M),y(n 1),y(n 2),...,y(n M)] T (1.9) Na osobną uwagę zasługuje tak zwana struktura drabinkowa(zwana także kratową), a dokładniej filtr predykcyjny o strukturze drabinkowej. Składa się on z modułów, a ich liczbę nazywa się rzędem predykcji. Na Rysunku 1.5 pokazano filtr predykcyjny rzędu

16 10 ROZDZIAŁ 1. WPROWADZENIE M 1.StopieńmfiltrazRysunku1.5jestopisanyparąwzorów(przyzałożeniu,żedane wejściowe są zespolone i stacjonarne w szerokim sensie): f m (n)=f m 1 (n)+κ m b m 1(n 1) (1.10) b m (n)=b m 1 (n 1)+κ m f m 1 (n) (1.11) gdzie: f m (n) błądpredykcjiwprzód(ang.forwardpredictionerror), b m (n) błądpredykcjiwstecz(ang.backwardpredictionerror), κ m współczynnikodbicia(ang.reflectioncoefficient). dlam=1,2,...,m 1. Warunki początkowe są następujące: f 0 (n)=u(n) (1.12) b 0 (n)=u(n) (1.13) Jakpodanowpracy[3,str.6]dlaskorelowanejsekwencjipróbeku(n),u(n 1),..., u(n M+1)pochodzącychzestacjonarnegoprocesu,błędypredykcjiwsteczb 0,b 1 (n),..., b M 1 (n)tworząsekwencjęnieskorelowanychzmiennychlosowych.dodatkowoliniowa kombinacjabłędówpredykcjiwsteczb 0,b 1 (n),...,b M 1 (n)możebyćwykorzystanado wyznaczenia estymaty pewnego sygnału odniesienia d(n)(dolna część Rysunku 1.5). Różnica między estymatą a sygnałem d(n) daje w rezultacie błąd estymacji e(n). 1.4 Celepracy Celem pracy jest implementacja wybranych algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie CUDA i platformie CPU oraz porównanie wydajności obu platform. Wybranymi algorytmami są algorytmy z rodziny LMS. Powinny być one zaimplementowane w sposób efektywny obliczeniowo, dlatego głównym obiektem zainteresowania jest blokowy algorytm LMS opisany w rozdziale 2.5, pozwalający w najlepszym stopniu wykorzystać możliwości obliczeniowe architektury CUDA. Występujące w nim równoległe ścieżki sygnałów sprzyjają implementacji na tej platformie.

17 Rozdział 2 Podstawy teoretyczne filtracji adaptacyjnej 2.1 Filtracja optymalna- filtr Wienera Model obiektu, przedstawionego na rysunku 2.1, opisany jest równaniem różnicowym: d(n)= M 1 i=0 wi o u(n i) (2.1) gdzie: u(n) sygnał wejściowy, d(n) sygnał wyjściowy, w o i współczynnikifiltra,i=0,...,m 1.  ³ ¹º¹»³¹¼½¾ ½ ±²³ µ à - + Ä À Á Rysunek 2.1: Filtr w konfiguracji identyfikacji obiektu. 11

18 12 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE FILTRACJI ADAPTACYJNEJ Wzór(2.1) można zapisać w formie d(n)=(w o ) T u(n) (2.2) gdzie: u(n)=[u(n),...,u(n M+1)] T (2.3) Estymatorem FIR powyższego systemu jest: w o = [ w o 0,...,w o M 1] T (2.4) y(n)=w T u(n) (2.5) gdziew=[w 0,...,w M 1 ] T sąestymatamiparametrówrzeczywistegosystemu.celem jest takie wyznaczenie w aby błąd średniokwadratowy pomiędzy zmierzonym sygnałem d(n)(sygnałem odniesienia) a sygnałem wyjściowym modelu y(n) był minimalny. Kryterium błędu dane jest wzorem: J=E [ ] ( ) 2 ] e 2 (n) =E[ d(n) y(n) (2.6) gdzie E[.] oznacza wartość oczekiwaną. Podstawienie wzoru(2.5) do(2.6) daje w rezultacie: Dalsze przekształcenia: ( )] J(w)=E[ d(n) w T 2 u(n) ( )] 2 J(w) = E[ d(n) w T u(n) = (2.7) [ ] [ ] ( )] 2 = E d 2 (n) 2E d(n)w T u(n) +E[ w T u(n) = [ ] [ ] [ ] = E d 2 (n) 2w T Ed(n)u(n) +E w T u(n)u T (n)w = [ ] = E d 2 (n) 2w T p (n) [ ] du +wt E u(n)u T (n) w= [ ] = E d 2 (n) 2w T p du +w T R uu w (2.8) i wyznaczenie minimum funkcji poprzez obliczenie pochodnej wyrażenia(2.8) względem w T orazprzyrównaniejejdozera: J(w) w T = 2p du +2R uu w=0 (2.9) prowadzi do wyrażenia na optymalne wartości wag w filtra, który nosi nazwę filtra Wienera: w o =[R uu ] 1 p du (2.10)

19 2.2. OGRANICZENIA PRAKTYCZNE FILTRU WIENERA 13 gdzie: R uu macierzautokorelacjisygnałuu(n), p du wektorkorelacjiwzajemnejsygnałuwejściowegoiodniesienia. przy czym dla filtra Wienera minimalny błąd średniokwadratowy estymacji określony jest wzorem: J(w o )=J min =E [ ] d 2 (n) p T du R 1 uu p du (2.11) 2.2 Ograniczenia praktyczne filtru Wienera TeoriafiltruWieneraumożliwiaznalezienieoptymalnychwartościwagw0 o,...,wo M 1, które minimalizują średniokwadratowy błąd estymacji. Praktyczne wykorzystanie tej teoriiirównania(2.10)dlakażdejchwiliczasunpociągazasobąkłopotzpoprawną estymacją wartości oczekiwanych, co jest typowym problemem stochastycznej optymalizacji. Wynika to z faktu, że w większości przypadków funkcje rozkładu gęstości prawdopodobieństwa obserwowanych zmiennych losowych nie są znane lub też zmienne te są niestacjonarne. Aby przezwyciężyć ten problem przystosowuje się znane iteracyjne metody optymalizacji określone dla wieloargumentowych funkcji kosztu. Zadaniem tych metod(mechanizmów) jest rekurencyjne rozwiązanie równania(2.10). Mechanizmy te zapewniają właściwe przestrajanie w czasie współczynników filtra, według zależności: w k (n+1)=w k (n)+ w k (n), k=0,1,...,m 1 (2.12) Wartości wag są więc adaptacyjnie korygowane, tak aby w stanie ustalonym(po okresie adaptacji) były zbliżone, w pewnym sensie, do wartości optymalnych. Przykładowy filtr adaptacyjny o strukturze transwersalnej, którego wagi korygowane są za pomocą pewnego mechanizmu adaptacji, przedstawiono na Rysunku 2.2. Wybrane metody(algorytmy) adaptacyjne zostaną szczegółowo opisane w podrozdziałach Metodygradientowe Najczęściej stosowanymi algorytmami, które optymalizują deterministyczną funkcję kosztu (celu) są adaptacyjne algorytmy gradientowe. Rekursywny estymator ma postać:

20 14 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE FILTRACJI ADAPTACYJNEJ áéêë Å ÆÇ áéêâãë Å ÆÇ áéêâäåæë Å ÆÇ áéêâäåãë ÈÌÉÊË ÈÇÉÊË ÈÍÆÎÉÊË ÈÍÆÇÉÊË èéêë çéêë ê ê ê ê - + ÏÐÑÒÓÔÕÖ ØÙÚÐØÑÛÕ ÜÓÝ ÞÕßàÚÓ ééêë Rysunek 2.2: Transwersalny filtr adaptacyjny. w(n+1)=w(n)+µv(n) (2.13) gdzie: w(n+1) wektorwspółczynnikówfiltrawchwilin+1, w(n) wektor współczynników filtra w chwili n, µ współczynnik skalujący, v(n) kierunek modyfikacji. We wzorze(2.13) pokazano uaktualnianie parametrów filtra w kierunku v(n). Wraz ze współczynnikiem skalującym µ powinien on zostać tak dobrany, aby zapewnić zbieżność parametróww(n)dowartościoptymalnychw o określonychprzezfiltrwienera(rozdział 2.1). Najczęstszym wyborem v(n) jest kierunek przeciwny do określonego przez gradient z funkcji celu J(.). Na rysunku 2.3 przedstawiono przykładową powierzchnię błęduśredniokwadratowegofunkcjij=e[e 2 (n)]=e[(d(n) y(n)) 2 ]dlafiltraodwóch rzeczywistychwspółczynnikachw 0 iw 1.Minimumtejpowierzchniwyznaczaoptymalny wektorwagfiltrawieneraw o =[w0 o,wo 1 ]T,spełniającyrównanie(2.10) Algorytmy najszybszego spadku W algorytmach najszybszego spadku uaktualnianie parametrów filtra przeprowadzane jest z wykorzystaniem gradientu funkcji kosztu w następujący sposób: w(n+1)=w(n) 1 2 µ J( w(n) ) (2.14)

21 2.3. METODY GRADIENTOWE 15 gdzieµtowspółczynnikskalujący,natomiast J ( w(n) ) towektorgradientufunkcji kosztu równy: J ( w(n) ) = 2p du +2R uu w(n) (2.15) WzastosowaniachalgorytmunajszybszegospadkuzakładasięmacierzautokorelacjiR uu iwektorkorelacjiwzajemnejp du sąznane,czylimożnawyznaczyćwektorgradientu J ( w(n) ).Wektorwagw(n)jestwięckorygowanyzgodniezformułą: w(n+1)=w(n)+µ[p du R uu w(n)] (2.16) Porównując powyższą zależność z równaniem(2.10) na optymalne wagi filtra Wienera, można zauważyć, że algorytm najszybszego spadku pomaga uniknąć kosztownego obliczeniowo odwracania macierzy R. W ogólności współczynnik µ we wzorze(2.16) jest zmienny w czasie. Dodatkowo wprowadza się dodatnio określoną macierz wagową W(n) poprawiającą zbieżność(szybkość adaptacji) algorytmu. Otrzymuje się zatem: w(n+1)=w(n) 1 2 µ(n)w(n) J( w(n) ) (2.17) J(w 0,w 1 ) w w 1 Rysunek 2.3: Przykładowa powierzchnia błędu średniokwadratowego.

22 16 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE FILTRACJI ADAPTACYJNEJ Warunek zbieżności Aby zapewnić zbieżność algorytmu najszybszego spadku do wartości optymalnych, oprócz właściwego doboru kierunku korekcji wag filtra, również parametr µ musi spełniać następujący warunek: 1 µλ k <1 (2.18) gdzieλ k,k=1,2,...,m,towartościwłasnemacierzyautokorelacjir uu.warunek(2.18) jest równoważny poniższemu ograniczeniu wartości parametru µ: 0<µ< 2 λ max (2.19) gdzieλ max oznaczanajwiększąwartośćwłasnąmacierzyautokorelacjisygnałuwejściowego u(n). Dodatkowo jak napisano w pracy[10, str. 386], szybkość zbieżności adaptacji współczynników filtra do wartości optymalnych jest zależna od rozrzutu wartości własnychmacierzyr uu.zmniejszenietegorozrzutuskutkujepoprawieniemzbieżności. to: Jeśli parametr µ jest dobrany według ograniczeń(2.19), czyli algorytm jest zbieżny, lim n J(w(n))=J(wo )=J min (2.20) a zatem, błąd średniokwadratowy dla nieskończonej liczby iteracji, dąży do wartości minimalnej, wyznaczonej przez filtr Wienera AlgorytmyNewtona-Raphsona W algorytmach Newtona-Raphsona za macierz wagową W(n) przyjmuje się odwrotność hesjanufunkcjiceluj ( w(n) ) wn-tejchwiliczasowej: W(n)= [ 2 J ( w(n) )] 1 (2.21) przy czym dla funkcji kosztu opisanej równaniem(2.8) hesjan funkcji celu równy jest macierzy autokorelacji sygnału wejściowego u: [ 2 J ( w(n) )] 1 =R 1 uu (2.22) Zatem równanie rekursji: w(n+1)=w(n) 1 2 µ(n) [ 2 J ( w(n) )] 1 J ( w(n) ) (2.23) redukuje się do: w(n+1)=w(n) 1 2 µ(n)r 1 uu[p du R uu w(n)] (2.24)

23 2.4. ADAPTACYJNE ALGORYTMY GRADIENTU STOCHASTYCZNEGO AlgorytmyQuasi-Newtona W przypadkach gdy wyznaczenie wartości hesjanu jest trudne, wykorzystywana jest jego aproksymacja A(n): w(n+1)=w(n) 1 2 µ(n)[a(n)] 1 J ( w(n) ) (2.25) Jaknapisanowpracy[2],jednązmożliwościaproksymacjimacierzyautokorelacjiR uu (hesjanu funkcji kosztu), jest aproksymacja Toeplitza T(n), estymowana w następujący sposób: [ ] A(n)=T(n)= t i j (n) i=0,1,...,m 1, j=0,1,...,m 1 t i (n)=λt i (n 1)+u(n)u(n i), i=0,1,...,m 1 (2.26) dlaparametruλzzakresu0<λ<1.wtakimprzypadkuoptymalnyparametrµznajduje się według wzoru: µ(n)= 1 u T (n)t 1 (n)u(n) (2.27) 2.4 Adaptacyjne algorytmy gradientu stochastycznego Z powodu braku statystycznych informacji, czyli niedostępności w praktyce wartości macierzyautokorelacjiriwektorakorelacjiwzajemnejp,gradientfunkcjicelu J ( w(n) ) nie może być dokładnie wyznaczony. Metoda najszybszego spadku jest więc często niemożliwa do zrealizowania. Algorytmy gradientu stochastycznego radzą sobie z tym problemem zastępując wektor gradientu jego aproksymacją. Niech minimalizowana funkcja kosztu wynosi: J=e 2 (n) (2.28) Filtr adaptacyjny ma zatem za zadanie minimalizować chwilową a nie oczekiwaną wartość błędu. Jak napisano w pracy[7] jest to równoznaczne z zastąpieniem w równaniu(2.16) elementów macierzy autokorelacji R oraz składowych wektora korelacji wzajemnej p ich obserwacjami, zgodnie z symbolicznym zapisem: R uu =E[u(n)u T (n)] u(n)u T (n) (2.29) p du =E[d(n)u(n)] d(n)u(n) (2.30)

24 18 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE FILTRACJI ADAPTACYJNEJ Zatem: [ ] ŵ(n+1) = ŵ(n)+µ d(n)u(n) u(n)u T (n)ŵ(n) [ ] = ŵ(n)+µ d(n) ŵ T (n)u(n) u(n)= [ ] = ŵ(n)+µ d(n) y(n) u(n)= = ŵ(n) + µe(n)u(n) (2.31) = gdzie e(n) = d(n) y(n) jest sygnałem błędu w chwili n. Uwzględniając więc uogólnienia z równania(2.17), zależność(2.31) przyjmuje postać wzoru(2.32) charakteryzującą szeroką grupę filtrów z rodziny gradientu stochastycznego: ŵ(n + 1) = ŵ(n) µ(n)w(n)e(n)u(n) (2.32) gdzie: W(n) macierzwagowaowymiarachmxm, µ(n) współczynnik skalujący zależny od czasu, e(n) sygnałbłęduwchwilin AlgorytmLMS Filtr LMS(ang. Least-Mean-Square) otrzymywany jest po uniezależnieniu współczynnika skalującego od czasu(µ(n) = µ) oraz po wprowadzeniu identycznościowej macierzy wagowej W(n) = I. Wzór(2.32) przyjmuje postać: ŵ(n+1)=ŵ(n) µe(n)u(n) (2.33) Warunek zbieżności Algorytm LMS jest zbieżny w sensie średnim wtedy i tylko wtedy gdy parametr µ spełnia warunek: 0<µ< 2 λ max (2.34) gdzieλ max jestnajwiększąwartościąwłasnąmacierzyautokorelacji.wpraktycewtypowychzastosowaniachalgorytmulmswartośćλ max niejestznana,więcwykorzystuje się jej estymatę w postaci śladu macierzy, otrzymując: 0<µ< 2 tr(r) co w wyniku dalszych uproszczeń i przekształceń daje zależność: (2.35) 0<µ< M 1 k=0 2 (2.36) [ E u(n k) 2]

25 2.4. ADAPTACYJNE ALGORYTMY GRADIENTU STOCHASTYCZNEGO 19 Stabilność algorytmu LMS w sensie średniokwadratowym jest zapewniona, gdy dodatni parametr µ spełnia warunek: M k=1 µλ k 2 µλ k <1 (2.37) Powyższe ograniczenie jest silniejsze niż warunek zbieżności średniej przedstawiony we wzorze(2.34), tym samym parametr µ spełniający zależność(2.37) oprócz stabilności w sensie średniokwadratowym gwarantuje również zbieżność średnią. Niedopasowanie Wykorzystanie iloczynu e(n)u(n k) jako estymaty k-tego elementu wektora gradientu J(n), czyli pominięcie operatora wartości oczekiwanej w zależnościach(2.29) i(2.30), skutkuje występowaniem w algorytmie LMS tak zwanego szumu gradientowego(ang. gradient noise). W wyniku tego estymata wektora wag ŵ(n) zbliża się jedynie do optymalnychwartościw o,abłądśredniokwadratowywstanieustalonymosiągawartośćj, którajestwiększaodwartościminimalnejj min,otrzymywanejwalgorytmienajszybszego spadku(por. równanie(2.20)) i określonej przez filtr Wienera(por. równanie(2.11)). Zatem: Dodatkowo poniższa różnica: lim J(ŵ(n))=J >J(w o )=J min (2.38) n J ex (n)=j(ŵ(n)) J min (2.39) określa tak zwaną nadwyżkę błędu średniokwadratowego(ang. excess mean-sqared error). Wartość tej nadwyżki w stanie ustalonym jest mniejsza od minimalnego błędu średniokwadratowegoj min,gdyparametrµspełniawarunek: M k=1 2λ k 2 µλ k <1 (2.40) gdzieλ k,k=1,2,...,m,towartościwłasnemacierzyr.jeślialgorytmlmsjestzbieżny w sensie średniokwadratowym, czyli spełniona jest zależność(2.34), w stanie ustalonym nadwyżka błędu przyjmuje wartość: J ex ( )=J J min =J min M k=1 µλ k 2 µλ k (2.41) NiedopasowaniemnazywanyjeststosuneknadwyżkibłęduwstanieustalonymJ ex ( ) dowartościminimalnejtegobłęduj min : M= J ex( ) J min = J J min J min (2.42)

26 20 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE FILTRACJI ADAPTACYJNEJ Niedopasowanie M wskazuje jak daleko jest ustalone rozwiązanie algorytmu LMS od optymalnego rozwiązania Wienera. Wartość niedopasowania, która jest mniejsza od jedności, jeśli parametr µ spełnia warunek(2.40), określa wzór: AlgorytmNLMS M= M k=1 µλ k 2 µλ k (2.43) Unormowany algorytm LMS(NLMS, ang. Normalized Least-Mean-Square) otrzymywany jest w wyniku uzależnienia w równaniu(2.33) parametru µ od czasu w następujący sposób: µ µ(n)= γ+u T (n)u(n) = µ M 1 γ+ u 2 (n k) k=0 (2.44) gdziestałaadaptacjiµspełniazależność:0<µ<2itymsamymzapewniazbieżność algorytmu NLMS w sensie średniokwadratowym. W mianowniku wyrażenia(2.44) wprowadza się niewielki parametr γ > 0, zapobiegający występowaniu problemów numerycznych, w przypadku gdy próbka sygnału wejściowego u(n) jest mała i występuje dzielenie przez niewielką wartość. Zmiany wprowadzone w algorytmie NLMS, w porównaniu do podstawowej wersji algorytmu gradientu stochastycznego(lms), powodują poprawę zbieżności zarówno dla nieskorelowanych jak i skorelowanych danych wejściowych Algorytm NLMS z normalizacją mocy Równanie korekcji wag filtra adaptacyjnego w algorytmie NLMS z normalizacją mocy przyjmuje formę: przy czym: ŵ(n+1)=ŵ(n) µ e(n)u(n) (2.45) γ+p(n) p(n)=βp(n 1)+(1 β) u(n) 2, p( 1)=0 (2.46) gdzieβjestdodatniąwartościązzakresu0<β 1,decydującąopamięcipowyższej rekursji, a zmienna p(n) jest interpretowana jako estymata mocy sygnału wejściowego u(n) AlgorytmLeaky-LMS Funkcja kosztu algorytmu Leaky-LMS zdefiniowana jest następującym równaniem: J(ŵ(n))=e 2 (n)+αŵ T (n)ŵ(n) (2.47)

27 2.5. BLOKOWE FILTRY ADAPTACYJNE 21 gdzieα>0,towspółczynnikprzecieku(ang.leakagefactor).jakpodajesayedwpracy[9] w algorytmie LMS może występować potencjalny problem niestabilności, gdy macierz korelacji R sygnału wejściowego jest jednostkowa lub bliska macierzy jednostkowej. Jeśli takiprzypadekmamiejsce,toestymatywagŵ 0,...,ŵ M 1,mogądryfowaćirosnąć w sposób nieograniczony. Algorytm Leaky-LMS ogranicza ten wzrost, wprowadzając współczynnik(1 µα) w równaniu uaktualniania współczynników filtra adaptacyjnego. W rezultacie otrzymuje się: ŵ(n+1)=(1 µα)ŵ(n) µe(n)u(n) (2.48) Jeśli α = 0, to algorytm Leaky-LMS przyjmuje postać standardowego algorytmu LMS opisanego w podrozdziale Blokowe filtry adaptacyjne Jeśli w dziedzinie czasu użyje się algorytmu LMS wymagającego dużej ilości pamięci, można zaobserwować znaczący wzrost w złożoności obliczeniowej. Jak podaje Haykin wpracy[3,str.446],istniejądwasposobynaradzeniesobieztymproblemem: 1. Wybór algorytmu o nieskończonej odpowiedzi impulsowej(iir), co wymaga także zapewnienia jego stabilności. 2. Filtracja adaptacyjna w dziedzinie częstotliwości łącząca dwie uzupełniające się metody stosowane w cyfrowym przetwarzaniu sygnałów: blokowa implementacja filtra FIR, pozwalająca na skuteczne wykorzystanie równoległego przetwarzania, co skutkuje przyspieszeniem wykonywanych obliczeń algorytmy szybkiej transformaty Fouriera(FFT, ang. Fast Fourier Transform), usprawniające wykonywanie splotów, co pozwala w efektywny sposób przeprowadzać adaptację parametrów filtra w dziedzinie częstotliwości Powyższe podejście nazywane jest blokowym algorytmem LMS(BLMS) i umożliwia zastosowanie filtrów o skończonej odpowiedzi impulsowej, o wielu współczynnikach, w sposób efektywny obliczeniowo. Filtry blokowe obniżają koszt obliczeniowy, jednocześnie poprawiając szybkość zbieżności algorytmu. Wynika to z faktu, iż dane przetwarzane są na zasadzie blok po bloku, zamiast próbka po próbce. Jednakże obniżenie liczby obliczeń i polepszenie zbieżności niesie ze sobą wady. W implementacjach blokowych pojawia się problem opóźnienia

28 22 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE FILTRACJI ADAPTACYJNEJ òô ó øõ ó øõ ëì ëì ííî ñò ô õò ô ðñòóô ðõòóô ñò ô õò ô ïííî ù ì ù ì ù ì ó øõ ú ó øõ ú ò ìô ó øõ ëì ö øõò ô ðö øõòóô ö øõò ô üýþÿ ûì Rysunek 2.4: Przykładowa implementacja filtra o strukturze blokowej. ûì #$%&' #$%&()' #$%&(*' #$%&(+,-./' #$%&(+,-.)'!! " " " " 0$%&' Rysunek2.5:FiltrtranswersalnyW k (z).elementzespołufiltrówzrysunku2.4. w ścieżce sygnału. Jest to rezultatem konieczności zebrania bloków danych przed ich dalszym przetwarzaniem Strukturablokowa W filtrze blokowym, którego przykładowa implementacja została przedstawiona na Rysunku 2.4, sygnał wejściowy u(i) jest dzielony na bloki o długości B, przy pomocy przetwornika szeregowo-równoległego S/P(ang. serial-to-parallel converter). Sposób przetwarzania S/P zostanie opisany w kolejnym podrozdziale. Pojedynczy blok danych wejściowych(dane wyjściowe przetwornika) ma postać: u(nb+b 1) u B (n)=. (2.49) u(nb+1) u(nb)

29 2.5. BLOKOWE FILTRY ADAPTACYJNE 23 Przetwornik S/P generuje dwa bloki o długości B. Na jego wyjściu otrzymywany jest zatem wektor: u 2B (n)= u B (n) (2.50) u B (n 1) Należy zauważyć, że: u 2B (n+1)= u B(n+1) u B (n) (2.51) czyli jeden blok danych wykorzystywany jest w dwóch kolejnych iteracjach. Operacja tanazywanajestprocedurąoverlap-saveioznacza,żekolejneblokiwejścioweu 2B (n) nakładają się na siebie(overlap) i tylko połowa każdego bloku jest zapisywana(save). Wewzorach(2.50)i(2.51)wspólnymblokiemjestwektoru B (n). Po zebraniu kolejnego bloku danych wykonywana jest szybka transformata Fouriera, którejwynikiemjestwektordanychpodawanychnawejściazespołupodfiltróww k (z), k=0,1,...,2b 1,przyczymkażdyznichposiadastrukturętranswersalnąopisaną w rozdziale 1.3 i pokazaną na Rysunku 2.5. Otrzymuje się zatem: u 2B (n)= u 0 (n) u 1 (n). u 2B 1 (n) =FFT u B (n) u B (n 1) (2.52) gdzie FFT[] oznacza szybką transformatę Fouriera. OdpowiadającypodfiltrowiW k (z)zrysunku2.5,wektorregresjimapostać: u k(n)= [u k(n) u k(n 1)... u k(n M ] B +1) (2.53) natomiastjegowektorwagw k (n)jestdanywformie: w k = w k,0 w k,1. (2.54) w k,m/b 1 M/B 1 Wprzypadku,gdydługośćBblokudanychjestrównadługościMfiltra,każdyzpodfiltrówW k (z),k=0,1,...,2b 1,posiadatylkojedenwspółczynnikw k,0.

30 24 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE FILTRACJI ADAPTACYJNEJ Wektoryregresjiu k (n)dlak=0,1,...,2b 1,opisanezależnością(2.53)można zapisać w postaci diagonalnej macierzy U(n): U(n)= u 0 (n) u 1 (n)... u 2B 1 (n) 2B 2M (2.55) natomiastodpowiadającewspółczynnikipodfiltróww k dlak=0,1,...,2b 1,wformie wektora w, skupiającego wszystkie wagi filtra blokowego: w= w 0 w 1. w 2B 1 2M 1 Wektory 2B (n)nawyjściuzespołufiltrówjestrówny: (2.56) y 2B (n)= y 0 (n) y 1 (n). y 2B 1 (n) = U(n)w (2.57) Stąd, stosując metodę overlap-save do liniowego splotu otrzymuje się wektor sygnału wyjściowegoy B (n)danywzorem: y B (n)=[i B 0 B B ]IFFT[U(n)w] (2.58) gdzieifft[]oznaczaodwrotnąszybkątransformatęfouriera.dziękimacierzy[i B 0 B B ] odrzuconych zostaje ostatnich B wyników odwrotnej transformacji. Wektor wyjściowy y B (n)maformę: y(nb+b 1) y B (n)=. (2.59) y(nb+1) y(nb) i na jego podstawie, przy pomocy przetwornika równoległo-szeregowego P/S(ang. parallelto-serial converter), buduje się sygnał wyjściowy y(i).

31 2.5. BLOKOWE FILTRY ADAPTACYJNE Decymacja i interpolacja Jednym ze sposobów zaimplementowania przetwarzania S/P i P/S jest wykorzystanie decymatorów i interpolatorów, jak to zostało pokazane w strukturze z Rysunku 2.4. Niech B oznacza decymator rzędu B, przedstawiony na Rysunku 2.6, w którym z(n) zdefiniowane jest w następujący sposób: z(n)=u(nb), n=0,1,2,... (2.60) Rysunek 2.6: Decymator rzędu B. Sekwencja wyjściowa z(n) decymatora jest więc uzyskiwana, poprzez zachowywanie jednej próbki na B próbek wejściowych. Wyjściem decymatora jest zatem sygnał wejściowy u(i) o zmniejszonej częstotliwości próbkowania. Indeks n używany jest dla sygnału o niższej częstotliwości próbkowania, podczas gdy indeks i dla sygnałów o wyższej częstotliwości próbkowania. Wykorzystując zestaw decymatorów, jako przetwornik S/P, możliwe jest uformowanie(po każdych B próbkach), na podstawie sygnału u(i), wektora opisanego równaniem(2.50). Wsposóbpodobnydokonstruowaniablokuu B (n)przypomocydecymatorów,można odzyskaćsygnałwyjściowyy(i)zwektoray B (n),używającdotegoceluinterpolatory. Niech B oznacza interpolator rzędu B, przedstawiony na Rysunku 2.7, w którym y(i) opisuje zależność: z( i B y(i)= ) gdyi/bjestcałkowite 0 w pozostałych przypadkach (2.61) 9:;< Rysunek 2.7: Interpolator rzędu B. Wstawiając(B 1) zer między próbki wejściowe, uzyskuje się więc wyjście interpolatora. W rezultacie częstotliwość próbkowania sygnału wyjściowego jest taka sama, jak sygnału na wejściu decymatora. Dodatkowo zastosowanie B decymatorów jako przetwornika P/S jak na Rysunku 2.4, wprowadza opóźnienie w ścieżce sygnału równe(b 1) próbek.

32 26 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE FILTRACJI ADAPTACYJNEJ jiik Q OL Q OL AB AB Q OL AB eiik Q OL Q OL AB AB efhijk eflijk GHIJK GLIJK gfhijk gflijk F - F - P B P B Q OL F Q OL AB CCD efmnolijk GMNOLIJK gfmnolijk ECCD VWXYZ[\]^\ _ `abcd F - P B Q OL hiikblmk F RB RB hfhijk hflijk CCD hfmnolijk B STU Rysunek 2.8: Blokowy filtr adaptacyjny.[9, str. 443] RB Filtradaptacyjny Implementacja blokowego filtra adaptacyjnego przedstawiona została na Rysunku 2.8. Wektorsygnałubłęduwdziedzinieczasue B (n)jestróżnicąsygnałuodniesieniaoraz sygnałuwyjściowego,zapisanychwformieblokówd B (n)iy B (n)odługościb: e B (n)=d B (n) y B (n) (2.62) gdzied B (n)przyjmujepostaćwektora: d B (n)= d(nb+b 1). d(nb+1) d(nb) (2.63)

33 2.6. ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW 27 Korekcja współczynników filtra przebiega według wzoru: w(n+1)=w(n)+µu H (n)e 2B(n) (2.64) gdziemacierzu(n)opisanajestwzorem(2.55),awektorsygnałubłędue 2B (n)wdziedzinie częstotliwości jest następujący: e 0 (n) e 2B (n)= e 1 (n) =FFT e B(n). 0 B 2B 1 e 2B 1 (n) (2.65) Wykorzystując wzory(2.55, 2.56, 2.64, 2.65) wyznaczyć można poniższą zależność(2.66), na podstawie której aktualizowany jest wektor wag k-tego podfiltra: w k (n+1)=w k (n)+µ[u k (n)]h e k (n), k=0,1,...,2b 1 (2.66) Normalizacjamocy Zazwyczaj wykorzystywana jest implementacja filtra blokowego z korekcją współczynników według algorytmu typu NLMS z normalizacją mocy. Równanie(2.66) zastępuje się wówczas zależnością: w k (n+1)=w k (n)+ µ λ k (n) [u k (n)]h e k (n), k=0,1,...,2b 1 (2.67) gdzieλ k (n)wyznaczanejestnapodstawiewzoru: λ k (n)=βλ k (n 1)+(1 β) u k(n) 2, k=0,1,...,2b 1 (2.68) zwarunkiempoczątkowymλ k ( 1)=ǫ,gdzieβjeststałązzakresu0 β<1,nazywaną parametrem zapominania(ang. forgetting factor). Parametr ten decyduje o efektywnej pamięci procesu opisanego we wzorze(2.68). Użycie normalizacji mocy poprawia zbieżność algorytmu. Jak napisano w pracy[9] dzieje się tak, ponieważ widmo sekwencji próbeku k (n)nawejściachwszystkichpodpasmowychfiltrówjestwprzybliżeniupłaskie.wówczas,λ k (n)zapewniaestymatymocywejściowychdlakażdegozpodfiltrów, a normalizacja według nich pomaga normalizować moce sygnału w każdym z podpasm. 2.6 Złożoność obliczeniowa algorytmów Porównanie złożoności obliczeniowej oparte jest na liczbie operacji arytmetycznych(na liczbach rzeczywistych) w każdej z implementacji, dla zespolonych danych wejściowych. Pominięte zostają takie czynniki jak wymagania pamięciowe poszczególnych algorytmów.

34 28 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE FILTRACJI ADAPTACYJNEJ Algorytm LMS W algorytmie LMS dla każdej próbki wejściowej przeprowadzane są następujące operacje: 1. Każda iteracja wymaga wyznaczenia próbki sygnału y(n). Niezbędne jest do tego M zespolonych mnożeń i M 1 zespolonych dodawań, co daje 4M operacji mnożenia i 4M 2 operacji dodawania na liczbach rzeczywistych. 2. Na obliczenie sygnału błędu e(n) = d(n) y(n) potrzeba jednego dodawania liczb zespolonych(dwie sumy liczb rzeczywistych). 3. Wyznaczenie iloczynu µe(n), w przypadku zespolonych danych, wymaga dwóch rzeczywistych mnożeń. 4. Iloczyn skalara µe(n) i wektora u(n) jest wynikiem M mnożeń liczb zespolonych. 5. Ostatnia operacja aktualizacji wag filtra wymaga M zespolonych dodawań. W sumie, dla zespolonych danych wejściowych, algorytm LMS wymaga 8M +2 działań mnożenia i 8M działań dodawania na liczbach rzeczywistych. Algorytm NLMS W porównaniu do algorytmu LMS, unormowany algorytm wymaga dwóch dodatkowych operacji potrzebujących w sumie: jednego dzielenia, 2M mnożeń i 2M 1 dodawań. Całkowity koszt algorytmu NLMS wynosi więc: 10M + 2 mnożeń, 10M dodawań oraz 1 dzielenie. Algorytm NLMS z normalizacją mocy Wyznaczenie estymaty mocy wejściowej, dla zespolonych danych wejściowych, w algorytmie NLMS z normalizacją mocy, potrzebuje czterech rzeczywistych mnożeń i trzech rzeczywistych dodawań. Zatem, złożoność obliczeniowa tego algorytmu jest równa następującejliczbieoperacji:8m+6mnożeń,8m+4dodawań,1dzielenie. Algorytm Leaky-LMS Wprowadzenie parametru(1 µα) w równaniu korekcji współczynników filtra, skutkuje następującym kosztem obliczeniowym algorytmu: 10M + 3 mnożeń, 8M + 1 dodawań.

35 2.6. ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW 29 Algorytm BLMS Zakładasię,żekosztK-wymiarowejtransformatyFFTwymaga K 2 log 2Kzespolonych operacji mnożenia. Cały algorytm można podzielić na 3 części: 1. Dekompozycja na podpasma sygnału wejściowego u(i) i sygnału błędu e(i) w celu utworzeniawektorówu 2B (n)ie 2B (n).kroktenwymagadwóchtransformatorozmiarze 2B dla każdego bloku B próbek. Koszt obliczeniowy jest więc równy: 1 B 22B 2 log 2(2B) = 2log 2 (2B) zespolonych operacji mnożenia na próbkę wejściową. 2. Aktualizacja wag filtrów. Wymagana jest korekcja wag 2B filtrów od długości M/B każdy przy użyciu algorytmu NLMS z normalizacją mocy, która dla filtra o długości K wymaga w przybliżeniu 2K operacji zespolonych. Łączny liczba operacji zespolonych na próbkę wynosi: 1 B 2B2M B = 4M B 3.Odwrotnatransformatawceluuzyskaniazsygnałówy k (n)sygnałuwyjściowego y(n) w dziedzinie czasu. Koszt tej operacji wynosi: mnożeń zespolonych na próbkę. 1 B Blog 2(2B) = log 2 (2B) Zatem, całkowita złożoność obliczeniowa algorytmu BLMS jest rzędu: 4M B +3log 2(2B) zespolonych operacji mnożenia na próbkę wejściową. Uwzględniając pozostałe operacje arytmetyczne, uzyskuje się następującą złożoność obliczeniową, wyrażoną w liczbie operacji na liczbach rzeczywistych, przypadającą na pojedyncząpróbkęwejściową:12log 2 (2B)+20 M B +8mnożeń,6log 2(2B)+12 M B +8 dodawań, 2 dzieleń. Porównanie W Tabeli 2.1 przedstawione zostało zbiorcze porównanie złożoności obliczeniowej algorytmów, według liczby operacji na liczbach rzeczywistych, dla zespolonych danych wejściowych. W Tabeli 2.2 pokazano liczbę operacji wykonywanych przez każdy algorytm dla

36 30 ROZDZIAŁ 2. PODSTAWY TEORETYCZNE FILTRACJI ADAPTACYJNEJ Algorytm + \ LMS 8M+2 8M 0 NLMS 10M M 1 NLMSznormalizacjąmocy 8M+6 8M+4 1 Leaky-LMS 10M+3 8M+1 0 BLMS 12log 2 (2B)+20 M B +8 6log 2(2B)+12 M B +8 2 Tablica 2.1: Złożoność obliczeniowa algorytmów według liczby operacji na liczbach rzeczywistych dla zespolonych danych wejściowych, przypadających na jedną próbkę Algorytm + \ LMS NLMS NLMSznormalizacjąmocy Leaky-LMS BLMS Tablica 2.2: Złożoność obliczeniowa algorytmów według liczby operacji, przypadających na jedną próbkę, na liczbach rzeczywistych dla zespolonych danych wejściowych. Długość filtram=1024.długośćblokub=512. konkretnej implementacji filtra. Przyjęto długość filtra M = 1024 oraz długość bloku danych w implementacji blokowej B = 512. Algorytm BLMS cechuje się znacząco mniejszą złożonością obliczeniową, przypadającą na pojedynczą próbkę wejściową, od algorytmów działających na zasadzie próbka-po-próbce. Jego dodatkowa zaleta w postaci równoległych ścieżek sygnału(patrz Rysunek 2.8), pozwala przypuszczać, iż implementacja tego algorytmu filtracji adaptacyjnej na platformie CUDA, będzie efektywna obliczeniowo.

37 Rozdział 3 Opis platformy CUDA 3.1 Wprowadzenie CUDA(ang. Compute Unified Device Architecture) to opracowana przez firmę NVI- DIA, równoległa architektura obliczeniowa, oparta o wielordzeniowe układy GPU(ang. graphics processing unit - jednostka przetwarzania graficznego), zapewniające wzrost wydajności obliczeń dzięki wykorzystaniu mocy kart graficznych. Ewolucja technologii obliczeniowych od centralnego przetwarzania na procesorach CPU(ang. central processing unit- centralna jednostka obliczeniowa) do przetwarzania równoległego na układach CPU i GPU, skutkuje wydajniejszymi rozwiązaniami problemów numerycznych niż w przypadku sekwencyjnych obliczeń. W rozdziale tym, w odniesieniu do karty graficznej, zamiennie będą stosowane pojęcia: GPU, jednostka graficzna, urządzenie. Omówione zostaną podstawowe właściwości architektury CUDA oraz niektóre cechy, wykorzystane w implementacjach algorytmów filtracji adaptacyjnej. 3.2 Skalowalnośćmodelu Ważną cechą architektury CUDA jest jej model programowania, pozwalający na skalowanie stopnia zrównoleglenia, w celu obsługi zarówno małej jak i dużej liczby rdzeni procesorów graficznych. Taka automatyczna skalowalność jest dostępna dzięki hierarchii i podziałowi modelu na coraz mniejsze części. Siatka jest podzielona na bloki, a bloki podzielone są na wątki. Każdy blok wątków może zostać rozplanowany, jednocześnie lub sekwencyjnie, na jakimkolwiek z dostępnych rdzeni karty graficznej, w dowolnej kolejności. Dzięki temu skompilowany program może zostać uruchomiony na dowolnej liczbie rdzeni, co zostało 31

38 32 ROZDZIAŁ 3. OPIS PLATFORMY CUDA Wielowątkowy program CUDA Blok 0 Blok 1 Blok 2 Blok 3 Blok 4 Blok 5 Blok 6 Blok 7 GPU z dwoma rdzeniami GPU z czterema rdzeniami Rdzeń 0 Rdzeń 1 Rdzeń 0 Rdzeń 1 Rdzeń 2 Rdzeń 3 Blok 0 Blok 1 Blok 0 Blok 1 Blok 2 Blok 3 Blok 2 Blok 3 Blok 4 Blok 5 Blok 6 Blok 7 Blok 4 Blok 5 Blok 6 Blok 7 Rysunek 3.1: Skalowalność programu CUDA.[5, str. 5] pokazane na Rysunku 3.1. Wielowątkowy program dzielony jest na bloki wątków, które są wykonywane niezależnie od siebie. W rezultacie karta graficzna z większą liczbą rdzeni wykona program szybciej niż karta, posiadająca mniej jednostek obliczeniowych. Dzięki skalowalności modelu programowania, programista nie musi znać docelowej liczby procesorów graficznych. Taka informacja niezbędna jest jedynie dla systemu, na którym wykonywany jest program, odpowiednio skalowany przez sterownik karty. 3.3 Modelprogramowania FunkcjeGPU Funkcja GPU(funkcja urządzenia), czyli funkcja wykonywana na karcie graficznej to tak zwany kernel. Funkcje urządzenia można definiować dzięki rozszerzeniu języka C do językacudacisąonewykonywanenrazyrównolegleprzeznwątkówcuda,gdzie N to pewna dodatnia wartość Każdy wątek wykonujący funkcję, posiada unikalny numer identyfikacyjny, dostępny z poziomu funkcji poprzez wbudowaną zmienną threadidx. Kernele wywoływane są w charakterystyczny sposób, z użyciem składni języka CUDA C,

39 3.3. MODEL PROGRAMOWANIA 33 Siatka Blok (0, 0) Blok (1, 0) Blok (2, 0) Blok (0, 1) Blok (1, 1) Blok (2, 1) Blok (1, 1) nopqr stu tv nopqr swu tv nopqr sxu tv nopqr syu tv nopqr stu wv nopqr swu wv nopqr sxu wv nopqr syu wv nopqr stu xv nopqr swu xv nopqr sxu xv nopqr syu xv Rysunek 3.2: Siatka bloków.[5, str. 9] która wymaga podania w ilu blokach i ilu wątkach w każdym bloku, uruchomiona będzie funkcja. Wywołanie kernela o trzech parametrach wejściowych a, b, c, może wyglądać następująco: f_kernel<<<liczba_blokow, liczba_watkow>>>(a, b, c); Listing 3.1: Przykładowe wywołanie funkcji typu kernel Powyższe wywołanie spowoduje uruchomienie funkcji f kernel w wielu kopiach, które mogą wykonywać swoje obliczenia równolegle. Liczba kopii tej funkcji jest równa iloczynowi(liczba blokow*liczba watkow) WątkiCUDA Liczba wątków w bloku jest ograniczona, ponieważ wszystkie z jednego bloku obsługiwane są przez ten sam rdzeń oraz współdzielą ograniczone zasoby pamięci na tym rdzeniu. Ograniczenia te zostały opisane w punkcie 3.4. Pojedyncza funkcja urządzenia może być wykonywana przez wiele jednakowych bloków, więc całkowita liczba wątków równa jest

40 34 ROZDZIAŁ 3. OPIS PLATFORMY CUDA liczbie wątków w bloku razy liczba bloków. Zbiór bloków nazywany jest siatką bloków, którą pokazano na Rysunku 3.2. Liczba wykorzystywanych bloków jest zazwyczaj podyktowana ilością przetwarzanych danych lub liczbą procesorów w systemie. Każdy blok wątków wewnątrz siatki może być zidentyfikowany dzięki zmiennej blockidx. Wymagane jest, aby bloki wykonywane były niezależnie od siebie, czyli musi istnieć możliwość na wykonanie ich w dowolnej kolejności, równolegle bądź szeregowo. Taki warunek zapewnia automatyczne skalowanie kodu programu według liczby procesorów graficznych, jak to zostało przedstawione na Rysunku 3.1. Wątki wewnątrz bloku mogą ze sobą współpracować dzięki dwóm mechanizmom. Pierwszym z nich jest współdzielenie danych poprzez tak zwaną pamięć wspóldzieloną (ang. shared memory). Drugim mechanizmem jest synchronizacja działań wątków, koordynująca dostęp do wspólnych obszarów pamięci Programowanieheterogeniczne Model programowania CUDA zakłada, że wątki CUDA wykonywane są na fizycznie oddzielnym urządzeniu, działającym jako koprocesor dla programu wykonywanego na platformie CUDA. Funkcje urządzenia(kernels) działają na GPU, a pozostała część programu na centralnej jednostce obliczeniowej. Dodatkowo, model programowania CUDA zakłada, że zarówno platforma CPU jak i karta graficzna posiadają własną oddzielną pamięć. W wyniku tego, przed uruchomieniem kernela, konieczne jest skopiowanie niezbędnych danych do pamięci karty graficznej. Natomiast, po wykonaniu funkcji urządzenia, wyniki znajdujące się pamięci jednostki GPU są przenoszone do pamięci RAM komputera Hierarchiapamięci Hierarchię pamięci platformy CUDA przedstawiono na Rysunku 3.3. Wątki CUDA mają dostęp do wielu obszarów pamięci. Każdy wątek posiada własną lokalną pamięć. Każdy blok wątków ma pamięć współdzieloną widoczną dla wszystkich wątków z tego bloku. Dodatkowo wszystkie wątki w każdym z bloków mają dostęp do pamięci globalnej(pamięć RAM karty graficznej). Architektura CUDA oferuje także dwa dodatkowe obszary pamięci, dostępne tylko do odczytu i widoczne dla wszystkich wątków. Są to pamięć stała, usprawniająca dostęp do często używanych danych, oraz pamięć tekstur.

41 3.4. MOŻLIWOŚCI OBLICZENIOWE 35 Wątek Pamięć lokalna Blok wątków z{ }~ z{ }~ ƒ Pamięć współdzielona z{ }~ ƒ z{ }~ ƒ ƒ Siatka bloków Blok (0, 0) Blok (1, 0) Blok (2, 0) Pamięć globalna Blok (0, 1) Blok (1, 1) Blok (2, 1) Rysunek 3.3: Hierarchia pamięci.[5, str. 11] 3.4 Możliwościobliczeniowe Każda nowa generacja procesorów NVIDIA wprowadza do kart graficznych nowe funkcje i właściwości. Powiązane z nimi możliwości obliczeniowe opisane są dwiema cyframi i określają cechy sprzętu oraz odzwierciedlają zbiór instrukcji wspieranych przez urządzenie. Od możliwości obliczeniowych karty graficznej zależy wiele parametrów jednostki GPU. Porównane zostały one w tabeli 3.1. Wyższe możliwości obliczeniowe są rozszerzeniem niższych, dzięki czemu programy zaprojektowane dla starszych kart z technologią CUDA są kompatybilne z nowszymi jednostkami. Obecnie, najbardziej zaawansowane technologicznie karty GPU posiadają możliwości obliczeniowe opisane numerem BibliotekaCUFFT Biblioteka CUFFT jest biblioteką opracowaną przez NVIDIA umożliwiającą efektywne obliczanie dyskretnej transformaty Fouriera przy pomocy algorytmu szybkiej transfor-

42 36 ROZDZIAŁ 3. OPIS PLATFORMY CUDA Możliwości obliczeniowe Właściwość x siatka 3D bloków wątków Nie Tak liczby zmiennoprzecinkowe o podwójnej precyzji Nie Tak maksymalna liczba wymiarów siatki bloków wątków 2 3 maksymalna wielkość wymiaru x, y lub z siatki bloków wątków maksymalna liczba wymiarów bloku wątków 3 maksymalna wielkość wymiaru x lub y bloku maksymalna wielkość wymiaru z bloku 64 maksymalna liczba wątków na blok rozmiar osnowy(ang. warp size) 32 maksymalna liczba bloków na multiprocesor 8 maksymalna liczba osnów na multiprocesor maksymalna liczba wątków na multiprocesor liczba 32-bitowych rejestrów na multiprocesor 8 K 16 K 32 K maksymalna ilość pamięci współdzielonej na multiprocesor 16KB 48KB liczba banków pamięci współdzielonej ilość pamięci lokalnej na wątek 16 KB 512 KB wielkość pamięci stałej 64 KB maksymalna szerokość 1-wymiarowej tekstury związanej z tablicą CUDA maksymalna szerokość 1-wymiarowej tekstury 2 27 związanej z pamięcią liniową maksymalna szerokość i liczba warstw x x2048 wymiarowej tekstury maksymalne wymiary 2-wymiarowej tekstury x x związanej z tablicą CUDA lub pamięcią liniową maksymalne wymiary i liczba warstw x8192x x16284x2048 wymiarowej tekstury maksymalne wymiary 3-wymiarowej tekstury 2048x2048x2048 związanej z tablicą CUDA maksymalne liczba tekstur związanych funkcją 128 urządzenia maksymalne liczba instrukcji na funkcją urządzenia 2miliony Tablica 3.1: Porównanie możliwości obliczeniowych maty Fouriera(FFT, ang. Fast Fourier Transform). Transformaty mogą być wyznaczane zarówno dla danych rzeczywistych, jak i zespolonych. Biblioteka CUFFT w znaczący sposób ułatwia implementację algorytmów wykorzystujących działania FFT. Nie jest więc konieczne programowanie własnych funkcji wyliczających transformaty na karcie graficznej. Biblioteka zapewnia wykonywanie równoległych obliczeń na kartach NVIDIA wspierających technologię CUDA. Rozmaite biblioteki FFT różnią się możliwościami obliczania odmiennych typów transformat. Biblioteka CUFFT ma następujące własności,

Praca dyplomowa magisterska

Praca dyplomowa magisterska Praca dyplomowa magisterska Implementacja algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie CUDA Dyplomant: Jakub Kołakowski Opiekun pracy: dr inż. Michał Meller Plan prezentacji

Bardziej szczegółowo

Implementacja algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie CUDA.

Implementacja algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie CUDA. Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Automatyka i Robotyka Praca magisterska Implementacja algorytmów filtracji adaptacyjnej o strukturze transwersalnej na platformie

Bardziej szczegółowo

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

Adaptacyjne Przetwarzanie Sygnałów. Filtracja adaptacyjna w dziedzinie częstotliwości W Filtracja adaptacyjna w dziedzinie częstotliwości Blokowy algorytm LMS (BLMS) N f n+n = f n + α x n+i e(n + i), i= N L Slide e(n + i) =d(n + i) f T n x n+i (i =,,N ) Wprowadźmy nowy indeks: n = kn (

Bardziej szczegółowo

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

Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry 1 1.1. Pojęcia podstawowe 1 1.2. Klasyfikacja sygnałów 2 1.3. Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry 1 1.1. Pojęcia podstawowe 1 1.2. Klasyfikacja sygnałów 2 1.3. Sygnały deterministyczne 4 1.3.1. Parametry 4 1.3.2. Przykłady 7 1.3.3. Sygnały

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

[d(i) y(i)] 2. Do wyprowadzenia algorytmu RLS posłuży kryterium autokorelacyjne: J n = e 2 (i) i=1. λ n i [d(i) y(i)] 2 λ (0, 1]

[d(i) y(i)] 2. Do wyprowadzenia algorytmu RLS posłuży kryterium autokorelacyjne: J n = e 2 (i) i=1. λ n i [d(i) y(i)] 2 λ (0, 1] Algorytm RLS Recursive Least Squares Ogólna postać kryterium LS: J = i e 2 (i) = i [d(i) y(i)] 2 Do wyprowadzenia algorytmu RLS posłuży kryterium autokorelacyjne: J n = e 2 (i) Zmodyfikowane kryterium

Bardziej szczegółowo

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

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż. Adam Korzeniewski - adamkorz@sound.eti.pg.gda.pl, p. 732 dr inż. Grzegorz Szwoch - greg@sound.eti.pg.gda.pl, p. 732 dr inż. Piotr Odya - piotrod@sound.eti.pg.gda.pl, p. 730 Plan przedmiotu ZPS Cele nauczania

Bardziej szczegółowo

Transformata Laplace a to przekształcenie całkowe funkcji f(t) opisane następującym wzorem:

Transformata Laplace a to przekształcenie całkowe funkcji f(t) opisane następującym wzorem: PPS 2 kartkówka 1 RÓWNANIE RÓŻNICOWE Jest to dyskretny odpowiednik równania różniczkowego. Równania różnicowe to pewne związki rekurencyjne określające w sposób niebezpośredni wartość danego wyrazu ciągu.

Bardziej szczegółowo

Technika audio część 2

Technika audio część 2 Technika audio część 2 Wykład 12 Projektowanie cyfrowych układów elektronicznych Mgr inż. Łukasz Kirchner lukasz.kirchner@cs.put.poznan.pl http://www.cs.put.poznan.pl/lkirchner Wprowadzenie do filtracji

Bardziej szczegółowo

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago Transformata Fouriera Sylwia Kołoda Magdalena Pacek Krzysztof Kolago Transformacja Fouriera rozkłada funkcję okresową na szereg funkcji okresowych tak, że uzyskana transformata podaje w jaki sposób poszczególne

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Podstawy Sztucznej Inteligencji (PSZT)

Podstawy Sztucznej Inteligencji (PSZT) Podstawy Sztucznej Inteligencji (PSZT) Paweł Wawrzyński Uczenie maszynowe Sztuczne sieci neuronowe Plan na dziś Uczenie maszynowe Problem aproksymacji funkcji Sieci neuronowe PSZT, zima 2013, wykład 12

Bardziej szczegółowo

Teoria przetwarzania A/C i C/A.

Teoria przetwarzania A/C i C/A. Teoria przetwarzania A/C i C/A. Autor: Bartłomiej Gorczyński Cyfrowe metody przetwarzania sygnałów polegają na przetworzeniu badanego sygnału analogowego w sygnał cyfrowy reprezentowany ciągiem słów binarnych

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna

Bardziej szczegółowo

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Reprezentacja

Bardziej szczegółowo

Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI)

Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI) Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 4. Filtry o skończonej odpowiedzi impulsowej (SOI) 1. Filtracja cyfrowa podstawowe

Bardziej szczegółowo

9. Dyskretna transformata Fouriera algorytm FFT

9. Dyskretna transformata Fouriera algorytm FFT Transformata Fouriera ma szerokie zastosowanie w analizie i syntezie układów i systemów elektronicznych, gdyż pozwala na połączenie dwóch sposobów przedstawiania sygnałów reprezentacji w dziedzinie czasu

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

Transformacja Fouriera i biblioteka CUFFT 3.0

Transformacja Fouriera i biblioteka CUFFT 3.0 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

Bardziej szczegółowo

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Kodowanie transformacyjne Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG Zasada Zasada podstawowa: na danych wykonujemy transformacje która: Likwiduje korelacje Skupia energię w kilku komponentach

Bardziej szczegółowo

Transformata Fouriera

Transformata Fouriera Transformata Fouriera Program wykładu 1. Wprowadzenie teoretyczne 2. Algorytm FFT 3. Zastosowanie analizy Fouriera 4. Przykłady programów Wprowadzenie teoretyczne Zespolona transformata Fouriera Jeżeli

Bardziej szczegółowo

Macierze. Rozdział Działania na macierzach

Macierze. Rozdział Działania na macierzach Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I Wojciech Kotłowski Instytut Informatyki Politechniki Poznańskiej email: imię.nazwisko@cs.put.poznan.pl pok. 2 (CW) tel. (61)665-2936 konsultacje:

Bardziej szczegółowo

Analiza obrazów - sprawozdanie nr 2

Analiza obrazów - sprawozdanie nr 2 Analiza obrazów - sprawozdanie nr 2 Filtracja obrazów Filtracja obrazu polega na obliczeniu wartości każdego z punktów obrazu na podstawie punktów z jego otoczenia. Każdy sąsiedni piksel ma wagę, która

Bardziej szczegółowo

Optymalizacja systemów

Optymalizacja systemów Optymalizacja systemów Laboratorium - problem detekcji twarzy autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, P. Klukowski Cel zadania Celem zadania jest zapoznanie się z gradientowymi algorytmami optymalizacji

Bardziej szczegółowo

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

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7 Łukasz Deńca V rok Koło Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE

Bardziej szczegółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy Informatyki Systemy sterowane przepływem argumentów Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer

Bardziej szczegółowo

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

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES) Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie

Bardziej szczegółowo

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej.

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej. Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Konstrukcje i Technologie w Aparaturze Elektronicznej Ćwiczenie nr 5 Temat: Przetwarzanie A/C. Implementacja

Bardziej szczegółowo

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Mariusz Uchroński 3 grudnia 2010 Plan prezentacji 1. Wprowadzenie 2.

Bardziej szczegółowo

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015 Analiza efektywności przetwarzania współbieżnego Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015 Źródła kosztów przetwarzania współbieżnego interakcje między procesami

Bardziej szczegółowo

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i,j) (i = 1,,n;j = 1,,m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F = R lub F = C, nazywamy macierzą (rzeczywistą, gdy F

Bardziej szczegółowo

b n y k n T s Filtr cyfrowy opisuje się również za pomocą splotu dyskretnego przedstawionego poniżej:

b n y k n T s Filtr cyfrowy opisuje się również za pomocą splotu dyskretnego przedstawionego poniżej: 1. FILTRY CYFROWE 1.1 DEFIICJA FILTRU W sytuacji, kiedy chcemy przekształcić dany sygnał, w inny sygnał niezawierający pewnych składowych np.: szumów mówi się wtedy o filtracji sygnału. Ogólnie Filtracją

Bardziej szczegółowo

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

Opis efektów kształcenia dla modułu zajęć Nazwa modułu: Teoria i przetwarzanie sygnałów Rok akademicki: 2013/2014 Kod: EEL-1-524-s Punkty ECTS: 6 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek: Elektrotechnika

Bardziej szczegółowo

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 7 Transformaty i kodowanie. Przemysław Sękalski. Przetwarzanie i transmisja danych multimedialnych Wykład 7 Transformaty i kodowanie Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS Wykład

Bardziej szczegółowo

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

Analiza szeregów czasowych: 2. Splot. Widmo mocy. Analiza szeregów czasowych: 2. Splot. Widmo mocy. P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2006/07 Splot Jedna z najważniejszych własności transformaty Fouriera jest to, że transformata

Bardziej szczegółowo

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

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki

Bardziej szczegółowo

ADAPTACYJNE PRZETWARZANIE SYGNAŁÓW LABORATORIUM. Ćwiczenie 2. Badanie algorytmów adaptacyjnych LMS i RLS

ADAPTACYJNE PRZETWARZANIE SYGNAŁÓW LABORATORIUM. Ćwiczenie 2. Badanie algorytmów adaptacyjnych LMS i RLS ADAPTACYJNE PRZETWARZANIE SYGNAŁÓW LABORATORIUM Ćwiczenie 2 Badanie algorytmów adaptacyjnych LMS i RLS 1. CEL ĆWICZENIA Celem ćwiczenia jest samodzielna implementacja przez studentów dwóch podstawowych

Bardziej szczegółowo

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

Analiza szeregów czasowych: 2. Splot. Widmo mocy. Analiza szeregów czasowych: 2. Splot. Widmo mocy. P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08 Splot Jedna z najważniejszych własności transformaty Fouriera jest to, że transformata

Bardziej szczegółowo

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

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT. WYDZIAŁ: GEOLOGII, GEOFIZYKI I OCHRONY ŚRODOWISKA KIERUNEK STUDIÓW: INFORMATYKA STOSOWANA RODZAJ STUDIÓW: STACJONARNE I STOPNIA ROK AKADEMICKI 2014/2015 WYKAZ PRZEDMIOTÓW EGZAMINACYJNYCH: I. Systemy operacyjne

Bardziej szczegółowo

WYKŁAD 9 METODY ZMIENNEJ METRYKI

WYKŁAD 9 METODY ZMIENNEJ METRYKI WYKŁAD 9 METODY ZMIENNEJ METRYKI Kierunki sprzężone. Metoda Newtona Raphsona daje dobre przybliżenie najlepszego kierunku poszukiwań, lecz jest to okupione znacznym kosztem obliczeniowym zwykle postać

Bardziej szczegółowo

Programowanie współbieżne Wykład 2. Iwona Kochańska

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

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

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline. Wstęp do sieci neuronowych, wykład 3 Warstwy, jednostka Adaline. Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 211-1-18 1 Pomysł Przykłady Zastosowanie 2

Bardziej szczegółowo

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

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20). SPIS TREŚCI ROZDZIAŁ I SYGNAŁY CYFROWE 9 1. Pojęcia wstępne Wiadomości, informacje, dane, sygnały (9). Sygnał jako nośnik informacji (11). Sygnał jako funkcja (12). Sygnał analogowy (13). Sygnał cyfrowy

Bardziej szczegółowo

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

Podstawy Automatyki. wykład 1 (26.02.2010) mgr inż. Łukasz Dworzak. Politechnika Wrocławska. Instytut Technologii Maszyn i Automatyzacji (I-24) Podstawy Automatyki wykład 1 (26.02.2010) mgr inż. Łukasz Dworzak Politechnika Wrocławska Instytut Technologii Maszyn i Automatyzacji (I-24) Laboratorium Podstaw Automatyzacji (L6) 105/2 B1 Sprawy organizacyjne

Bardziej szczegółowo

Algorytmy sztucznej inteligencji

Algorytmy sztucznej inteligencji Algorytmy sztucznej inteligencji Dynamiczne sieci neuronowe 1 Zapis macierzowy sieci neuronowych Poniżej omówione zostaną części składowe sieci neuronowych i metoda ich zapisu za pomocą macierzy. Obliczenia

Bardziej szczegółowo

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania, Przetwarzanie równoległe PROJEKT OMP i CUDA Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego przy użyciu komputera równoległego z procesorem wielordzeniowym z pamięcią

Bardziej szczegółowo

Sterowanie napędów maszyn i robotów

Sterowanie napędów maszyn i robotów Wykład 5 - Identyfikacja Instytut Automatyki i Robotyki (IAiR), Politechnika Warszawska Warszawa, 2015 Koncepcje estymacji modelu Standardowe drogi poszukiwania modeli parametrycznych M1: Analityczne określenie

Bardziej szczegółowo

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska. SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska INFORMACJE WSTĘPNE Hipotezy do uczenia się lub tworzenia

Bardziej szczegółowo

CYFROWE PRZETWARZANIE SYGNAŁÓW

CYFROWE PRZETWARZANIE SYGNAŁÓW POLITECHNIKA RZESZOWSKA im. I. Łukasiewicza WYDZIAŁ ELEKTROTECHNIKI I INFORMATYKI Katedra Metrologii i Systemów Diagnostycznych CYFROWE PRZETWARZANIE SYGNAŁÓW Analiza korelacyjna sygnałów dr hab. inż.

Bardziej szczegółowo

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności. Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Organizacja pamięci Organizacja pamięci współczesnych systemów komputerowych

Bardziej szczegółowo

Egzamin / zaliczenie na ocenę*

Egzamin / zaliczenie na ocenę* WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI Zał. nr 4 do ZW 33/01 KARTA PRZEDMIOTU Nazwa w języku polskim CYFROWE PRZETWARZANIE SYGNAŁÓW Nazwa w języku angielskim DIGITAL SIGNAL PROCESSING Kierunek studiów

Bardziej szczegółowo

Uczenie sieci typu MLP

Uczenie sieci typu MLP Uczenie sieci typu MLP Przypomnienie budowa sieci typu MLP Przypomnienie budowy neuronu Neuron ze skokową funkcją aktywacji jest zły!!! Powszechnie stosuje -> modele z sigmoidalną funkcją aktywacji - współczynnik

Bardziej szczegółowo

CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera)

CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera) I. Wprowadzenie do ćwiczenia CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera) Ogólnie termin przetwarzanie sygnałów odnosi się do nauki analizowania zmiennych w czasie procesów fizycznych.

Bardziej szczegółowo

Numeryczna algebra liniowa

Numeryczna algebra liniowa Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak podstawowe operacje na wektorach i macierzach, a także rozwiązywanie układów

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ Maciej Patan Uniwersytet Zielonogórski WSTEP Zadanie minimalizacji bez ograniczeń f(ˆx) = min x R nf(x) f : R n R funkcja ograniczona z dołu Algorytm rozwiazywania Rekurencyjny

Bardziej szczegółowo

Filtr Kalmana. Struktury i Algorytmy Sterowania Wykład 1-2. prof. dr hab. inż. Mieczysław A. Brdyś mgr inż. Tomasz Zubowicz

Filtr Kalmana. Struktury i Algorytmy Sterowania Wykład 1-2. prof. dr hab. inż. Mieczysław A. Brdyś mgr inż. Tomasz Zubowicz Filtr Kalmana Struktury i Algorytmy Sterowania Wykład 1-2 prof. dr hab. inż. Mieczysław A. Brdyś mgr inż. Tomasz Zubowicz Politechnika Gdańska, Wydział Elektortechniki i Automatyki 2013-10-09, Gdańsk Założenia

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Kompresja dźwięku w standardzie MPEG-1

Kompresja dźwięku w standardzie MPEG-1 mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 7, strona 1. Kompresja dźwięku w standardzie MPEG-1 Ogólne założenia kompresji stratnej Zjawisko maskowania psychoakustycznego Schemat blokowy

Bardziej szczegółowo

Metody Prognozowania

Metody Prognozowania Wprowadzenie Ewa Bielińska 3 października 2007 Plan 1 Wprowadzenie Czym jest prognozowanie Historia 2 Ciągi czasowe Postępowanie prognostyczne i prognozowanie Predykcja długo- i krótko-terminowa Rodzaje

Bardziej szczegółowo

Systemy. Krzysztof Patan

Systemy. Krzysztof Patan Systemy Krzysztof Patan Systemy z pamięcią System jest bez pamięci (statyczny), jeżeli dla dowolnej chwili t 0 wartość sygnału wyjściowego y(t 0 ) zależy wyłącznie od wartości sygnału wejściowego w tej

Bardziej szczegółowo

Sposoby opisu i modelowania zakłóceń kanałowych

Sposoby opisu i modelowania zakłóceń kanałowych INSTYTUT TELEKOMUNIKACJI ZAKŁAD RADIOKOMUNIKACJI Instrukcja laboratoryjna z przedmiotu Podstawy Telekomunikacji Sposoby opisu i modelowania zakłóceń kanałowych Warszawa 2010r. 1. Cel ćwiczeń: Celem ćwiczeń

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie

Bardziej szczegółowo

Podstawy OpenCL część 2

Podstawy OpenCL część 2 Podstawy OpenCL część 2 1. Napisz program dokonujący mnożenia dwóch macierzy w wersji sekwencyjnej oraz OpenCL. Porównaj czasy działania obu wersji dla różnych wielkości macierzy, np. 16 16, 128 128, 1024

Bardziej szczegółowo

Programowanie procesorów graficznych GPGPU

Programowanie procesorów graficznych GPGPU Programowanie procesorów graficznych GPGPU 1 GPGPU Historia: lata 80 te popularyzacja systemów i programów z graficznym interfejsem specjalistyczne układy do przetwarzania grafiki 2D lata 90 te standaryzacja

Bardziej szczegółowo

Analiza efektywności przetwarzania współbieżnego

Analiza efektywności przetwarzania współbieżnego Analiza efektywności przetwarzania współbieżnego Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak 1/4/2013 Analiza efektywności 1 Źródła kosztów przetwarzania współbieżnego interakcje

Bardziej szczegółowo

Zastowowanie transformacji Fouriera w cyfrowym przetwarzaniu sygnałów

Zastowowanie transformacji Fouriera w cyfrowym przetwarzaniu sygnałów 31.01.2008 Zastowowanie transformacji Fouriera w cyfrowym przetwarzaniu sygnałów Paweł Tkocz inf. sem. 5 gr 1 1. Dźwięk cyfrowy Fala akustyczna jest jednym ze zjawisk fizycznych mających charakter okresowy.

Bardziej szczegółowo

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

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab Zygmunt Wróbel i Robert Koprowski Praktyka przetwarzania obrazów w programie Matlab EXIT 2004 Wstęp 7 CZĘŚĆ I 9 OBRAZ ORAZ JEGO DYSKRETNA STRUKTURA 9 1. Obraz w programie Matlab 11 1.1. Reprezentacja obrazu

Bardziej szczegółowo

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka. Wstęp teoretyczny Zmienne losowe Zmienne losowe

Bardziej szczegółowo

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk Kompresja Kodowanie arytmetyczne Dariusz Sobczuk Kodowanie arytmetyczne (lata 1960-te) Pierwsze prace w tym kierunku sięgają początków lat 60-tych XX wieku Pierwszy algorytm Eliasa nie został opublikowany

Bardziej szczegółowo

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy Testowanie układów kombinacyjnych Przykładowy układ Wykrywanie błędów: 1. Sklejenie z 0 2. Sklejenie z 1 Testem danego uszkodzenia nazywa się takie wzbudzenie funkcji (wektor wejściowy), które daje błędną

Bardziej szczegółowo

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j Kompresja transformacyjna. Opis standardu JPEG. Algorytm JPEG powstał w wyniku prac prowadzonych przez grupę ekspertów (ang. Joint Photographic Expert Group). Prace te zakończyły się w 1991 roku, kiedy

Bardziej szczegółowo

Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1-

Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1- Cyfrowe przetwarzanie sygnałów Jacek Rezmer -1- Filtry cyfrowe cz. Zastosowanie funkcji okien do projektowania filtrów SOI Nierównomierności charakterystyki amplitudowej filtru cyfrowego typu SOI można

Bardziej szczegółowo

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

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat BIBLIOTEKA PROGRAMU R - BIOPS Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat Biblioteka biops zawiera funkcje do analizy i przetwarzania obrazów. Operacje geometryczne (obrót, przesunięcie,

Bardziej szczegółowo

INSTRUKCJA DO ĆWICZENIA NR 7

INSTRUKCJA DO ĆWICZENIA NR 7 KATEDRA MECHANIKI STOSOWANEJ Wydział Mechaniczny POLITECHNIKA LUBELSKA INSTRUKCJA DO ĆWICZENIA NR 7 PRZEDMIOT TEMAT OPRACOWAŁ LABORATORIUM MODELOWANIA Przykładowe analizy danych: przebiegi czasowe, portrety

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 8. Filtracja uśredniająca i statystyczna.

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 8. Filtracja uśredniająca i statystyczna. Politechnika Świętokrzyska Laboratorium Cyfrowe przetwarzanie sygnałów Ćwiczenie 8 Filtracja uśredniająca i statystyczna. Cel ćwiczenia Celem ćwiczenia jest zdobycie umiejętności tworzenia i wykorzystywania

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 4a: Rozwiązywanie rekurencji http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Czas działania programu Dla konkretnych

Bardziej szczegółowo

Kwantyzacja wektorowa. Kodowanie różnicowe.

Kwantyzacja wektorowa. Kodowanie różnicowe. Kwantyzacja wektorowa. Kodowanie różnicowe. Kodowanie i kompresja informacji - Wykład 7 12 kwietnia 2010 Kwantyzacja wektorowa wprowadzenie Zamiast kwantyzować pojedyncze elementy kwantyzujemy całe bloki

Bardziej szczegółowo

Komputerowa Analiza Danych Doświadczalnych

Komputerowa Analiza Danych Doświadczalnych Komputerowa Analiza Danych Doświadczalnych dr inż. Adam Kisiel kisiel@if.pw.edu.pl pokój 117b (12b) 1 Materiały do wykładu Transparencje do wykładów: http://www.if.pw.edu.pl/~kisiel/kadd/kadd.html Literatura

Bardziej szczegółowo

Dyskretne układy liniowe. Funkcja splotu. Równania różnicowe. Transform

Dyskretne układy liniowe. Funkcja splotu. Równania różnicowe. Transform Dyskretne układy liniowe. Funkcja splotu. Równania różnicowe. Transformata Z. March 20, 2013 Dyskretne układy liniowe. Funkcja splotu. Równania różnicowe. Transformata Z. Sygnał i system Sygnał jest opisem

Bardziej szczegółowo

Układy stochastyczne

Układy stochastyczne Instytut Informatyki Uniwersytetu Śląskiego 21 stycznia 2009 Definicja Definicja Proces stochastyczny to funkcja losowa, czyli funkcja matematyczna, której wartości leżą w przestrzeni zdarzeń losowych.

Bardziej szczegółowo

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

koniec punkt zatrzymania przepływów sterowania na diagramie czynności Diagramy czynności opisują dynamikę systemu, graficzne przedstawienie uszeregowania działań obrazuje strumień wykonywanych czynności z ich pomocą modeluje się: - scenariusze przypadków użycia, - procesy

Bardziej szczegółowo

WPROWADZENIE Mikrosterownik mikrokontrolery

WPROWADZENIE Mikrosterownik mikrokontrolery WPROWADZENIE Mikrosterownik (cyfrowy) jest to moduł elektroniczny zawierający wszystkie środki niezbędne do realizacji wymaganych procedur sterowania przy pomocy metod komputerowych. Platformy budowy mikrosterowników:

Bardziej szczegółowo

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29.

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29. Obliczenia Naukowe O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć Bartek Wilczyński bartek@mimuw.edu.pl 29. lutego 2016 Plan semestru Arytmetyka komputerów, wektory, macierze i operacje na nich

Bardziej szczegółowo

Układy równań liniowych. Krzysztof Patan

Układy równań liniowych. Krzysztof Patan Układy równań liniowych Krzysztof Patan Motywacje Zagadnienie kluczowe dla przetwarzania numerycznego Wiele innych zadań redukuje się do problemu rozwiązania układu równań liniowych, często o bardzo dużych

Bardziej szczegółowo

Szybka transformacja Fouriera

Szybka transformacja Fouriera Szybka transformacja Fouriera (Opis i wydruki programów) Instytut Astronomii UMK, Toruń 1976 2 K. Borkowski PROGRAM OBLICZANIA TRANSFORMAT FOURIERA Wstęp Prezentowany tutaj program przeznaczony jest do

Bardziej szczegółowo

Automatyka i Regulacja Automatyczna Laboratorium Zagadnienia Seria II

Automatyka i Regulacja Automatyczna Laboratorium Zagadnienia Seria II Automatyka i Regulacja Automatyczna Laboratorium Zagadnienia Seria II Zagadnienia na ocenę 3.0 1. Podaj transmitancję oraz naszkicuj teoretyczną odpowiedź skokową układu całkującego z inercją 1-go rzędu.

Bardziej szczegółowo

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Cyfrowe Przetwarzanie Obrazów i Sygnałów Cyfrowe Przetwarzanie Obrazów i Sygnałów Laboratorium EX Lokalne transformacje obrazów Joanna Ratajczak, Wrocław, 28 Cel i zakres ćwiczenia Celem ćwiczenia jest zapoznanie się z własnościami lokalnych

Bardziej szczegółowo

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. 1. Podstawy matematyki 1.1. Geometria analityczna W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. Skalarem w fizyce nazywamy

Bardziej szczegółowo

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Transport, studia I stopnia rok akademicki 2012/2013 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Pojęcie

Bardziej szczegółowo

KARTA PRZEDMIOTU. Techniki przetwarzania sygnałów, D1_3

KARTA PRZEDMIOTU. Techniki przetwarzania sygnałów, D1_3 KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:

Bardziej szczegółowo

Stabilność. Krzysztof Patan

Stabilność. Krzysztof Patan Stabilność Krzysztof Patan Pojęcie stabilności systemu Rozważmy obiekt znajdujący się w punkcie równowagi Po przyłożeniu do obiektu siły F zostanie on wypchnięty ze stanu równowagi Jeżeli po upłynięciu

Bardziej szczegółowo