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