51119

Реєстрація сигналів в MatLAB

Лабораторная работа

Информатика, кибернетика и программирование

Прочитати за допомогою функції load в робочу область сигнал ЕКГ, отриманий з допомогою комп’ютерного електрокардіографа та збережений у mat-файлі. Вивести графік, позначити вісі. (файл архіву ECG_rec.rar на сайті, обрати сигнал згідно номеру за списком; ЕКГ дискретизована з частотою 400 Гц, значення напруги в мілівольтах отримується діленням величин відліків на 500). Визначити (програмно) тривалість записаного сигналу.

Украинкский

2014-02-06

613.88 KB

12 чел.

      

Національний технічний університет України

«Київський політехнічний інститут»

Факультет електроніки

Лабораторна робота № 2

з дисципліни «Теорія сигналів»

«Реєстрація сигналів в MatLAB»

Виконав:  студент 3-го курсу

групи ДП-92

 Лонтковський С.А.

Київ – 2011

Завдання:

1. Прочитати за допомогою функції load в робочу область сигнал ЕКГ, отриманий з допомогою комп’ютерного електрокардіографа та збережений у mat-файлі. Вивести графік, позначити вісі. (файл архіву ECG_rec.rar на сайті, обрати сигнал згідно номеру за списком; ЕКГ дискретизована з частотою 400 Гц, значення напруги в мілівольтах отримується діленням величин відліків на 500). Визначити (програмно) тривалість записаного сигналу.

Текст програми:

clear all

close all

load('ecg_1.mat');

v=400;

n=length(d);

i=0:n-1;

t=i/v;

subplot(2,1,1);

plot(t,[d]/500);

xlabel('t, c');

ylabel('U,mB');

grid;

subplot(2,1,2);

strips(d, 4 ,400 ,1);

xlabel('t, c');

grid;

savefile = '1.mat';

save(savefile, 't', 'd');

t=num2str( max(t));

f=strcat('t=', t,' (c)');

disp(f);

Тривалість сигналу : t=10.2375 (c)


2. Прочитати за допомогою функції load в робочу область сигнали ЕЕГ здорової та хворої людини, отримані з допомогою комп’ютерного електроенцефалографа та збережені у mat-файлі. Вивести графік, позначити вісі. (файли архіву EEG_healthy.rar та EEG_sick.rar на сайті, обрати сигнал згідно номеру за списком; ЕЕГ дискретизована з частотою 256 Гц, значення напруги подано в мікровольтах). Визначити (програмно) тривалість записаного сигналу.

Текст програми:

clear all

close all

 

subplot(3,1,1);

hold on

load('eeg_healthy_1.mat');

load('eeg_sick_1.mat');

n=length(sig_healthy);

v=256;

i=0:n-1;

t=i/v;

plot(t, sig_healthy);

plot(t,sig_sick);

xlabel('t, c');

ylabel('U,мкB');

grid;

hold off

 

subplot(3,1,2);

strips(sig_healthy, 5 ,256,1);

xlabel('t, c');

title('healthy');

grid

 

 

subplot(3,1,3);

strips(sig_sick, 5 ,256,1);

xlabel('t, c');

title('sick');

grid

savefile= '2.mat';

save(savefile, 't','sig_healthy','sig_sick');

 

t=num2str( max(t));

f=strcat('t=', t,' (c)');

disp(f);

Тривалість сигналу: t=10 (c)

3. Прочитати в робочу область сигнал внутришньочерепного тиску за допомогою функції fscanf (файл TBI_ICP.txt; сигнал одноканальний, записаний з частотою дискретизації 125 Гц, одиниці виміру – ммHg), вивести графік на екран, позначити вісі. Зберегти отриманий сигнал у вигляді mat-файлу.

Текст програми:

clear all

close all

tf=fopen('TBI_ICP.txt');

A=fscanf(tf,'%f');

n=length(A);

v=125;

i=0:n-1;

t=i/v;

strips(A, 4500,v,1);

xlabel('t, c');

ylabel('ммHg');

savefile = '3.mat';

save(savefile, 't', 'A');

t=num2str( max(t));

f=strcat('t=', t,' (c)');

disp(f);

Тривалість сигналу : t=21606.392 (c)


4. Прочитати в робочу область сигнал артеріального тиску (файл TBI_ABP.txt; сигнал одноканальний, записаний з частотою дискретизації 125 Гц, одиниці виміру – ммHg) за допомогою функції textread, вивести графік на екран, позначити вісі. Зберегти отриманий сигнал у вигляді mat-файлу. Визначити тривалість записаного сигналу. 

Текст програми :

clear all

close all

A=textread('TBI_ABP.txt');

n=length(A);

v=125;

i=0:n-1;

t=i/v;

strips(A, 2500,v ,1);

ylabel('ммHg')

savefile = '4.mat';

save(savefile, 't', 'A');

t=num2str( max(t));

f=strcat('t=', t,' (c)');

disp(f);

Тривалість сигналу : t=21606.392 (c)


5. Побудувати файл-функцію для виводу на графік ділянки сигналів, отриманих в пп. 1-4. В функцію передавати: час початку та закінчення ділянки, вектор з відліками сигналу, а також інші необхідні дані.

Текст програми :

function f=grf(tmin,tmax,x ,v,amp);

clc;

a=tmin*v;

b=tmax*v;

t=a/v:1/v:b/v;

y=amp*x(a+1:b+1);

f=plot(t,y);

grid;

xlabel('t,c');

ylabel('Y(t)');

           6. Побудувати файл сценарію для виводу на графік потрібної ділянки сигналів, отриманих в пп. 1-4. Значення початку та закінчення ділянки задавати з клавіатури.

Текст програми :

clear all;

close all;

clc;

fn=num2str(input('Name mat file: '));

r=strcat(fn,'.mat');

load(r);

disp(load(r));

x=input('X name of the vector: ');

tmin=input('tmin: ');

tmax=input('tmax: ');

v=input('V: ');

amp=input('Amplitud=X* ');

grf(tmin,tmax,x,v,amp);

Name mat file: 1

   t: [1x4096 double]

   d: [1x4096 double]

X name of the vector: d

tmin: 3

tmax: 8

V: 256

Amplitud=X* 0.03

           9. Зареєструвати за допомогою реанімаційного монітору багатоканальний сигнал ЕКГ та сигнал плетизмограми, зберегти дані у вигляді бінарного файлу.

Частота дискретизації сигналів дорівнює 155.1 Гц в кожному каналі. В бінарному файлі відліки відведень розташовані по стовпцях. Кожний рядок відповідає окремому відведенню.

Прочитати дані з бінарного файлу в робочу область MatLAB, вивести графіки всіх сигналів на екран в одному вікні за допомогою функції subplot. Зберегти отримані сигнали в матриці у mat-файлі.

Текст програми :

close all

clear all

 k=3;

 sig=fopen('sig1.bin','rb');

 A=fread(sig,[k inf],'int16');

 fclose(sig);

 n=length(A);

 v=151.1;

 i=0:n-1;

 t=i/v;

for e=1:k;

   m=A(e,:);

   subplot(k,1,e);

   plot(t,m);

   grid;

   xlabel('t, c');

   ylabel('Y(t)');

end

   savefile = 'sig1.mat';

   save(savefile, 't', 'A');

   


10. Записати звук тривалістю 5 сек. в робочу область за допомогою функції wavrecord. Записати однакові фрази з частотою дискретизації 8 кГц та 44 кГц. Записати дані в .wav- файл. Засобами операційної системи оцінити об’єм пам’яті, необхідний для збереження сигналу.

Текст програми :

clear all

close all

clc;

         

 Fs1=44000;

 y1=wavrecord(5*Fs1, Fs1,'int16');

 wavwrite(y1,Fs1,'1.wav');

  Fs2=8000;

  y2=wavrecord(5*Fs2, Fs2,'int16');

  wavwrite(y2,Fs2,'2.wav');

Sound1 44kHz: 429.73kb

Sound2 8kHz:78.17kb

11. Прочитати та прослухати отримані записи з допомогою функції wavread. Засобами MatLAB отримати з файлу дані про частоту дискретизації та кількість бітів на відлік.

Текст програми :

clear all

close all

clc;

 

[N1,frequency1,bit1]=wavread('1.wav');

[N2,frequency2,bit2]=wavread('2.wav');

 

wavplay(N1,frequency1);

wavplay(N2,frequency2);

 

disp(['                      N           bit    F(kHz)']);

t=num2str([1 length(N1) bit1  frequency1/1000;2 length(N2) bit2 frequency2/1000]);

f=strcat( 'Sound' ,t);

disp(f);

                   N          bit    F(kHz)

Sound1  220000      16       44

Sound2   40000       16        8

12. Побудувати функцію, яка будує графік запису звуку заданої тривалості. Значення початку та закінчення ділянки задавати з клавіатури.

Текст програма :

function f=grf12(tmin,tmax,x ,v,amp);

a=tmin*v;

b=tmax*v;

t=a/v:1/v:b/v;

y=amp*x(a+1:b+1);

f=plot(t,y);

grid;

xlabel('t,c');

ylabel('Y(t)');

clear all;

close all;

clc;

fn=num2str(input('Name wav file: '));

r=strcat(fn,'.wav');

wavread(r);

tmin=input('tmin: ');

tmax=input('tmax: ');

v=input('V: ');

amp=input('Amplitud=X* ');

x=[ans];

grf12(tmin,tmax,x,v,amp);

Name wav file: 1

tmin: 2.5

tmax: 5

V: 36000

Amplitud=X* 3

 

                                                                         Висновки :

Записаний аудіо сигнал тривалістю 5 сек. із частотою 44КГц займає об'єм пам'яті 429.73kb , а у випадку із частотою 8КГц складає 78.17kb. Виходячи із цих даних можна розрахувати необхідну кількість пам’яті на 1 відлік: 1b=8bit;  (78.17*1024*8)/(5*8000)=16,009≈16bit що відповідає об'єму пам'яті визначеним программно.


 

А также другие работы, которые могут Вас заинтересовать

57759. Фізика і хімія - науки, що визначають сучасний науково – технічний прогрес 50.5 KB
  Мета уроку: розкрити величезне визначальне значення наук фізики та хімії в розв’язанні глобальних проблем сучасності: енергетичної, продовольчої, технічної, проблеми збереження миру в усьому світі...
57760. Робота з рухомою картою зоряного неба 149.5 KB
  Рухома карта складається з двох частин: рухомого диска (зоряної карти), який може обертатись навколо вісі, що проходить через його центр, і нерухомо розташованого над ним накладного круга.
57761. Изучение звёздного неба 95 KB
  Цели урока: Создать условия для: изучения созвездий наблюдения интересных объектов в этих созвездиях отработки навыков уверенного нахождения созвездий и самых ярких звёзд северного неба...
57762. Розв’язування нерівностей з однією змінною 114.5 KB
  Мета: відтворити знання про лінійні нерівності з однією змінною; удосконалювати вміння учнів розвязувати нерівності з однією змінною формувати навички самостійної роботи...
57763. Решение иррациональных неравенств 1.41 MB
  Формировать умения и навыки решения иррациональных неравенств различными способами. Формировать социальную компетентность: предоставлять учащимся возможность проявлять инициативу.
57764. Der Gemüsegarten 38.5 KB
  Практична: ввести лексичні одиниці за темою уроку та тренувати їх вживання в усному та писемному мовленні, закріпити вживання сильних дієслів у теперішньому часі на прикладі дієслова essen.
57765. Текст-переклад. Бінарний урок з інформатики та англійської мови 143.5 KB
  А зараз давайте пригадаємо пристрій, який допоможе нам друкувати текст. Називається він?(клавіатура). На клавіатурі знаходиться багато клавіш. Це алфавітно-цифрове поле (демонструється малюнок клавіатури).
57766. Перерізи многогранників. Метод слідів 712 KB
  Многогранники Опуклі многогранники Правильний многогранник Куб Паралелепіпед Піраміда Призма а у другій нові переріз діагональний переріз січна площина.
57767. Перська держава 73.5 KB
  Мета: ознайомити учнів з особливостями зародження і функціонування держави Персії охарактеризувати діяльність найвідоміших правителів Персії: Кіра ІІ Дарія І розкрити завойовницький характер їх зовнішньої політики...