Odtwarzanie sygnałów w Matlabie → →

Transkrypt

Odtwarzanie sygnałów w Matlabie → →
Odtwarzanie sygnałów w Matlabie
plik
dźwiękowy
*.wav
Æ
zmienna
w Matlabie
(wektor,
macierz Mx2)
Æ
interfejs
audio
Odtwarzanie sygnałów w Matlabie
Funkcja odczytu sygnału z pliku audio *.wav
d = wavread(plik);
[d, fs, nbits] = wavread(plik);
[d, fs, nbits] = wavread(plik, [n1 n2]);
Odtwarzanie sygnałów w Matlabie
Przykładowy program umożliwiający odczyt dźwięku
z pliku przy pomocy GUI
[file, path] = uigetfile('*.wav');
if file == 0
return;
end;
[d, fs] = wavread([path, file]);
Odtwarzanie sygnałów w Matlabie
Odtwarzanie sygnału ze zmiennej
sound (d, fs);
sound (d, fs, nbits);
soundsc (d, fs, nbits, zakres);
wavplay (d, fs, ’async’);
wavplay (d, fs, ’sync’);
Odtwarzanie sygnałów w Matlabie
plik
obrazu
Æ
zmienna
w Matlabie
(macierz)
Æ
obraz
Odtwarzanie sygnałów w Matlabie
Funkcja odczytu sygnału z plików obrazu
[x, map] = imread (plik, fmt);
dostępne formaty zapisu obrazu:
bmp, jpg, tiff, pcx, png, xwd, ico,
cur, hdf, pgm,ppm,pbm,ras
Odtwarzanie sygnałów w Matlabie
Wyświetlenie obrazu ze zmiennej
imshow(x, map);
Imshow (rgb);
Imshow (bw);
image (x);
colormap (map);
Odtwarzanie sygnałów w Matlabie
plik
audio_video
*.avi
Æ
zmienna
w Matlabie
(struktura)
Æ
Interfejs
audio-video
Odtwarzanie sygnałów w Matlabie
Funkcja odczytu sygnału z pliku audio-video *.avi
s = aviread (plik, klatka);
struktura s (klatka)
s. cdata – macierz pikseli
s. colormap – definicja macierzy kolorów
Odtwarzanie sygnałów w Matlabie
Struktura info pliku *.avi
info = aviinfo (plik);
nazwa pliku
rozmiar pliku
liczba klatek
liczba klatek/sek
rozmiar obrazu
typ obrazu
kompresja
jakość - [1:100]
format audio
Odtwarzanie sygnałów w Matlabie
Odtwarzanie klatek ze zmiennej strukturalnej – s (klatka)
movie (s);
movie (s, n);
movie (s, n, fps);
s. cdata – macierz pikseli
s. colormap – definicja macierzy kolorów
Rejestracja sygnałów w Matlabie
interfejs
audio
Æ
zmienna
w Matlabie
(wektor,
macierz Mx2)
Æ
plik
dźwiękowy
*.wav
Rejestracja sygnałów w Matlabie
Funkcja odczytu sygnału z urządzenia audio
d = wavrecord (nsmp, fs);
d = wavrecord (nsmp, fs, ch);
Rejestracja sygnałów w Matlabie
Funkcja zapisu sygnału do pliku dźwiękowego
*.wav
wavwrite (d, fs, plik);
wavwrite (d, fs, nbits, plik);
Rejestracja sygnałów w Matlabie
Funkcja zapisu sygnału do pliku audio_video
*.avi
movie2avi (s, plik);
s. cdata – macierz pikseli
s. colormap – definicja macierzy kolorów
Parametry zapisu:
liczba klatek/sek - fps
kompresja
mapa kolorów
opis strumienia video
Rejestracja sygnałów w Matlabie
Zapis obiektów GUI w postaci sekwencji obrazów
s = getframe (obj)
Funkcje dodatkowe:
[x, map] = frame2im(s(klatka))
s(klatka) = im2frame(x, map)
Odtwarzanie sygnałów w Matlabie
przy użyciu obiektu DAQ
plik
dźwiękowy
*.wav
Æ
zmienna
w Matlabie
(wektor,
macierz Mx2)
Æ
Obiekt
DAQ
Æ
interfejs
audio
Odtwarzanie sygnałów w Matlabie
przy użyciu obiektu DAQ
Przegląd dostępnych urządzeń audio: adv = audiodevinfo;
Wybór urządzeń audio do odtwarzania: adv.output
Parametry n – tego urządzenia audio: adv.output(n).Name
adv.output(n).DriverVersion
adv.output(n).ID {0,1,2…}
Odtwarzanie sygnałów w Matlabie
przy użyciu obiektu DAQ
Inicjalizacja obiektu: ao = analogoutput (‘ winsound ‘, id)
ch = addchannel (ao, 1) - mono
Przypisanie kanałów:
ch = addchannel (ao, [1, 2]) - stereo
Odtwarzanie sygnałów w Matlabie
przy użyciu obiektu DAQ
Parametry kanałów sygnału mono:
ch.ChannelName = [‘Mono’]
ch.HwChannel = 1
ch.OutputRange = [-1, 1]
ch.UnitsRange = [-1, 1]
ch.Units = ‘Volts’
Odtwarzanie sygnałów w Matlabie
przy użyciu obiektu DAQ
Parametry kanałów sygnału stereo:
ch.ChannelName = [‘Left’,’Right’]
ch.HwChannel = [1, 2]
ch.OutputRange = [-1, 1], [-1, 1]
ch.UnitsRange = [-1, 1],[-1, 1]
ch.Units = [‘Volts’,’Volts’]
Odtwarzanie sygnałów w Matlabie
przy użyciu obiektu DAQ
Podstawowe parametry (domyślne):
ao.BufferingConfig = [512, 0];
ao.SampleRate = 8000
{8000,… 44100}
ao. RepeatOutput = 0
{1,2,3…Inf}
Odtwarzanie sygnałów w Matlabie
przy użyciu obiektu DAQ
Odtwarzanie danych ze zmiennej:
Załadowanie obiektu: putdata (ao, d)
uruchomienie obiektu: start (ao)
Odtwarzanie sygnałów w Matlabie
przy użyciu obiektu DAQ
Przykład programu do ciągłego odtwarzania sygnału audio:
ao. RepeatOutput = Inf;
putdata (ao, d);
start (ao);
pause;
stop (ao);
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Interfejs
audio
Æ
Obiekt
DAQ
Æ
Zmienna
w Matlabie
(wektor,
macierz
Mx2)
Æ
Plik
dźwiekowy
*.wav
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Przegląd dostępnych urządzeń audio: adv = audiodevinfo
Wybór urządzeń audio do rejestracji:
adv.input
Parametry n – tego urządzenia audio: adv.input(n).Name
adv.input(n).DriverVersion
adv.input(n).ID {0,1,2…}
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Inicjalizacja obiektu:
ai = analoginput (‘ winsound ‘, id)
ch = addchannel (ai, 1) - mono
Przypisanie kanałów:
ch = addchannel (ai, [1, 2]) - stereo
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Parametry kanałów sygnału mono:
ch.ChannelName = [‘Mono’]
ch.HwChannel = 1
ch.InputRange = [-1, 1]
ch.SensorRange = [-1, 1]
ch.UnitsRange = [-1, 1]
ch.Units = ‘Volts’
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Parametry kanałów sygnału stereo:
ch.ChannelName = [‘Left’,’Right’]
ch.HwChannel = [1, 2]
ch.InputRange = [-1, 1], [-1, 1]
ch.SensorRange = [-1, 1], [-1, 1]
ch.UnitsRange = [-1, 1], [-1, 1]
ch.Units = [‘Volts’, ‘Volts’]
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Podstawowe parametry (domyślne):
ai.BufferingConfig = [512, 30]
ai.SampleRate = 8000;
{8000,… 44100}
ai.TriggerType = ‘immediate’ {‘manual’,’software’}
ai. TriggerRepeat = 0
ai. SamplesperTrigger = 1024
{1,2,3…Inf}
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Zapis danych przy wyzwalaniu „natychmiastowym”:
ai.TriggerType = ‘immediate’
uruchomienie obiektu: start(ai);
przesunięcie danych z obiektu do zmiennej: d = getdata (ai);
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Zapis danych przy wyzwalaniu „ręcznym”:
ai.TriggerType = ‘manual’
uruchomienie obiektu: start(ai)
rozpoczęcie wczytywania danych do obiektu: trigger(ai)
przesunięcie danych z obiektu do zmiennej: d = getdata (ai)
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Zapis danych przy wyzwalaniu programowym (sygnałowym)
ai.TriggerType = ‘software’
Nastawy dodatkowych parametrów:
przypisanie trybu wyzwalania do kanału: ai.Triggerchannel = ch
wybór warunku wyzwalania: ai.TriggerCondition
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Rodzaje warunków wyzwalania:
‘rising’ – przekroczenie progu przy wzroście sygnału
‘falling’ – przekroczenie progu przy spadku sygnału
ai.TriggerCondition =
‘leaving‘ – sygnał poza zakresem
‘entering’ – sygnał wewnątrz zakresu
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
wybór progu wyzwalania:
ai.TriggerConditionValue = tr
{‘rising’,’falling’ }
ai.TriggerConditionValue = [tr1, tr2]
{‘leaving’,’entering’ }
uruchomienie obiektu: start(ai)
przesunięcie danych z obiektu do zmiennej
po spełnieniu danego warunku:
d = getdata (ai)
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
Przykład programu do rejestracji ciągłej – wyzwalanie natychmiastowe:
ai.TriggerType = ‘immediate’;
ai.SamplesperTrigger = Inf;
start (ai);
pause;
stop (ai);
ns = ai.SamplesAvailable;
d = getdata (ai, ns),
Rejestracja sygnałów w Matlabie
przy użyciu obiektu DAQ
delete (ao)
Kasowanie obiektów DAQ:
delete (ai)
daqreset
Rejestracja sygnałów w Matlabie
przy użyciu obiektu IAQ
Interfejs
video
Æ
Obiekt
IAQ
Æ
zmienna
w Matlabie
(struktura)
Æ
plik *.avi
Rejestracja sygnałów w Matlabie
przy użyciu obiektu IAQ
Inicjalizacja obiektu:
vid = videoinput (‘winvideo ‘, id);
Rejestracja sygnałów w Matlabie
przy użyciu obiektu IAQ
Podstawowe parametry (domyślne):
vid.VideoResolution = [160 120];
vid.ReturnedColorSpace = YCbCr; {rbg}
vid.FramesperTrigger = 10;
Rejestracja sygnałów w Matlabie
przy użyciu obiektu IAQ
uruchomienie obiektu: start (vid);
przesunięcie danych z obiektu do zmiennej: s = getdata(vid);
s – jest zmienną czterowymiarową
rozmiar obrazu – 3 wymiary
Numer klatki – 4 wymiar
Rejestracja sygnałów w Matlabie
przy użyciu obiektu IAQ
Przykład programu do rejestracji ciągłej :
vid.FramesperTrigger = Inf;
start (vid);
pause;
stop (vid);
nf = vid.FramesAvailable;
s = getdata (vid, nf),
Rejestracja sygnałów w Matlabie
przy użyciu obiektu IAQ
Kasowanie obiektów IAQ:
delete (vid);
Imaqreset;

Podobne dokumenty