51119

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

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

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

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

Украинкский

2014-02-06

613.88 KB

13 чел.

      

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

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

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

Лабораторна робота № 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 що відповідає об'єму пам'яті визначеним программно.


 

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

26792. Задача Коши для обыкновенного дифференциального уравнения 1-го порядка 94.5 KB
  Сетевая модель данных Стандарт сетевой модели впервые был определен в 1975 году организацией CODASYL Conference of Data System Languages которая определила базовые понятия модели и формальный язык описания. Базовыми объектами модели являются: элемент данных; агрегат данных; запись; набор данных Элемент данных то же что и в иерархической модели то есть минимальная информационная единица доступная пользователю с использованием СУБД. Агрегат данных соответствует следующему уровню обобщения в модели. Агрегат данных имеет имя и в...
26793. Уточнение корней уравнения. Метод деления отрезка пополам, метод секущих 126.5 KB
  Так как сущность соответствует некоторому классу однотипных объектов то предполагается что в системе существует множество экземпляров данной сущности. Объект которому соответствует понятие сущности имеет свой набор атрибутов характеристик определяющих свойства данного представителя класса. При этом набор атрибутов должен быть таким чтобы можно было различать конкретные экземпляры сущности. Набор атрибутов однозначно идентифицирующий конкретный экземпляр сущности называют ключевым.
26794. Обобщение простейших формул численного интегрирования 97 KB
  GPSS PC и GPSS World GPSS общецелевая система моделирования язык программирования используемый для имитационного моделирования различных систем в основном систем массового обслуживания. В 1984 выпускается версия GPSS на компьютерах типа IBM PC. Синтаксис языка в основном соответствовал GPSS V но было некоторое расширение подмножества например были выведены блоки CHANGE HELP PRINT и WRITE и общее число блоков доведено до 44. Подобно GPSS V и в отличии от GPSS H время моделирования должно быть целым числом но почти не ограниченно по...
26795. Численное интегрирование. Геометрический смысл численного интегрирования 69.5 KB
  Геометрический смысл численного интегрирования Численное интегрирование это вычисление определенных интегралов от функций заданных либо в явном виде например либо в виде таблицы. Например отношение в реляционной модели данных не допускает наличия одинаковых кортежей а таблицы в терминологии SQL могут иметь одинаковые строки. SQL содержит 4 группы операторов: операторы описания данных create drop alter операторы манипуляции данными insert delete select операторы задания прав доступа в базе данных lock unlock операторы защиты...
26798. Основы методологии проектирования ИС 152 KB
  В общем виде цель проекта можно определить как решение ряда взаимосвязанных задач включающих в себя обеспечение на момент запуска системы и в течение всего времени ее эксплуатации: требуемой функциональности системы и уровня ее адаптивности к изменяющимся условиям функционирования; требуемой пропускной способности системы; требуемого времени реакции системы на запрос; безотказной работы системы; необходимого уровня безопасности; простоты эксплуатации и поддержки системы. Конечными продуктами этапа проектирования являются: схема базы...
26799. Информационные системы. Основные понятия. Корпоративные информационные системы. Структура КИС 469.61 KB
  Корпоративные информационные системы. взаимосвязанные функциональные подсистемы обеспечивающие решение задач организации. Функциональные подсистемы в принципе не могут существовать без компьютерной инфраструктуры.
26800. История развития баз данных 420.15 KB
  И в этом случае наличие сравнительно медленных устройств хранения данных к которым относятся магнитные ленты и барабаны было недостаточным. Эти устройства внешней памяти обладали существенно большей емкостью чем магнитные барабаны обеспечивали удовлетворительную скорость доступа к данным в режиме произвольной выборки а возможность смены дискового пакета на устройстве позволяла иметь практически неограниченный архив данных. До этого каждая прикладная программа которой требовалось хранить данные во внешней памяти сама определяла...