Technologia Informacyjna

Zaliczenie Laboratorium

Laboratorium

• Obecność na wszystkich laboratoriach

• W przypadku nieobecności opuszczone zajęcie należy odrobić

• Zaliczone dwa sprawdziany

dr inż. Wojciech Chlewicki

Zakład Podstaw Informatyki

• Kurtki należy zostawiać w szatni !!!!

ul. Sikorskiego 13, p. 208

chlewi@ps.pl

1

2

Tematy ćwiczeń

Technologia Informacyjna

• Hiperszybkie wprowadzenie do środowiska Laboratorium

obliczeniowego Matlab

• Reprezentacja i konwersja danych

• Próbkowanie sygnału

• Odczyt pliku audio

• FFT – reprezentacja sygnału w dziedzinie częstotliwości

• Odczyt i wizualizacja obrazów

• Tworzenie animacji

• Przeszukiwanie internetowych baz danych z informacją techniczną dostępnych w sieci PS

3

4

Hiperszybkie wprowadzenie do

Podstawowe instrukcje w oknie

Matlaba

poleceń

MATLAB - szeroko rozpowszechnione w świecie środowisko help, helpdesk - pomoc

do zaawansowanych obliczeń technicznych.

help funkcja - opis wybranej funkcji

Wiąże w sobie obliczenia, wizualizację danych oraz środowisko programistyczne.

Dla przykladu: help plot

Nazwa MATLAB jest skrótem od MATrix LABoratory.

lookfor słowo kluczowe - wyszukiwanie funkcji Podstawowym typem danych jest macierz.

związanych ze słowem kluczowym

Rozszerzeniami MATLABA są tzw. “toolbox”-y.

Dla przykladu: lookfor filter

5

6

Podstawowe instrukcje w oknie

MATLAB - Użyteczne techniki

poleceń

w oknie komend

• użycie klawisza TAB

cd zmiana katalogu

• wyświetlanie instrukcji poprzednio użytych dir (Windows) wyświetl pliki w aktualnym katalogu ls (Linux) - ‘’ -

7

8

Reprezentacja i konwersja

Reprezentacja i konwersja

danych

danych

Reprezentacja binarna

Reprezentacja binarna

Podstawa: 2

Podstawa: 2

Użyteczne procedury: dec2bin, bin2dec, Użyteczne procedury: dec2bin, bin2dec, Reprezentacja szesnastkowa

help dec2bin

Podstawa: 16

Użyteczne procedury: dec2hex, hex2dec help bin2dec

9

10

Reprezentacja i konwersja

Programowanie w Matlabie

danych

M-pliki

Reprezentacja binarna

• Skrypty - nie przyjmują argumentów

Podstawa: 2

wejściowych i nie zwracają wyjściowych.

Użyteczne procedury: dec2bin, bin2dec, Operują na danych w przestrzeni roboczej Reprezentacja szesnastkowa

• Funkcje - mogą przyjmować i zwracać Podstawa: 16

argumenty. Zmienne wewnętrzne są lokalne Użyteczne procedury: dec2hex, hex2dec w funkcji

Konwersja do reprezentacji przy podstawie dowolnej procedury: dec2base, base2dec 11

12

Edycja M-pliku

Edycja M-pliku

edit nazwa pliku - tworzenie i edycja programu a=hex2dec(‘3FFF’);

lub funkcji

b=hex2dec(‘1A’);

a+b

type nazwa pliku - wyświetl program w oknie poleceń

Wywołanie skryptu w oknie komend

>> nazwapliku

13

14

Drugi wykres w tym samym

Prosty wykres

oknie

t=1:20;

t=1:20;

y=sin(t);

y=sin(t);

plot(y);

plot(y);

hold on;

z=cos(t);

plot(z,’r’);

15

16

Generacja liczb w danym

Wykres słupkowy

zakresie

t=0:0.1:2*pi;

t=0:0.1:2*pi;

y=sin(t);

y=sin(t);

plot(y);

plot(y);

hold on;

hold on;

z=cos(t);

z=cos(t);

plot(z,’r’);

bar(z,’r’);

17

18

Otwieranie okienka wykresu

Zadanie

t=0:0.1:2*pi;

Wykonać wykres wartości cosinusoidy dla argumentów y=sin(t);

w przedziale od (2/3)π do 2π z krokiem co 0,25. Kolor figure(1);

wykresu zielony.

plot(y);

z=cos(t);

figure(2);

plot(z,’r’);

19

20

Podwykresy

Podwykresy

% Komentarz

% Komentarz

t=0:0.1:2*pi;

t=0:0.1:2*pi;

y=sin(t);

y=sin(t);

subplot(2,1,1);

subplot(1,2,1);

plot(y);

plot(y);

z=cos(t);

z=cos(t);

subplot(2,1,2);

subplot(1,2,2);

plot(z,’r’);

plot(z,’r’);

21

22

Zadanie

Funkcje w Matlabie

function wynik = dodajhex(ah,bh)

Wygenerować okienko z czterema podwykresami (dwa w pionie i dwa w poziomie) z nast a=hex2dec(ah);

ępującymi

elementami:

b=hex2dec(bh);

Podwykres 1) wartości sinusa – wykres liniowy wynik = dec2hex(a+b);

Podwykres 2) wartości cosinusa – wykres liniowy Podwykres 3) wartości sinusa – wykres słupkowy Podwykres 4) wartości cosinusa – wykres słupkowy 23

24

Funkcje w Matlabie

Zadanie

function wynik = dodajhex(ah,bh)

a=hex2dec(ah);

b=hex2dec(bh);

Napisać funkcję do konwersji liczby o podstawie a wynik = dec2hex(a+b);

do liczby o podstawie b.

Wywołanie funkcji w oknie komend

Przykładowe wywołanie funkcji:

>> base2base(‘f’,16,5)

>> dodajhex(‘f’,’a’)

25

26

Zadanie

Zadanie

Napisać funkcję która sumuje dwie liczby dziesiętne Napisać funkcję do konwersji liczby ósemkowej na i zwraca wynik w postaci szesnastkowej.

binarną.

Przykładowe wywołanie funkcji:

Przykładowe wywołanie funkcji:

>> dodajihex(3,4)

>> oct2bin(‘7’)

27

28

Próbkowanie sygnału

Próbkowanie sygnału

Dyskretyzacja sinusoidy

Twierdzenie Shannona

Fs = 2000; %Częstotliwość próbkowania t = 0:1/Fs:1; %Zdyskretyzowany czas

A = 1; %Wartość maksymalna sinusoidy F1 = 128; %Częstotliwość sygnału

x = A*sin(2*pi*t*F1);

% Wizualizacja

plot(t(10:128),x(10:128));

29

30

Próbkowanie sygnału

Próbkowanie sygnału

Dyskretyzacja sinusoidy

Fs = 2000; %Częstotliwość próbkowania Fs = 2000; %Częstotliwość próbkowania t = 0:1/Fs:1; %Zdyskretyzowany czas

A = 1; %Wartość maksymalna sinusoidy F1 = 128; %Częstotliwość sygnału

F1 = 128; %Częstotliwość sygnału

x = A*sin(2*pi*t*F1);

Czy spełniony jest warunek Shannon-a?

% Wizualizacja

wiz = 1:128;

plot(t(wiz),x(wiz));

31

32

Próbkowanie sygnału

Próbkowanie sygnału

Dyskretyzacja sinusoidy

Dyskretyzacja sinusoidy

Fs = 200; %Częstotliwość próbkowania

Fs = 200; %Częstotliwość próbkowania

t = 0:1/Fs:1; %Zdyskretyzowany czas

t = 0:1/Fs:1; %Zdyskretyzowany czas

A = 1; %Wartość maksymalna sinusoidy A = 1; %Wartość maksymalna sinusoidy F1 = 128; %Częstotliwość sygnału

F1 = 10; %Częstotliwość sygnału

x = A*sin(2*pi*t*F1);

x = A*sin(2*pi*t*F1);

% Wizualizacja

% Wizualizacja

wiz = 1:128;

wiz = 1:128;

plot(t(wiz),x(wiz));

plot(t(wiz),x(wiz));

33

34

Zaszumianie sygnału

Zadanie

Dyskretyzacja sinusoidy

Fs = 1024; %Częstotliwość próbkowania t = 0:1/Fs:1; %Zdyskretyzowany czas

A = 1;% Wartość maksymalna sinusoidy F1 = 20; % Częstotliwość sygnału

Wykonać wykres sygnału cosinusoidalnego o x = A*sin(2*pi*t*F1)+0.1*randn(size(t)); częstotliwości 250 Hz. Częstotliwość próbkowania i = 1:0.5*length(x);

plot(t(i),x(i));

jest podwojoną wartością minimalnej częstotliwości wynikającej z twierdzenia Shannona. Kolor wykresu czerwony.

35

36

Odszumianie sygnału poprzez

Zadanie

uśrednianie

Dyskretyzacja sinusoidy

Fs = 1024;% Częstotliwość próbkowania t = 0:1/Fs:1;% Zdyskretyzowany czas

A = 1;% Wartość maksymalna sinusoidy Wykonać wykres zaszumionego sygnału

F1 = 20; % Częstotliwość sygnału

sinusoidalnego o częstotliwości 70 Hz. Częstotliwość x = A*sin(2*pi*t*F1)+0.1*randn(size(t)); okno=2;

próbkowania jest potrojoną wartością minimalnej xfil=filter(ones(1,okno)/okno,1,x);

częstotliwości wynikającej z twierdzenia Shannona.

idx=1:256;

Kolor wykresu czarny.

figure(1);plot(t(idx),x(idx));

.

figure(2);plot(t(idx),xfil(idx));

37

38

Zadanie

Sprawdzian

Wykonać wykresy sygnałów w dwóch osobnych oknach:

Okno 1) wykres zaszumionego (czarny) i przefiltrowanego (niebieski) sygnału

cosinusoidalnego o częstotliwości 150 Hz.

Częstotliwość próbkowania wynosi 700 Hz.

Okno 2) wykres zaszumionego (czarny) i przefiltrowanego (niebieski) sygnału sinusoidalnego o częstotliwości 1000 Hz. Częstotliwość próbkowania wynosi 40 000 Hz.

39

40

Reprezentacja sygnału w

Reprezentacja sygnału w

dziedzinie czasu

dziedzinie częstotliwości

Sinusoida o częstotliwości 440 Hz, ton A 41

42

Reprezentacja sygnału 1D w

Reprezentacja sygnału 1D w

dziedzinie częstotliwości

dziedzinie częstotliwości

Fs = 1024; %Częstotliwość próbkowania Fs = 1024; %Częstotliwość próbkowania t = 0:1/Fs:1; %Zdyskretyzowany czas

t = 0:1/Fs:1; %Zdyskretyzowany czas

A = 1;% Wartość maksymalna sinusoidy A = 1;% Wartość maksymalna sinusoidy F1 = 50; % Częstotliwość sygnału

F1 = 50; % Częstotliwość sygnału

x = A*sin(2*pi*t*F1);

x = A*sin(2*pi*t*F1);

??? % Wizualizacja przebiegu

??? % Wizualizacja przebiegu

xfreq = fft(x);

widmo = 10 * log(abs(xfreq));

t=1:0.5*length(widmo);

figure(2);plot(t,widmo(t));

43

44

Reprezentacja sygnału 1D w

Reprezentacja sygnału 1D w

dziedzinie częstotliwości

dziedzinie częstotliwości

Fs = 1024; %Częstotliwość próbkowania Fs = 1024; %Częstotliwość próbkowania t = 0:1/Fs:1; %Zdyskretyzowany czas

t = 0:1/Fs:1; %Zdyskretyzowany czas

A = 1;% Wartość maksymalna sinusoidy A1 = 1; A2 = 0.6;

F1 = 150; % Częstotliwość sygnału

F1 = 50; F2 = 100;

x = A*sin(2*pi*t*F1);

x = A1*sin(2*pi*t*F1) + A2*sin(2*pi*t*F2);

??? % Wizualizacja przebiegu

??? % Wizualizacja przebiegu

xfreq = fft(x);

xfreq = fft(x);

xdisp = 10 * log(abs(xfreq));

xdisp = 10 * log(abs(xfreq));

t=1:0.5*length(xfreq);

t=1:0.5*length(xfreq);

figure(2);plot(t,xdisp(t));

plot(t,xdisp(t));

45

46

Reprezentacja sygnału 1D w

Reprezentacja sygnału 1D w

dziedzinie częstotliwości

dziedzinie częstotliwości

Fs = 1024; %Częstotliwość próbkowania Fs = 1024; %Częstotliwość próbkowania t = 0:1/Fs:1; %Zdyskretyzowany czas

t = 0:1/Fs:1; %Zdyskretyzowany czas

A1 = 1; A2 = 0.6; A3=0.4;

A1 = 1; A2 = 0.6;

F1 = 50; F2 = 100; F3=200;

F1 = 50; F2 = 100;

???

x = A1*sin(2*pi*t*F1) + A2*sin(2*pi*t*F2);

??? % Wizualizacja przebiegu

??? % Zaszumianie sygnału

xfreq = fft(x);

??? % Wizualizacja przebiegu

xdisp = 10 * log(abs(xfreq));

xfreq = fft(x);

t=1:0.5*length(xfreq);

xdisp = 10 * log(abs(xfreq));

plot(t,xdisp(t));

t=1:0.5*length(xfreq);

plot(t,xdisp(t));

47

48

Reprezentacja sygnału 1D w

Odczyt, przetwarzanie i zapis

dziedzinie częstotliwości

pliku audio

Fs = 1024; %Częstotliwość próbkowania Zadanie: Odczytać i wyświetlić przebieg sygnału t = 0:1/Fs:1; %Zdyskretyzowany czas

dźwiękowego zapisanego w pliku A1 = 1; A2 = 0.6;

F1 = 50; F2 = 100;

x = A1*sin(2*pi*t*F1) + A2*sin(2*pi*t*F2);

'C:\WINDOWS\Media\Windows XP – Autostart.wav'

??? % Zaszumianie sygnału

??? % Filtr uśredniający

lookfor wav

??? % Wizualizacja przebiegu

xfreq = fft(x);

xdisp = 10 * log(abs(xfreq));

t=1:0.5*length(xfreq);

plot(t,xdisp(t));

49

50

Reprezentacja sygnału 1D w

Odczyt pliku audio

dziedzinie częstotliwości

x=wavread('C:\WINDOWS\Media\Windows XP - Autostart'); subplot(2,1,1);

x=wavread('C:\WINDOWS\Media\Windows XP - Autostart'); plot(x(:,1));

figure(1)

subplot(2,1,2);

plot(x(1:2000,1));

plot(x(:,2));

figure(2)

plot(x(1:2000,2));

xfreq = fft(x(:,1));

xdisp = 10 * log(abs(xfreq));

t=1:0.5*length(xfreq);

plot(t,xdisp(t));

51

52

Spektrogram

Zmiana częstotliwości

próbkowania

t=0:0.001:2; % Czas przeb. 2 sec @ Fs= 1kHz clear

y=chirp(t,0,1,150);

load mtlb

t1=t(1:500);

figure(1); plot(mtlb);

figure(1);

[p,q] = rat(8192/Fs,0.0001);

plot(t1,y(1:length(t1)));

y = resample(mtlb,p,q);

figure(2); plot(y);

figure(2);

specgram(y,256,1E3,256,250);

53

54

Odczyt i wizualizacja obrazów

Tworzenie animacji

obraz = imread('C:\WINDOWS\Web\Wallpaper\Idylla.bmp','bmp'); obraz = imread('C:\WINDOWS\Web\Wallpaper\Idylla.bmp','bmp'); figure(1); image(obraz);

for j=1:25

colormap(gray);image(obraz);

obraz1=obraz; obraz1(:,:,2)=0.0; obraz1(:,:,3)=0.0; M(j) = getframe;

figure(2); image(obraz1);

obraz=circshift(obraz,[1 2]);

end

movie(M)

obraz2=obraz; obraz2(:,:,3)=0.0; obraz2(:,:,1)=0.0; movie2avi(M,'test.avi')

figure(3); image(obraz2);

obraz3=obraz; obraz3(:,:,1)=0.0; obraz3(:,:,2)=0.0; figure(4); image(obraz3);

55

56

Przeszukiwanie baz

Przeszukiwanie baz

internetowych

internetowych

Biblioteka Cyfrowa

Pełnotekstowa baza sciencedirect

http://www.knovel.com

http://vls.icm.edu.pl/ss.html

57

58

Przeszukiwanie baz

Przeszukiwanie baz

internetowych

internetowych

ProQuest

Bazy danych z abstraktami

http://proquest.umi.com/login

http:// www.scirus.com

59

60

Przeszukiwanie baz

Przeszukiwanie baz

internetowych

internetowych

INSPEC

GoogleScholar

http://vls.icm.edu.pl/webspirs

http://scholar.google.com

http://books.google.com

61

62

Przeszukiwanie baz

Sprawdzian

internetowych

IEEE Explore

http://ieeexplore.ieee.org/

63

64