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;