plik


Laboratorium Podstaw Informatyki Kierunek Elektrotechnika wiczenie 8.1 Matlab Narzdzie obliczeD numerycznych Cz[ I Operatory i funkcje ZakBad Metrologii AGH Krakw 1998 Laboratorium Podstaw Informatyki Strona 2 1. Wprowadzenie Matlab jest uniwersalnym [rodowiskiem obliczeD numerycznych. Podstawowym typem na ktrym operuje u|ytkownik jest macierz warto[ci zespolonych. Jej szczeglne przypadki to macierz rzeczywista, wektor, warto[ skalarna, macierz rzadka. Zestaw operatorw i gotowych funkcji jest dostosowany do tego typu, dziki czemu u|ytkownik mo|e liczy na wykorzystanie wektoryzacji obliczeD, co skutkuje du| szybko[ci tego rodzaju obliczeD w porwnaniu z analogicznymi skalarnymi, wykonywanymi iteracyjnie. W pocztkach istnienia Matlab byB Batwym w u|ytkowaniu interfejsem do bibliotek numerycznych Fortranu LINPACK i EISPACK. Z czasem zawarto[ przybornikw Matlaba (ang. toolbox) przekroczyBa zakres tych bibliotek. Mo|liwe jest oczywi[cie zbudowanie w jzykach oglnego przeznaczenia, typu C czy jzyk obiektowy C++, systemu operatorw i funkcji analogicznego do Matlaba. W czym wic tkwi jego przewaga nad jzykami programowania oglnego przeznaczenia ? Podobnie jak Basic zyskaB du| popularno[ dziki mo|liwo[ci szybkiego zaprogramowania prostych aplikacji, tak Matlab dziki konstrukcji interpretera, dostarczaniu zestawu gotowych operatorw i du|ej ilo[ci specjalizowanych funkcji nadaje si dobrze do szybkiego rozwizywania krtkich problemw numerycznych, a w szczeglno[ci macierzowych. Te cechy, ktre daj efekt w postaci Batwo[ci programowania (interpretacja, brak konieczno[ci deklarowania zmiennych, ubogi zestaw konstrukcji sterujcych) ograniczaj rozmiar u|ytecznego kodu aplikacji pisanych w tym [rodowisku do kilkuset linii. Du|ym ograniczeniem tego [rodowiska jest umiarkowana szybko[ dziaBania w porwnaniu z kodem kompilowanym w jzyku oglnego przeznaczenia. MaBa pociech, ze wzgldu na pracochBonno[ i konieczno[ zachowania ustalonego sposobu przekazywania parametrw, jest przy tym mo|liwo[ doBczania funkcji w postaci kompilowanych moduBw typu DLL. Podsumowa to wprowadzenie mo|na wic sBowami, |e Matlab jest dobrym [rodowiskiem do tworzenia i testowania prototypw aplikacji z dziedziny przetwarzania danych numerycznych. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 3 2. Zadanie 1 - operacje macierzowe 2.1 Inicjowanie macierzy Inicjowanie macierzy przez przypisanie warto[ci pocztkowych zapisuje si w Matlabie w sposb naturalny, przez podanie kolejnych odseparowanych warto[ci. Kolejne warto[ci rozdzielone przecinkiem lub spacj tworz wiersz macierzy. Przej[cie do nowego wiersza macierzy wymusza si znakiem [rednika lub koDca linii. Np. macierz kwadratow o warto[ciach A(1,1)=1.0, A(1,2)=2.0, A(2,1)=3.0, A(2,2)=4.0 mo|na utworzy przez cig przypisaD do elementw lub jedn instrukcj: A=[ 1 2 3 4]; % Rwnowa|ny zapis w jednej linii A=[1 2; 3 4]; ZaB|my |e naszym zadaniem jest utworzenie wektora zawierajcego warto[ci od 0 do 1 co 0.1. Rczne wpisywanie warto[ci jak w powy|szym przykBadzie jest zbyt mczce. Przyzwyczajenie z jzyka C ka|e zbudowa ptl programow inicjujc wektor. W Matlabie bdzie ona miaBa posta: V=[]; % Czyszczenie zawarto[ci wektora for i=0:10 V(i+1)=i/10; end Indeksowanie przy przypisaniu poza aktualny rozmiar wektora powoduje automatyczne rozszerzenie rozmiaru wektora. Pierwsze udoskonalenie tego sposobu inicjowania to wykorzystanie faktu, |e zmienna sterujc w ptli for mo|e mie dowolne warto[ci zmieniane z dowolnym przyrostem. Nowa posta instrukcji inicjujcych wektor ma posta: V=[]; % Zaczynamy od pustego wektora for i=0:0.1:1 V=[V; i]; % Nowy element na koniec end Zmienna sterujca nie mo|e by ju| indeksem w wektorze poniewa| przyjmuje warto[ci rzeczywiste i byBaby zaokrglana do najbli|szej liczby caBkowitej. Std rozszerzanie rozmiaru wektora przez dodawanie nowego elementu na koniec. Zapis i=0:0.1:1 mo|na rozumie nie tylko jako podanie warto[ci pocztkowej dla zmiennej sterujcej, przyrostu i warto[ci koDcowej. W istocie jest to podanie wektora warto[ci, ktre bdzie przyjmowaBa zmienna sterujca. Zapis 0:0.1:1 oznacza wektor warto[ci od 0 do 1 co 0.1. Nasza instrukcja inicjujca mo|e wic mie posta: V=0:0.1:1; Zysk z takiego zapisu wektorowego to szybko[ wykonania operacji. Stosowany zapis generuje wektor wierszowy. {eby otrzyma wektor kolumnowy mo|na transponowa wygenerowany wektor operatorem transpozycji, lub zastosowa zapis transformujcy macierz do wektora kolumnowego. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 4 V=V ; % Transponowanie macierzy V=V(:); % Wymuszenie postaci kolumnowej Inicjowanie na najcz[ciej wykorzystywane warto[ci 0 i 1 wykonuj funkcje tworzenia specyficznych macierzy. Funkcja zeros() generuje macierz zerow o podanych wymiarach, ones() macierz jedynkow, eye() macierz jednostkow a diag() macierz diagonaln. Utwrz wektor kolumnowy x o warto[ciach od -1 do 1 co 0.1 i wektor y o dwukrotnie wikszych warto[ciach ni| x i dodatkowo pomniejszonych o warto[ 0.5. Utwrz wektor x1 o takim samym wymiarze jak wektor x (poda go funkcja size()) zawierajcy same jedynki. PoBcz wektory x i x1 w jednej macierzy xx o dwch kolumnach. 2.2 Obliczanie wyra|eD macierzowych Podobnie do inicjowania wektorw wyznaczenie np. sumy kwadratw elementw wektora mo|na wykona w ptli z sumowaniem, ale prostszy zapis i szybsze wykonanie ma instrukcja z operatorem mno|enia macierzowego. x=x(:) % Wymuszenie postaci kolumnowej wektora % Mno|enie w ptli wynik=0; for i=1:length(x) wynik=wynik+x(i)*x(i); end % Z wykorzystaniem operatora mno|enia skalarnego i funkcji sumowania elementw wynik=sum(x.*x); % Z wykorzystaniem operatora mno|enia macierzowego wynik=x *x; % Iloczyn wektorowy z macierz transponowan da ten sam efekt Ze wzgldu na r|nice definicji operatorw dziaBajcych na poszczeglnych elementach macierzy i operatorw macierzowych zestaw operatorw Matlaba zawiera operatory skalarne i macierzowe. Operatory skalarne wykonuj operacje na elementach macierzy. S to operator mno|enia poszczeglnych elementw dwch macierzy  .* , operator dzielenia elementw  ./ i operator podnoszenia do potgi poszczeglnych elementw macierzy  .^ . Operatory macierzowe maj zapis bez kropki. Istniej dwa operatory dzielenia odpowiadajce mno|eniu lewo (\) i prawostronnemu (/) przez odwrotno[ macierzy. Dla przykBadowych macierzy a=[1 2;3 4] i b=[5 4;6 8] operacje skalarne i wektorowe dadz r|ne wyniki. a.*b=[5 8; 18 32], a./b=[0.2 0.5; 0.5 0.5], a*b=[17 20; 39 44], a/b=[-0.25 0.375; 0 0.5], a\b=[-4 0; 4.5 2] a+b=[6 6; 9 12], a-b=[-4 -2; -3 -4] Operatory dodawania i odejmowania maj takie samo znaczenie dla obydwu rodzajw operacji wic maj tylko jedn posta. Dla macierzy xx i y wygenerowanych w poprzednim zadaniu oblicz warto[ wyra|enia: (xxT*xx)-1*xxT*y ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 5 3. Zadanie 2 - m-pliki czyli skrypty i funkcje Matlaba 3.1 Algorytm najmniejszej sumy kwadratw Wzr podany w poprzednim zadaniu opisuje algorytm najmniejszej sumy kwadratw LS. Podaje on warto[ci wspBczynnikw zale|no[ci liniowej midzy wektorami danych wej[ciowych i wyj[ciowych wyznaczone przy warunku najmniejszej sumy kwadratw odlegBo[ci warto[ci z wektora danych wyj[ciowych i warto[ci wyznaczonych na podstawie danych wej[ciowych i wyliczonych parametrw. Przyjta w zadaniu posta wektora xx odpowiada zaBo|onej zale|no[ci funkcyjnej midzy danymi wej[ciowymi x i wyj[ciowymi y w postaci y=a*x+b, gdzie a i b s poszukiwanymi parametrami. Poniewa| przy generowaniu wektorw x i y przyjli[my, |e y=2*x-0.5, std parametry otrzymane przez wyznaczenie warto[ci wyra|enia LS s rwne wspBczynnikom przyjtej zale|no[ci, a dopasowanie prostej opisanej wyznaczonymi parametrami do danych jest dokBadne (suma kwadratw odlegBo[ci jest rwna zero). Algorytm LS najcz[ciej stosuje si dla danych zawierajcych zakBcenia losowe, jak np. dla danych pomiarowych. W tym przypadku daje on wspBczynniki prostej w przestrzeni najlepiej dopasowanej do danych (w sensie LS). Ze wzgldu na to, |e algorytm ten jest czsto wykorzystywany, wygodnie bdzie zawrze go w postaci funkcji operujcej na danych przekazanych w parametrach. Inna mo|liwo[ to utworzenie skryptu, ale wtedy przekazanie parametrw i odebranie wynikw musi nastapi przez zmienne globalne. Dane testowe znajduj si w pliku dyskowym w formacie ASCII czyli w zapisie znakowym dziesitnym. Instrukcja load wczytuje dane z pliku ASCII do tablicy o nazwie takiej jak nazwa pliku. Poszczeglne kolumny pliku tworz kolumny macierzy. Wydzielenie kolumn z takiej macierzy wielokolumnowej realizuje instrukcja wskazania zakresu przy indeksowaniu, jak w poni|szym przykBadzie. load abc.dat % Plik abc.dat zawiera trzy kolumny danych w 10 wierszach a=abc(:, 1); % Wektor a zawiera wszystkie wiersze pierwszej kolumny danych bc=abc(1:5, 2:3); % Macierz bc zawiera pierwsze pi wierszy z kolumn 2 i 3 Do tworzenia wykresw na podstawie danych zawartych w wektorach sBu|y funkcja plot(). Kilka przykBadw i pomoc Matlaba na temat tej komendy wyja[ni szczegBy. plot(y); % Rysuje y w funkcji indeksu, Bczy poszczeglne punkty plot(x, y); % Rysuje y w funkcji x (warto[ci x w osi OX, y w osi OY) plot(x, y,  *r );% Rysunek czerwony, punkty nie Bczone, zaznaczane gwiazdk Zapisz algorytm LS w pliku algls.m w postaci funkcji: function par=algls(xx, y) par=(xx *xx)\xx *y; Wczytaj dane z pliku lsm.dat (load lsm.dat). Rozdziel tablic lsm na wektory x1, x2 (pierwsza i druga kolumna) i wektor y (trzecia kolumna). Przyjmij zale|no[ liniow midzy danymi w postaci y=a*x1+b*x2. Utwrz macierz xx z wektorw x1, x2. Przetestuj dziaBanie funkcji algls(). Utwrz rysunek r|nic midzy warto[ciami y z pliku danych i warto[ciami ye wyliczonymi z przyjtej zale|no[ci (plot(y-ye,  * )). ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 6 4. Zadanie 3 - przetwarzanie danych 4.1 Wielomiany - szczeglna posta funkcji Wielomian jest funkcj jednoznacznie zdefiniowan przez wspBczynniki przy poszczeglnych potgach zmiennej i tak jest zapisywany w Matlabie. Np. dla wielomianu x2-3x-5 wektor reprezentujcy ten wielomian ma posta [1 -3 -5]. Matlab oferuje kilka funkcji do operowania na wielomianach. PrzykBadowo wielomian charakterystyczny dla macierzy mo|na wyznaczy funkcj poly(), pierwiastki wielomianu oblicza funkcja roots(), warto[ wielomianu funkcja polyval(), pochodn wielomianu funkcja polyder(). W tej chwili interesuje nas najbardziej funkcja dopasowujca wielomian do par warto[ci X i Y w sensie najmniejszej sumy kwadratw. Przeczytaj pomoc na temat funkcji polyfit() (help polyfit). Znajdz wspBczynniki wielomianu drugiego rzdu dopasowanego do danych z pliku xy.dat (X-pierwsza kolumna, Y-druga kolumna). Zilustruj rysunkiem dopasowanie do danych. 4.2 Wyznaczanie warto[ci charakterystycznych funkcji Warto[ci dajce informacj o przebiegu funkcji to jej miejsca zerowe i ekstrema. Funkcje Matlaba wyznaczaj numeryczne przybli|enia tych warto[ci wg. okre[lonego algorytmu. Wikszo[ z nich wymaga podania nazwy funkcji, i nie akceptuje zapisu z dodatkowymi poza punktem wyznaczenia warto[ci parametrami. Np. dla funkcji wyznaczania miejsc zerowych niepoprawny bdzie zapis fzero( polyval(wsp, x) , x0). Funkcja, ktrej miejsce zerowe wyznaczamy musi by w takim przypadku zapisana w m-pliku. Zapisz wielomian z poprzedniego zadania w postaci funkcji w m-pliku zwracajcej warto[ w punkcie przekazanym w parametrze. Wyznacz jego miejsca zerowe (fzero()) i punkt minimalny (fmin()). Zweryfikuj wyznaczone warto[ci na wykresie i przez porwnanie z pierwiastkami wielomianu (roots()). Oblicz caBk z wielomianu w zakresie warto[ci x=[-5, 5] (funkcja quad()). ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 7 5. Dla tych, ktrzy chc wiedzie wicej - informacje dodatkowe 5.1 Konstrukcje sterujce Zestaw instrukcji sterujcych Matlaba jest ubogi co bywa niekiedy uci|liwe. SkBada si na niego instrukcja ptli wyliczanej for, ptli z warunkiem while i instrukcji warunkowej if. Ptla for ma skBadni zbli|on do skBadni Pascala, ale dajc programi[cie wiksze mo|liwo[ci. Notacja ma posta: for ZmiennaSterujca=WektorWarto[ci ... end; W szczeglnym przypadku WektorWarto[ci mo|e by zadany przez warto[ pocztkow, przyrost i warto[ koDcow w postaci Warto[Pocztkowa:Przyrost:Warto[KoDcowa, co przypomina zapis ptli wyliczanej Pascala, a jest standardowym sposobem generowania wektorw w Matlabie. W oglnym przypadku WektorWarto[ci mo|e by zadany przez dowolne wyra|enie. Ptla jest wykonywana tyle razy, ile jest elementw w wektorze warto[ci zmiennej sterujcej. Ptle mog by zagnie|d|one. Ptla warunkowa while jest wykonywana dopki speBniony jest warunek tej ptli, a dokBadnie wszystkie elementy macierzy, ktr tworzy wyra|enie warunku s r|ne od zera. Notacja ma posta: while WarunekLogiczny ... end; Instrukcja break przerywa wykonywanie ptli obydwu omwionych rodzajw. Instrukcja warunkowa if ma ogln posta: if Warunek1 ... [elseif Warunek2] ... [else] ... end; Elementy alternatywy z warunkiem i bez warunku s opcjonalne. Podobnie jak przy warunku ptli, instrukcje warunkowe s wykonywane je[li wszystkie elementy wektora warunku s r|ne od zera. 5.2 Operatory logiczne i funkcje testowania warto[ci Matlab oferuje zestaw sze[ciu operatorw do porwnywania macierzy. S to operatory : <, <=, >, >=, == (rwny), ~= (r|ny). Operatory te zastosowane do warto[ci skalarnych daj w wyniku warto[ skalarn 0 lub 1. Zastosowane do macierzy daj macierz warto[ci 0 i 1. W tym ostatnim przypadku u|yteczne s funkcje testowania warto[ci w macierzy: any() i all() zwracaj odpowiednio warto[ 1 je[li ktrykolwiek lub wszystkie elementy wektora s r|ne od zera. W przypadku macierzy zwracaj wiersz warto[ci dla ka|dej kolumny macierzy osobno. Podwjne zastosowanie funkcji zwraca warto[ skalarn (np. all(all(X)) zwrci 1 je[li wszystkie elementy macierzy X s r|ne od 0). Funkcja find() zwraca indeksy ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 8 niezerowych elementw w wektorze. W poBczeniu z operatorami logicznymi mo|e sBu|y do wyszukiwania elementw speBniajcych okre[lony warunek. Np. cig instrukcji: idxs=find(X==3); X(idxs)=0; spowoduje wyzerowanie tych elementw wektora X, ktre s rwne 3. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 9 6. Dla tych, ktrzy chc by najlepsi - zadania dodatkowe 6.1 Zastosowanie algorytmu FFT Algorytm FFT mo|na stosowa rwnie| dla sygnaBw nieokresowych, przy ograniczeniu obserwowanego sygnaBu do okre[lonego przedziaBu czasowego. W najprostszym przypadku ograniczenie to mo|na zrealizowa przez wyzerowanie sygnaBu poza oknem obserwacji. Jest to przypadek okna prostoktnego. Przesuwajc okno wzdBu| osi czasu i stosujc algorytm FFT dla sygnaBu w oknie otrzymamy obraz dynamicznych zmian widma analizowanego sygnaBu. Przeczytaj pomoc Matlaba na temat funkcji wavread(). Wczytaj dowolny plik typu WAV. Zastosuj funkcj fft() dla caBego zapisu WAV. Przedstaw widmo sygnaBu na rysunku. Zastosuj okienkowanie sygnaBu z wybran dBugo[ci okna i przedstaw na rysunku przebieg zmian widma sygnaBu. 6.2 Filtracja danych DziaBanie filtra cyfrowego typu FIR (ang. Finite Impulse Response) polega na mno|eniu wektora wag filtra przez wektor prbek sygnaBu wej[ciowego. Suma iloczynw daje pojedyncz prbk sygnaBu wyj[ciowego. Rozmiar wektora wag filtra okre[la jego rzd. W przypadku tego rodzaju filtra wyj[cie zale|y tylko od historii sygnaBu wej[ciowego. Inny rodzaj filtrw - IIR (ang. Infinite Impulse Response) zawiera sprz|enie zwrotne z wyj[cia na wej[cie (jest opisany rekurencyjnie). Zapoznaj si z teori projektowania filtrw typu FIR [Borodziewicz, Jaszczak]. Zaprojektuj dolnoprzepustowy filtr typu FIR. Zaimplementuj go w Matlabie i przetestuj jego dziaBanie dla sygnaBu poliharmonicznego. 7. Literatura [1] Matlab User s Guide; The MathWorks Inc 1993 [2] Mrozek B.: Matlab - uniwersalne [rodowisko do obliczeD naukowo-technicznych; PLJ, Warszawa 1996 [3] Stearns S., Ruth D.: Signal processing algorithms in Matlab; Prentice Hall 1996 [4] Borodziewicz W., Jaszczak K.: Cyfrowe przetwarzanie sygnaBw; WNT, Warszawa 1987 ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Kierunek Elektrotechnika wiczenie 8.2 Matlab Narzdzie obliczeD numerycznych Cz[ II Prezentacja danych i interfejs u|ytkownika ZakBad Metrologii AGH Krakw 1998 Laboratorium Podstaw Informatyki Strona 2 1. Wprowadzenie Wyniki obliczeD numerycznych w postaci liczbowej s trudne do interpretacji z powodu du|ej ilo[ci informacji tekstowej. W wikszo[ci przypadkw lepszym wyj[ciem jest prezentowanie danych numerycznych w postaci rysunku. W przypadku danych numerycznych powizanych zale|no[ci funkcyjn bdzie to Batwy do interpretacji wykres funkcji. W innych przypadkach jako[ciowe przedstawienie warto[ci numerycznych np. kolorem daje szybk orientacj w zmienno[ci prezentowanych danych numerycznych. Zrodowisko obliczeD numerycznych jest wic skazane do dostarczanie u|ytkownikowi odpowiednich narzdzi do graficznej prezentacji danych. Matlab oferuje bogaty zestaw funkcji graficznych przydatnych w r|nych zastosowaniach. Drugim zadaniem ka|dego [rodowiska programowania jest dostarczanie narzdzi do budowania interfejsu u|ytkownika tworzonych aplikacji. Zestaw funkcji dostarczanych z Matlabem zawiera funkcje tworzce wikszo[ z obiektw kontrolnych spotykanych w [rodowisku MS Windows, z przyciskami, suwakami i opcjami menu. Aczenie tych obiektw z funkcjami reakcji na wybr u|ytkownika polega na zadeklarowaniu funkcji obsBugi zdarzenia zawartej w m-pliku lub bezpo[rednio w postaci cigu instrukcji Matlaba. Instrukcja nie opisuje wszystkich mo|liwo[ci graficznych [rodowiska. Wiele dodatkowych informacji dostarczy User Guide i podrczna pomoc wywoBywana poleceniem help. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 3 2. Zadanie 1 - wykresy dwuwymiarowe Podstawowym poleceniem graficznego przedstawienia odpowiadajcych sobie par warto[ci z dwu wektorw lub par element wektora i jego indeks jest polecenie plot(). W szczeglnym przypadku, gdy warto[ci z wektorw wi|e zale|no[ funkcyjna, tworzony rysunek bdzie przybli|onym wykresem funkcji. Przybli|onym, poniewa| Matlab, przy domy[lnym stylu linii tworzy rysunek przez Bczenie ssiadujcych w wektorach punktw. Wygld linii i punktw rysunku okre[la kolor i styl linii. Domy[lnym stylem linii jest solid, a kolor jest wybierany kolejno wg. listy kolorw dla ka|dego wektora warto[ci w ramach jednego ukBadu wspBrzdnych. Kolor i styl mo|e by wybrany przez u|ytkownika i zadany parametrem polecenia plot(). Dostpne kolory i style linii zawiera poni|sza tabela. Symbol Color Symbol Linestyle y yellow . point m magenta o circle c cyan x x-mark r red + plus g green * star b blue - solid w white : dotted k black -. dashdot -- dashed PrzykBadowa poni|sza sekwencja narysuje przybli|ony wykres jednego okresu funkcji sinus na podstawie wektorw 101 elementowych. Kolor wykresu bdzie niebieski, linia bdzie przerywana z wzorkiem  - - . x=0:2*pi/100:2*pi; y=sin(x); plot(x,y, b-- ); Do opisywania tworzonych rysunkw sBu| polecenia xlabel(), ylabel(), title() opisujce ka|d z osi i caBy rysunek. Ich parametrem jest tekst opisu. Logarytmiczn posta wykresu mo|na otrzyma stosujc polecenia semilogx() dla skali logarytmicznej w osi OX, semilogy() dla otrzymania skali logarytmicznej w osi OY i loglog() dla skali logarytmicznej w obu osiach. Do rysowania zale|no[ci funkcyjnych jednej zmiennej sBu|y funkcja fplot(), ktrej parametrem jest nazwa funkcji do narysowania. Zalet jej stosowania w porwnaniu z rcznym generowaniem odpowiednich wektorw warto[ci jest automatyczne dostosowanie kroku do zmienno[ci funkcji. Polecenie grid tworzy siatk rysunku, a polecenie hold powoduje  zamro|enie rysunku, co oznacza, |e nastpne polecenie plot() nie utworzy nowego ukBadu wspBrzdnych a doda rysunek do bie|cego ukBadu wspBrzdnych. Utworzenie wielu wykresw jednocze[nie w celu porwnania mo|na osign bdz przez utworzenie wielu okien rysunku poleceniem figure, bdz przez podzielenie bie|cego okna na obszary podwykresw poleceniem subplot(). Jego parametrami s ilo[ podwykresw okre[lona przez ilo[ w poziomie i ilo[ w pionie, oraz numer aktualnego podwykresu. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 4 Sposb rysowania rysunkw przez Matlaba, polegajcy na Bczeniu ssiednich punktw, umo|liwia rysowanie zale|no[ci, ktre nie s funkcjami np. z powodu przypisania wielu warto[ci na osi OY dla jednego punktu na osi OX. 2.1 Ilustracja metody elipsy Metoda elipsy sBu|y pomiarowi przesunicia fazowego dwu sygnaBw sinusoidalnych o tej samej czstotliwo[ci z u|yciem oscyloskopu. SygnaBami pomiarowymi s najcz[ciej sygnaB wej[ciowy i wyj[ciowy czwrnika, dla ktrego mierzymy przesunicie fazowe dla okre[lonej czstotliwo[ci. Oscyloskop pracuje w czasie pomiaru w trybie XY, czyli z odchylaniem w osi poziomej przez sygnaB z kanaBu X i odchylaniem w osi pionowej przez sygnaB z kanaBu Y. Obraz otrzymywany na oscyloskopie ma ksztaBt elipsy o parametrach zale|nych od wzajemnego przesunicia fazowego sygnaBw. Warto[ mierzonego przesunicia fazowego wyznaczana jest na podstawie charakterystycznych wymiarw elipsy, nie jest to jednak przedmiotem zadania. Matematyczny zapis powstajcej elipsy ma posta parametryczn. Przy zmiennej niezale|nej t reprezentujcej upBywajcy czas, wspBrzdnych (x,y) opisujcych poBo|enie punktu na pBaszczyznie XY, pulsacji sygnaBw  i wzajemnego przesunicia fazowego , zale|no[ parametryczna ma posta x=sin(t) i y=sin(t+). Ze wzgldu na okresowo[ sygnaBw wystarczajcy do wytworzenia obrazu elipsy jest zakres zmiennej t=2. Narysuj w jednym ukBadzie wspBrzdnych obrazy elips wg. podanych rwnaD dla czterech przesuni fazowych (/4, /2, , 3/2). Zastosuj r|ne kolory lub style linii. Dodaj opisy osi, tytuB rysunku i siatk wykresu. Narysuj te same elipsy w czterech r|nych ukBadach wspBrzdnych (w r|nych oknach lub w podwykresach) w sposb umo|liwiajcy porwnanie poszczeglnych rysunkw midzy sob. 2.2 Histogram zmiennej losowej o rozkBadzie normalnym CigBe zmienne losowe s opisane przez funkcj gsto[ci rozkBadu prawdopodobieDstwa. Przybli|eniem ksztaBtu tej funkcji jest histogram, czyli wykres ilo[ci warto[ci zmiennej losowej z prbki N elementowej w kolejnych przedziaBach warto[ci. Wykres taki mo|na skonstruowa poleceniem plot() po przetworzeniu danych z prbki. Jest to jednak wykres tak czsto stosowany, |e konstruktorzy Matlaba opracowali funkcj hist() tworzc ten wykres na podstawie prbki warto[ci zmiennej losowej. Zmienna o rozkBadzie normalnym z parametrami m (warto[ oczekiwana) i  (odchylenie standardowe) w skrcie oznaczany N(m, ) jest jednym z najwa|niejszych rozkBadw teoretycznych. Wiele rozkBadw losowych wystpujcych w naturze ma ksztaBt zbli|ony do normalnego. W szczeglno[ci s to rozkBady bBdw pomiarowych. Funkcja gsto[ci prawdopodobieDstwa ma dla rozkBadu normalnego posta: 2 # x ) 1 ( - m# f (x) = exp # #- 2 2  2 # # # # Wygeneruj wektor 10000 liczb losowych o rozkBadzie normalnym (funkcja randn() generuje wektor liczb losowych o rozkBadzie N(0,1)). Narysuj histogram o wybranej liczbie przedziaBw w okre[lonym zakresie. W tym samym ukBadzie wspBrzdnych narysuj przeskalowan funkcj gsto[ci prawdopodobieDstwa tego rozkBadu. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 5 3. Zadanie 2 - wykresy trjwymiarowe 3.1 Program demonstracyjny Matlaba Matlab zawiera program demonstracyjny prezentujcy midzy innymi mo|liwo[ci prezentacji danych zawartych w macierzach w funkcji danych w wektorach (prostoktny obszar z regularn siatk okre[lon przez wektory warto[ci w osi OX i OY) lub w macierzach (warto[ci nad dowolnym dwuwymiarowym obszarem). Uruchom w Matlabie program demo. Zapoznaj si z mo|liwo[ciami prezentacji dwuwymiarowych zale|no[ci funkcyjnych. 3.2 Wykres funkcji dwu zmiennych Zadanie polega na tworzeniu r|nego rodzaju wykresw funkcji  sombrero . Funkcja ta w biegunowym ukBadzie wspBrzdnych jest okre[lona wzorem z(r, )=sin(r)/r. Poni|sza sekwencja generuje macierz warto[ci tej funkcji w prostoktnym obszarze kartezjaDskiego ukBadu wspBrzdnych okre[lonym wektorami x i y. x=-8:0.5:8; y=x; [X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; Funkcja meshgrid() tworzy prostoktn siatk warto[ci X i Y przez powielenie wektorw przekazanych w parametrach. Odpowiada to wyznaczeniu iloczynu kartezjaDskiego wektorw. Prezentacj powierzchni tej funkcji mo|na wykona wieloma sposobami realizowanymi przez r|ne funkcje Matlaba. Funkcja contour() prezentuje przebieg funkcji za pomoc izolinii (jak poziomice na mapie), pcolor() za pomoc koloru obrazuje warto[ funkcji w punkcie, funkcje mesh() i surf() rysuj powierzchnie trjwymiarowe w rzucie na dwuwymiarow powierzchni ekranu, surfc() Bczy cechy wykresu konturowego z powierzchniowym, surfl() wprowadza do rysowanej powierzchni efekt o[wietlenia bocznego. Przedstaw przebieg funkcji  sombrero funkcjami contour(), pcolor() z wywoBaniem funkcji shading( interp ), mesh() i surf() z wyborem mapy kolorw funkcj colormap(hot), surfc(), surfl() z colormap(gray) i shading( interp ). ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 6 4. Zadanie 3 - interfejs u|ytkownika w aplikacji 4.1 Menu w oknie aplikacji Funkcja tworzca dodatkowe opcje u|ytkownika uimenu() przyjmuje w parametrach nazwy i warto[ci wybranych wBasno[ci tworzonego menu. Najistotniejsze dla nas s wBasno[ci  Label i  Callback . Utwrzmy opcj menu poleceniem h=uimenu( Label ,  Nowa opcja menu ). Funkcja uimenu() zwraca identyfikator utworzonej opcji. Je[li zamierzamy zbudowa menu hierarchiczne to dla nowo tworzonej opcji nale|y poda identyfikator opcji nadrzdnej h=uimenu(h, ...). Do ustawiania i pobierania warto[ci wBasno[ci menu (i pozostaBych obiektw Matlaba) sBu| funkcje set(h) i get(h). PrzykBadowo reakcj na wybr opcji dla utworzonej opcji o identyfikatorze h ustawia polecenie: set(h,  callback ,  ustaw(10) ); WoBana funkcja reakcji mo|e mie posta: function ustaw(wartosc) global Wartosc Wartosc=wartosc; Utwrz opcj nowe okno rysunku poleceniem figure. Dodaj opcj menu  Colormap z podopcjami  Gray ,  Hot ,  Jet ,  Cool . Reakcj na wybr powinno by wywoBanie funkcji colormap() z nazw odpowiedniej mapy kolorw. SzczegBowy opis map kolorw znajduje si w dodatku do instrukcji. 4.2 Elementy kontrolne Funkcja tworzenia elementu kontrolnego ma nazw uicontrol(). Parametrami wywoBania s nazwy wBasno[ci elementw kontrolnych i ich warto[ci. WBasno[ Style okre[la rodzaj elementu kontrolnego z listy pushbutton, radiobutton, checkbox, edit, text, slider, frame, popupmenu. WBasno[ Value okre[la stan elementu. String okre[la napis (lub napisy) pojawiajcy si na elemencie. Jak dla wszystkich obiektw Matlaba funkcje get() i set() pobieraj i ustawiaj wBasno[ci elementw. PrzykBadowo utworzenie listy wyboru jednej z warto[ci z listy wykonuje instrukcja: h=uicontrol( popupmenu ,  string ,  Opcja1|Opcja2 ,  callback ,  popcall ); Funkcja reakcji na wybr u|ytkownika popcall() mo|e mie posta: function popcall() h=gco; val=get(h,  Value ); strs=get(h,  String ); str=str(val, :); disp([ Wybrales opcje:  , str]); Zbuduj w nowym oknie rysunku interfejs do programu odtwarzania plikw typu WAVE. Interfejs powinien zawiera pole edytowalne na nazw pliku, suwak (ang. slider) do ustawiania ilo[ci prbek do odtworzenia, przycisk  Wczytaj i przycisk  Odtwrz . W funkcjach reakcji wykorzystaj funkcj odczytu pliku wavread() i funkcj odtwarzania cigu prbek sound(). ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 7 5. Dla tych, ktrzy chc wiedzie wicej - informacje dodatkowe 5.1 Mapy kolorw Podstaw odwzorowania warto[ci funkcji na kolor w funkcjach typu surf(), pcolor() jest mapa kolorw. Jest to trzykolumnowa macierz o dBugo[ci odpowiadajcej ilo[ci kolorw u|ywanych przy tworzeniu rysunkw i o kolumnach odpowiadajcych kolorom podstawowym (RGB: czerwony, zielony, niebieski). Zawarto[ ka|dego z kolorw podstawowych w kolorze opisanym w danym wierszu jest okre[lona przez liczb z przedziaBu (0, 1). Kolor dla okre[lonej warto[ci jest domy[lnie dobierany przez liniowe odwzorowanie przedziaBu warto[ci funkcji na zakres indeksw mapy kolorw. Domy[lna dBugo[ mapy kolorw wynosi 64. Najprostsz z map jest mapa gray, utworzona z kolorw podstawowych w rwnych proporcjach i liniowo rosncych warto[ciach. Graficznie map kolorw mo|na przedstawi funkcj plot() (rysuje kolejne skBadniki RGB kolorami yellow, magenta i cyan) lub funkcj rgbplot() (rysuje skBadniki RGB zgodnie z kolorami kolumn). Mapa gray ma graficzn posta trzech pokrywajcych si linii od 0 do 1. Mapa hot ma posta kolejno rosncych linii odpowiadajcych skBadnikom podstawowym. Zmiany domy[lnej mapy kolorw dokonuje si instrukcj colormap(), z macierz mapy kolorw w parametrze wywoBania. Macierze standardowych map kolorw s tworzone poleceniami zgodnymi z nazw mapy (hsv, hot, cool, jet, pink, copper, gray). Np. map o[miu poziomw szaro[ci ustawia dla aktualnego rysunku polecenie colormap(gray(8)). Domy[lny sposb odwzorowania warto[ci na indeks w mapie kolorw mo|na zmieni przez podanie innego zakresu warto[ci do odwzorowania wywoBaniem funkcji caxis(). Inny sposb to podanie warto[ci do odwzorowania koloru dla ka|dej warto[ci rysowanego wykresu jak w poleceniu surf(Z,C), gdzie macierz Z okre[la warto[ do narysowania, a macierz C okre[la kolor do rysowania (warto[ci skalowane do zakresu indeksw mapy kolorw). PrzykBadem niestandardowej mapy kolorw jest mapa towarzyszca rysunkowi w pliku clown.mat. Ze wzgldu na rosncy udziaB skBadnikw podstawowych w kolorze, rysunek ten jest czytelny tak|e z innymi, standardowymi mapami kolorw. 5.2 Obiekty graficzne Matlab organizuje wszystkie obiekty graficzne pojawiajce si na ekranie w hierarchi zaczynajc si od ekranu komputera. Typy obiektw w hierarchii poni|ej obiektu ekranu to Figure - okna rysunkw, jego potomek Axes - ukBad wspBrzdnych w cz[ci okna rysunku, potomkowie Axes tworzcy rysunki - Line, Patch, Surface, Image, Text. Oddzielne grupy tworz obiekty interfejsu u|ytkownika Uicontrol i Uimenu - potomkowie obiektu Figure. Funkcje tworzce obiekty poszczeglnych typw (np. figure(), axes(), uimenu()) zwracaj identyfikatory obiektu, ktre sBu| do jego identyfikacji w funkcjach operujcych na obiektach graficznych. Ka|dy z obiektw posiada zestaw wBasno[ci identyfikowanych przez nazw i zwizanych z aktualn warto[ci. Zestaw dostpnych dla obiektu danego typu wBasno[ci mo|na otrzyma woBajc funkcj set() z identyfikatorem obiektu. Aktualn warto[ wBasno[ci mo|na uzyska woBajc funkcj get() z identyfikatorem obiektu i nazw wBasno[ci. Ustawienie warto[ci wBasno[ci uzyskuje si przez wywoBanie funkcji set() dla obiektu z podaniem nazwy wBasno[ci i warto[ci do ustawienia. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 8 6. Dla tych, ktrzy chc by najlepsi - zadania dodatkowe 6.1 Wy[wietlanie sekwencji rysunkw Matlab umo|liwia zapamitanie sekwencji rysunkw (wykresw, obrazkw, cz[ci okna) i odtworzenie zapamitanej sekwencji z podan szybko[ci zmiany obrazkw. Pamitana sekwencja zajmuje du|o pamici. Przygotowaniem pamici dla sekwencji zajmuje si funkcja moviein(). Zapamitanie jednego rysunku sekwencji realizuje funkcja getframe(). Funkcja movie() odtwarza zapamitan sekwencj rysunkw. Przygotuj do odtworzenia sekwencj prezentujc ksztaBt funkcji peaks() z r|nych punktw widzenia, np. po obrocie co 10 stopni do 360 stopni. Zapisz przygotowan sekwencj do pliku vi_peaks.mat. Przygotuj funkcj wczytujc sekwencj do pamici i odtwarzajc j w oknie. Zadbaj o odtworzenie pierwotnych wymiarw okna. 6.2 Wykresy funkcji zespolonych Prezentacja w dwu wymiarach zale|no[ci funkcyjnej zmiennej zespolonej wymaga przedstawienia cz[ci rzeczywistej i urojonej warto[ci funkcji nad pBaszczyzn zespolon. Autorzy Matlaba sugeruj mo|liwo[ prezentacji tego rodzaju wykresw przez zwizanie cz[ci rzeczywistej z rysowan powierzchni, a cz[ci urojonej z jej kolorem w okre[lonym punkcie. MaBa jest, z tego powodu, przydatno[ takiego wykresu do odczytywania warto[ci funkcji zespolonej w punkcie. Zapoznaj si z opcj programu demo Matlaba  Visualization/Complex . Przeanalizuj sposb rysowania wykresw w zrdBach funkcji. Zaimplementuj, je[li masz lepszy ni| autorzy Matlaba pomysB, czytelniejszy sposb prezentacji tego rodzaju zale|no[ci funkcyjnych. 7. Literatura [1] Matlab User s Guide; The MathWorks Inc 1993 [2] Mrozek B.: Matlab - uniwersalne [rodowisko do obliczeD naukowo-technicznych; PLJ, Warszawa 1996 [3] Drozdowski P.: Wprowadzenie do Matlaba; Politechnika Krakowska 1995 ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Kierunek Elektrotechnika wiczenie 8.3 Matlab Narzdzie obliczeD numerycznych Cz[ III Zastosowania ZakBad Metrologii AGH Krakw 1998 Laboratorium Podstaw Informatyki Strona 2 1. Wprowadzenie Po dwch wiczeniach wprowadzajcych do programowania w [rodowisku Matlaba, czas na zaprogramowanie kompletnej aplikacji numerycznej, z wygodnym interfejsem u|ytkownika. W cz[ci zadaniowej przygotowano trzy problemy z r|nych dziedzin, w ktrych wykorzystywane s obliczenia numeryczne. Pierwszy z nich dotyczy analizy sygnaBw podstawowym narzdziem DSP (ang. Digital Signal Processing) - algorytmem szybkiej transformaty Fouriera FFT (ang. Fast Fourier Transform). Drugie zadanie dotyczy przetwarzania danych graficznych w prostej postaci dwuwymiarowej. U|ywane s operacje przesunicia i rotacji wieloktw, ktre sprowadzaj si do wykonywania mno|enia macierzowego. W cz[ci zadaD dodatkowych wiczcy mo|e rozwin ten przypadek na przestrzeD trjwymiarow, z ktr wi|e si problem rzutowania na pBaszczyzn dwuwymiarow ekranu. Ostatnie zadanie to analiza obwodu elektrycznego funkcjami dostpnymi w dodatkowym pakiecie Matlaba - Control. Jako przykBad wybrano obwd RLC drugiego rzdu. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 3 2. Zadanie 1 - analiza czstotliwo[ciowa dyskretnego sygnaBu nieokresowego Podstaw analizy czstotliwo[ciowej sygnaBw stanowi transformata Fouriera. Dla sygnaBu sprbkowanego, czyli dyskretnego w czasie, jej odpowiednikiem jest DFT - dyskretna transformata Fouriera. Opracowanie szybkiego algorytmu FFT tej transformaty, o zBo|ono[ci rzdu N*logN dla cigu N prbek, pozwoliBo zastosowa praktycznie analiz czstotliwo[ciow dBugich sygnaBw w zastosowaniach czasu rzeczywistego. Algorytm FFT operuje na cigach prbek, dla ktrych N jest potg dwjki. Funkcja fft() w Matlabie zwraca wektor o takiej samej dBugo[ci jak wektor prbek, zawierajcy amplitudy poszczeglnych czstotliwo[ci w sygnale. Na pierwszej pozycji jest skBadowa staBa. PozostaBe widmo jest symetryczne wzgldem elementu o indeksie length(yf)/2+1. Dla naszych celw interesujce s pr|ki widma o indeksach od 2 do length(yf)/2+1. Dla sygnaBu nieokresowego, nieskoDczonego teoria wymaga liczenia DFT dla nieskoDczonego cigu prbek, co jest nierealizowalne w skoDczonym czasie. Praktycznie mo|na analizowa widmo takiego cigu ograniczonego w danym momencie do skoDczonej liczby prbek poczwszy od prbki startowej. Przesuwajc poBo|enie prbki startowej mo|na bada zmienno[ widma ograniczonego sygnaBu w czasie. Ograniczanie dBugo[ci widma jest operacj nakBadania okna na sygnaB, w opisanym przypadku okna prostoktnego, nie zmieniajcego warto[ci prbek. DBugo[ okna to ilo[ prbek w sygnale ograniczonym oknem. 2.1 Analiza zapisu dzwiku algorytmem FFT z przesuwanym oknem prostoktnym Zapis sygnaBu dzwikowego w formacie WAV jest przykBadem dBugiego sygnaBu sprbkowanego w oglnym przypadku nieokresowego. Mo|na zastosowa do niego opisan powy|ej analiz zmienno[ci widma z przesuwanym oknem. Dla ograniczenia ilo[ci danych o widmie czstotliwo[ci mo|emy za ka|dym razem przesuwa okno o jego dBugo[. Konstrukcja ptli przesuwajcej okno dla wektora prbek Y mo|e by zapisana nastpujco: for i=1 : DlugoscOkna : length(Y)-DlugoscOkna % Tu nale|y woBa algorytm FFT dla prbek w oknie i zachowa wynik end; Prezentacja danych otrzymanych w wyniku dziaBania powy|szej ptli mo|e mie form podobn do spotykanej w equalizerach muzycznych, przedstawiajc zale|no[ widma od czasu w postaci matrycy. Poszczeglne dziaBki matrycy kolorem przedstawiaj amplitud skBadowej widma o danej czstotliwo[ci. O[ pionowa odpowiada czstotliwo[ci, a pozioma kolejnym momentom czasu dla prbki startowej. Instrukcja Matlaba image() tworzy tak matryc na podstawie macierzy warto[ci z bezpo[rednim odwzorowaniem warto[ci na indeks koloru. Dla osignicia czytelnego odwzorowania warto[ci na kolor konieczne bdzie skalowanie zakresu warto[ci w prezentowanej macierzy na zakres indeksw w mapie kolorw (od 1 do length(colormap)). Przeanalizuj widmo wybranego, krtkiego pliku WAV z katalogu c:\windows. Wykorzystaj instrukcj wavread() do wczytania zapisu i sound() do odtworzenia dzwiku. Przetestuj r|ne dBugo[ci okna, np. 16, 64 i 512. Wybierz map kolorw hot i przeskaluj warto[ci moduBu widma do dBugo[ci mapy kolorw przy u|yciu funkcji image(). ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 4 3. Zadanie 2 - transformacje figur geometrycznych PrzeksztaBcenia figur geometrycznych sprowadzaj si do operacji macierzowych na wspBrzdnych opisujcych figur. Matlab dostarcza wygodn notacj tych operacji, a jednocze[nie umo|liwia Batw do uzyskania prezentacj figur geometrycznych. Dziki temu mo|emy si skupi na samych algorytmach przeksztaBceD geometrycznych. Przesunicie punktu (x, y) o zadany wektor (tx, ty) do punktu (x , y ) mo|e by wykonane jako operacja macierzowa 1 0 0 # # # x' y' 1 = x y 1 * 0 1 0# [] [] # # # # #tx ty 1# WspBrzdne punktu (x, y) po obrocie o kt  wzgldem punktu (x0, y0) mo|na wyznaczy z wyra|enia macierzowego: 1 0 0 cos sin 0 1 0 1 # # # # # # # # # x' y' 1 = x y 1 * 0 1 0# * sin cos 0# * 0 1 0# [] [] # # #- # # # #-x0 - y0 1# # 0 0 1# #x0 y0 1# # # # # # # 3.1 Latajce czworokty Transformowanie pojedynczych wierzchoBkw figury geometrycznej da efekt w postaci transformowania caBej figury. Jako figur do transformowania wybierzemy czworokt, ktry mo|na opisa w Matlabie dwukolumnow macierz z picioma wierszami. Wiersze pierwszy i ostatni powinny by takie same dla uzyskania domknicia figury. Kolumny macierzy opisuj wspBrzdne x i y poszczeglnych wierzchoBkw. Rysowanie tak opisanej figury realizuje instrukcja plot(). Zapisz operacje przesunicia i rotacji wierzchoBkw prostokta w postaci funkcji zwracajcych przetransformowane wspBrzdne. Przetestuj je dla pojedynczego czworokta przez rysowanie poruszajcej si figury. Utwrz macierz opisujc kilka wieloktw (ka|de pi wierszy macierzy do opisu jednego czworokta) o losowo wybranych wspBrzdnych wierzchoBkw z zakresu rozmiaru okna rysunku. Utwrz skrypt Matlaba zawierajcy ptl obracajc ka|dy z czworoktw o r|ny kt i przedstawiajcy zmian w oknie rysunku. Dodaj operacj przesuwania czworoktw o r|ne wektory. Po wyj[ciu caBego czworokta poza granice rysunku powinien si on pojawi z przeciwnej strony, lub powinien pojawi si jego nastpca o takim samym ksztaBcie w [rodku rysunku. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 5 4. Zadanie 3 - analiza czasowa i czstotliwo[ciowa obwodu elektrycznego Na podstawie opisu matematycznego obwodu elektrycznego w postaci rwnaD stanu lub transmitancji mo|na wyznaczy jego odpowiedz czasow i charakterystyki czstotliwo[ciowe. Odpowiedz czasowa jest wyznaczana dla okre[lonego sygnaBu wymuszajcego na wej[ciu obwodu np. metod splotu z odwrotn transformat Laplace a transmitancji. W wyniku tej operacji otrzymujemy odpowiedz obiektu, czyli przebieg jego sygnaBu wyj[ciowego na sygnaB wymuszajcy. Operowanie rwnaniami stanu umo|liwia dodatkowo uwzgldnienie stanu pocztkowego obwodu i wielu sygnaBw wej[ciowych. Charakterystyki czstotliwo[ciowe obiektu okre[laj jego wzmocnienie i wprowadzane przesunicie fazowe dla sygnaBu monoharmonicznego w funkcji czstotliwo[ci. Przedstawia si je graficznie w postaci dwch wykresw: wzmocnienia (moduBu transmitancji zespolonej) w funkcji czstotliwo[ci i przesunicia fazowego (argumentu transmitancji zespolonej) w funkcji czstotliwo[ci. Warto[ odpowiedniej charakterystyki dla wybranej czstotliwo[ci mo|na wyznaczy przez podstawienie czstotliwo[ci do wzoru okre[lajcego transmitancj. 4.1 UkBad drugiego rzdu W szczeglnym przypadku obwd elektryczny mo|e by ukBadem drugiego rzdu. PrzykBadem takiego obwodu jest szeregowo-rwnolegBe poBczenie elementw RLC jak na poni|szym rysunku. R L U2 U1 C Transmitancja obiektu drugiego rzdu jest zapisywana z u|yciem standardowych parametrw wzmocnienia statycznego k, pulsacji naturalnej (drgaD nietBumionych) 0 i tBumienia . W postaci widmowej (po podstawieniu s=j) ma ona posta wzoru: U ( j ) k 2 K( j ) == 2 U1( j ) # #   1+ j2 - # #   # # 0 0 Dla powy|szego obwodu RLC standardowe parametry maj warto[ci: 0=sqrt(1/(LC)), =R/2*sqrt(C/L), k=1. Z widmowej postaci transmitancji mo|na Batwo otrzyma charakterystyki czstotliwo[ciowe. Matlab dostarcza jednak narzdzi do prezentacji takich charakterystyk bez konieczno[ci organizacji wyliczania warto[ci wzmocnienia i przesunicia fazowego. SBu|y do tego funkcja bode(), ktra woBana bez lewostronnych parametrw tworzy wykresy po|danych przez nas charakterystyk. Analiz odpowiedzi obwodu na standardowe wymuszenia w postaci skoku jednostkowego i impulsu mo|na przeprowadzi z u|yciem funkcji step() i impulse(). Wszystkie wymienione funkcje nale| do pakietu dodatkowego (ang. toolbox) Matlaba o nazwie Control. Przyjmuj opis analizowanego obiektu zarwno w postaci rwnaD stanu jak i transmitancji. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 6 Opracuj aplikacj do prezentacji wBa[ciwo[ci przedstawionego na rysunku obwodu RLC. Prezentowane powinny by charakterystyki czstotliwo[ciowe i odpowiedzi czasowe na dwa standardowe sygnaBy wymuszajce. Zacznij od funkcji, ktrej parametrami s warto[ci R, L i C, rysujcej odpowiednie wykresy w nowo tworzonym oknie. Nastpnie dodaj interfejs u|ytkownika do zadawania warto[ci elementw R, L, C w postaci pl edytowalnych, poBczonych ewentualnie z suwakami. WoBaj funkcj tworzenia wykresw po naci[niciu przez u|ytkownika przycisku lub po ka|dej zmianie parametru. ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 7 5. Dla tych, ktrzy chc wiedzie wicej - informacje dodatkowe 5.1 FFT w Matlabie Wyznaczanie widma sygnaBu w Matlabie realizuje funkcja fft() dyskretnej transformaty Fouriera wykorzystujca algorytm FFT je[li dBugo[ wektora prbek jest potg liczby 2. Wyniki zwracane przez t funkcj wymagaj krtkiego komentarza. Widmo sygnaBu sprbkowanego jest okresowe, powtarzajce si z odlegBo[ci fp na osi X, gdzie fp jest czstotliwo[ci prbkowania sygnaBu. Jeden okres widma jest dodatkowo symetryczny wzgldem [rodka, czyli punktu n*fp, gdzie n jest numerem okresu. Z okresowo[ci wynika |e widma bdzie rwnie| symetryczne wzgldem punktu n*fp/2. Funkcja fft() zwraca jeden okres widma z przedziaBu czstotliwo[ci od 0 dla indeksu 1 do fp-fp/N dla indeksu N. Widmo jest symetryczne wzgldem indeksu i=N/2+1 z pominiciem elementu pierwszego (odpowiadajcego skBadowej staBej sygnaBu). Prostsze wyra|enia na indeksy otrzymuje si stosujc indeksowanie od 0. Amplitudy poszczeglnych skBadowych nale|y przeliczy przez zBo|enie symetrycznych elementw i podzielenie ka|dej z otrzymanych warto[ci przez dBugo[ wektora prbek. Poniewa| skBadowa staBa nie ma symetrycznego odpowiednika wic jej amplituda wynosi A0=yf(1)/length(y), gdzie yf=abs(fft(y)). PozostaBe skBadowe maj amplitudy Ai=2*yf(i+1)/length(y). Poni|sze rysunki przedstawiaj analiz FFT prostego sygnaBu poliharmonicznego (zBo|onego z kilku sygnaBw sinusoidalnych). Widoczna jest symetria widma wzgldem [rodka. Aatwo w tym przypadku prze[ledzi odpowiednio[ midzy skBadowymi sinusoidalnymi sygnaBu a pr|kami jego widma pod wzgldem amplitudy jak i poBo|enia na osi czstotliwo[ci (indeksowanie od 0, czyli czstotliwo[ci fp/2 odpowiada indeks N/2). SygnaB dla t=1:2*pi/256:2*pi-2*pi/256 ModuB widma sygnaBu y w funkcji indeksu y=1+2*sin(10*t)+1.5*sin(50*t)+sin(120*t) od 0 do 255. 4.00 300.00 3.00 200.00 2.00 1.00 100.00 0.00 -1.00 0.00 0.00 2.00 4.00 6.00 0.00 128.00 256.00 t[s] i Matlab zawiera rwnie| funkcj fftshift() modyfikujc widmo do postaci stosowanej w literaturze symetrycznej wzgldem 0. Funkcja ifft() wykonuje odwrotn transformat Fouriera, czyli zmian dyskretnego widma sygnaBu na jego dyskretn posta czasow. ZakBad Metrologii AGH y[V] abs(fft(y)) Laboratorium Podstaw Informatyki Strona 8 5.2 PrzestrzeD stanw a transmitancja w Matlabie Opis ukBadw dynamicznych za pomoc rwnaD stanu i za pomoc transmitancji jest wymienny, ale z ograniczeniami. Opis rwnaniami stanu jest bardziej oglny, bo pozwala na zapis dwoma rwnaniami macierzowymi dynamiki ukBadw wielowej[ciowych i uwzgldnia stan pocztkowy ukBadu. Zapis transmitancyjny jest czytelniejszy. Rzadziej stosowany jest opis za pomoc zer i biegunw, czyli pierwiastkw wielomianw licznika i mianownika transmitancji. Matlab pozwala na u|ywanie wszystkich powy|szych sposobw opisu ukBadw. Wikszo[ funkcji przyjmuje opis w dwu postaciach transmitancji i rwnaD stanu (step(), bode(), itp.). Dostpne s rwnie| funkcje zmieniajce opis ukBadu z przestrzeni stanw na transmitancj (funkcja ss2tf()) i odwrotnie (funkcja tf2ss()) i z opisu zera-bieguny na pozostaBe opisy (zp2tf(), zp2ss(), ss2zp(), tf2zp()). ZakBad Metrologii AGH Laboratorium Podstaw Informatyki Strona 9 6. Dla tych, ktrzy chc by najlepsi - zadania dodatkowe 6.1 Transformacje figur geometrycznych w przestrzeni Analogicznie do transformacji figur na pBaszczyznie, transformacje w przestrzeni rwnie| mo|na opisa wyra|eniami macierzowymi. Dochodzi jednak w tym przypadku problem rzutowania figury na dwuwymiarow pBaszczyzn ekranu. Zapoznaj si z teori przeksztaBceD geometrycznych w przestrzeni [Jankowski]. Zbuduj w Matlabie aplikacj prezentujc przesuwajcy si i krccy sze[cian. 6.2 Filtracja sygnaBw dyskretnych Programowa filtracja sygnaBw dyskretnych sprowadza si do wykonywania operacji mno|enia i dodawania. Rozr|nia si przy tym filtry typu FIR o skoDczonej odpowiedzi impulsowej (sygnaB wyj[ciowy zale|y od prbek sygnaBu wej[ciowego) i filtry IIR o nieskoDczonej odpowiedzi impulsowej (o wyj[ciu zale|nym tak|e od poprzednich stanw wyj[cia). Zapoznaj si z teori filtracji cyfrowej [Borodziewicz]. Zaimplementuj w Matlabie filtr typu FIR i zastosuj go do filtracji dzwikw zapisanych w plikach typu WAV. 7. Literatura [1] Matlab User s Guide; The MathWorks Inc 1993 [2] Mrozek B.: Matlab - uniwersalne [rodowisko do obliczeD naukowo-technicznych; PLJ, Warszawa 1996 [3] Drozdowski P.: Wprowadzenie do Matlaba; Politechnika Krakowska 1995 [4] Borodziewicz W., Jaszczak L.: Cyfrowe przetwarzanie sygnaBw; WNT, Warszawa1987 [5] Jankowski M.: Elementy grafiki komputerowej; WNT, Warszawa 1990 ZakBad Metrologii AGH

Wyszukiwarka

Podobne podstrony:
Obliczenia numeryczne
Wykresy i obliczenia numeryczne w Excelu
Baza metadanych pomiarów meteorologicznych Zakładu Metrologii Politechniki Krakowskiej
SN023a Informacje uzupelniajace Model obliczeniowy zakladkowego styku slupa
mng gda pl Krajobraz polski Zakład fotograficzny Stanisława Szalaya
Program do obliczania pól figur geometrycznych Polek 1 2 pl
notatek pl obliczenia stropu plytowo zebrowego konstrukcje betonowe
najwazniejsze narzedzia w?iznesie www przeklej pl

więcej podobnych podstron