Laboratorium
Transkrypt
Laboratorium
Ćwiczenie 2 Grafika i programowanie w MATLAB-ie Cele ćwiczenia Poznanie funkcji realizujących wykresy. Zapoznanie z możliwościami przedstawiania zmiennych na wykresach. Opanowanie umiejętności dopasowywania wyglądu wykresu do potrzeb prezentacji wyników. Opanowanie umiejętności tworzenia bardzo prostych programów służących do generowania ciągów, które będą wykorzystywane w kolejnych ćwiczeniach. Funkcja plot Funkcja plot wykonuje dwuwymiarowe wykresy z liniową skalą na obu osiach. Wywołanie funkcji powoduje otwarcie okienka graficznego, w którym pojawia się wykres. Funkcja plot może być wykonywana z różną ilością parametrów. Składnia funkcji może przyjmować postać: plot(y) % domyślnie x=[1,2,3,…] plot(x,y) % wykres pojedynczy, gdy y jest wektorem plot(x,y,x1,y1,…) % kilka wykresów gdzie: x – wektor n elementowy zawierający wartości zmiennej x, y – wektor n elementowy lub macierz o wymiarach m×n zawierająca wartości wykreślanej funkcji, x1, y1 – dane dla kolejnych wykresów. Przykłady: 12 Ćwiczenie 2. Grafika i programowanie w MATLAB-ie >>x=0:pi/100:4*pi; % wektor zmiennej x >>y=sin(x); % wektor wartości funkcji >>plot(y) % oś x wyskalowana domyślnie kolejnymi % liczbami naturalnymi >>plot(x,y) % na osi x kolejne wartości wektora x >>plot(x,sin(x),x,cos(x)) % dwa wykresy >>plot(x,[sin(x);cos(x)]) % dwa wykresy Polecenie 1. Wykreślić na wykresie plot następujące funkcje: x2 + 3x + 10 – 100 punktów dla x od −10 do 10, sin(2x)cos(100x) – 100 punktów dla x od 0 do 3π, sin(5x)cos(10x) – 100 punktów dla x od 0 do 3π. Edycja właściwości wykresu W MATLAB-ie istnieją funkcje umożliwiające zmianę właściwości wykresu, dodawanie komentarzy, etykietowanie osi itp.. Wykorzystanie tych funkcji jest kłopotliwe, gdyż trzeba nauczyć się ich nazw i składni, na szczęście do wszystkich tych funkcji jest dostęp poprzez interfejs graficzny wykresu. Aby wywołać formularz edycji właściwości wykresu, należy kliknąć na ikonę ze strzałką, następnie kliknąć podwójnie w obszarze wykresu. Polecenie 2. Wywołać formularz edycji właściwości wykresu, następnie: zapoznać się z możliwościami edytowania właściwości wykresu, zmienić skale na osiach x i y, opisać wykres dodając tytuł wykresu i opisy osi, wyeksportować wykres do systemu operacyjnego jako plik graficzny. Powyższe czynności będą potrzebne do przygotowania sprawozdań z następnych ćwiczeń, które będą dotyczyły cyfrowego przetwarzania sygnałów. 13 Ćwiczenie 2. Grafika i programowanie w MATLAB-ie Polecenie 3. Przedstawić na wykresie moduł funkcji T ( j ) 1 . 1 0.1 j Cechy wykresu: wartości ω od 1 do 1000, wartości na osi y w decybelach, oś x wyskalowana logarytmicznie . Wykres jaki należy uzyskać przedstawiono na rys. 2.1. Rys. 2.1. Wykres funkcji 1 w skali logarytmiczno decybelowej. 1 0.1 j Funkcja stem Funkcja stem wykonuje dwuwymiarowe wykresy dyskretne z liniową skalą na obu osiach. Wywołanie funkcji powoduje otwarcie okienka graficznego, w którym pojawia się wykres. Składnia funkcji może przyjmować postać: stem(y) % domyślnie x=[1,2,3,…] stem(x,y) 14 Ćwiczenie 2. Grafika i programowanie w MATLAB-ie Funkcja jest przydatna do wykreślania widma amplitudowego sygnałów oraz wykreślania niedługich ciągów próbek (przy długich ciągach wykres jest nieczytelny). Polecenie 4. Wykreślić na wykresie stem następujące funkcje: sin(2x)cos(100x) – 50 punktów dla x od 0 do 3π, sin(2x)cos(100x) – 500 punktów dla x od 0 do 3π. Funkcja stem pozwala wykreślić tylko jeden ciąg na wykresie, co jest zrozumiałe ponieważ umieszczenie dwóch ciągów na jednym wykresie jest mało czytelne. Aby na jednym wykresie umieścić funkcje ciągłą i dyskretną, należy posłużyć się funkcją plot zmieniając typ jednej z wykreślanych funkcji na dyskretną. 1 Na rys. 2.2 przedstawiono połączenie wykresu ciągłego z dyskretnym. Wykres ciągły przedstawia jeden okres sinusoidy, wykres dyskretny przedstawia próbki tej sinusoidy. Rys. 2.2. Połączenie wykresu ciągłego i wykresu dyskretnego uzyskane za pomocą funkcji plot. Instrukcja warunkowa Ogólna postać instrukcji warunkowej jest następująca: 1 Tworzenie wykresów dyskretnych przez funkcję plot jest możliwe od wersji 7 MATLAB-a. 15 Ćwiczenie 2. Grafika i programowanie w MATLAB-ie if wyrażenie_logiczne_1 polecenia elseif wyrażenie_logiczne 2 polecenia … else polecenia end Jeśli wartość wyrażenia logicznego jest różna od zera, to wykonywane są polecenia po if. Jeśli wartość wyrażenia jest równa zero, to polecenia po if nie są wykonywane, a wykonywana jest zagnieżdżona instrukcja elseif (jeśli jest taka instrukcja). Instrukcja warunkowa może być wielokrotnie zagnieżdżona. Polecenia po słowie kluczowym else są wykonywane, jeśli żadne z wyrażeń nie miało wartości różnej od zera. Poniższa tabela zawiera operatory relacji i operatory logiczne, które mogą wystąpić w wyrażeniach logicznych. Symbol < <= > Operator relacji Symbol Operator logiczny mniejszy od & koniunkcja – AND mniejszy albo równy | alternatywa – OR większy od ~ Negacja >= większy albo równy == równy ~= różny xor XOR Tabela 2.1. Operatory relacji i operatory logiczne. Przykład: x=1; if x>10 disp('x jest większe od 10') else disp('x jest mniejsze lub równe 10') end; 16 Ćwiczenie 2. Grafika i programowanie w MATLAB-ie Pętla indeksowana – for Pętla for jest w MATLAB-ie pętlą o określonej liczbie iteracji. Postać pętli jest następująca: for zmienna_sterująca = wyrażenie polecenia end Wyrażenie określające liczbę iteracji ma najczęściej postać: zmienna_sterująca = wartość_początkowa:krok:wartość_końcowa Przykład: x=-10; Y=x*x; % inicjacja zmiennej Y for x = -9.9:0.1:10 if x<0 Y=[Y x*x]; else Y=[Y 10*x]; end end x=-10:0.1:10; plot(x,Y) Polecenie 5. Wykorzystując pętlę for wygenerować ciąg próbek fali trójkątnej o parametrach: długość ciągu = 100 próbek, okres = 20 próbek, wartość maksymalna = 10, wartość minimalna = −10. 17