Скачиваний:
10
Добавлен:
01.12.2022
Размер:
1.74 Mб
Скачать
  1. Какой метод обработки биомедицинских сигналов и данных иллюстрирует данная работа?

Происходит цифровая фильтрация дискретного сигнала, что математически можно реализовать с помощью разностного уравнения.

По заданному фрагменту ЭКГ строятся график сигнала после фильтрации.

  1. Опишите алгоритм реализации используемого метода (последовательность действий, формулы)

Фильтрованный сигнал был получен с помощью постановки значений из файла фрагмента ЭКГ в разностное уравнение (по АЧХ фильтра)

  1. Что показано на каждом из полученных графиков, какие величины отложены по осям координат, в каком масштабе и в каких единицах измерения?

Тот же 1 вопрос из 10

  1. Какие биомедицинские сигналы используются в данной работе, каково их происхождение, какой у них диапазон возможных значений и частотный состав, в каких единицах они измеряются?

ЭКГ – электрокардиограмма - является электрическим проявлением сократительной активности сердца и может быть достаточно легко записана с помощью поверхностных электродов, помещенных на конечности или грудь.

Происхождение ЭКГ:

  1. Чему равняется частота дискретизации и интервал дискретизации сигналов, используемых в работе?

Программа 2: Fs=500 Гц ; Т=2 мс

  1. Что означает каждая из команд программы, какие действия она выполняет, что является входными и выходными данными команды?

clc;

clear;

close all;

%Алгоритм обнаружения QRS-комплексов ЭКГ

S=load('W6_04.txt'); % сигнал ЭКГ и 2 пульсоксиметрических сигнала

N=length(S);

ECG=S(1:N,1);

Puls_R=S(1:N,2); %массив красного сигнала

Puls_IR=S(1:N,3); % массив инфракрасного сигнала

X0=0; % Координата “x” (на экране) нижнего левого угла окна

Y0=0; % Координата “y” (на экране) нижнего левого угла окна

W0=1800; % Ширина окна

H0=800; % Высота окна

figure('Position',[X0,Y0,W0,H0]) % Создание окна

x1=50; % Координата "x" (в окне) нижнего левого угла 1-го поля

y1=100; % Координата "y" (в окне) нижнего левого угла 1-го поля

dy=50;

w=1200; % Ширина

h=100; % Высота

hAxes1=axes('Units','pixels','Position',[x1,y1,w,2*h]);

hAxes2=axes('Units','pixels','Position',[x1,y1+2*h+dy,w,h]);

hAxes3=axes('Units','pixels','Position',[x1,y1+3*h+2*dy,w,h]);

hAxes4=axes('Units','pixels','Position',[x1,y1+4*h+3*dy,w,h]);

%Вывод пульсоксиметрических сигналов

axes(hAxes1)

Fs=500;

T=1/Fs;

tmax=length(S)*T;

t=0:T:tmax-T;

plot (t,Puls_R+50) %красный сигнал

hold on

plot (t,Puls_IR-450) % инфракрасный сигнал

ylim([-800 400])

xlim([0 tmax])

title ('Пульсоксиметрические сигналы')

%Вывод графика ЭКГ

axes(hAxes4)

plot (t,ECG)

xlim([0 tmax])

title ('Сигнал ЭКГ')

%Дифференцирование сигнала ЭКГ

axes(hAxes3)

X=zeros(1,N);

Y=zeros(1,N);

for n=1:N

X(n)=ECG(n);

end

for n=3:N

Y(n)=X(n)-X(n-2); % дифференцирование сигнала

end

hold on

plot (t,Y,'k')

ylim([-150 100])

xlim([0 tmax])

title ('Дифференцированный сигнал ЭКГ')

%Рассчет массива модулей отсчетов диф. сигнала

axes(hAxes2)

ECG_Dif=abs(Y); %массив модулей отсчетов диф. сигнала

Limit=35; % только QRS комплекс превышает данный порог, остальной сигнал - нет

XLimit(1)=0; % первая точка линии х

XLimit(2)=tmax-T; % последняя точка линии х

YLimit(1:2)=Limit; % координаты по y для линии

line(XLimit, YLimit) % построение линии

Jmax=100; % ищем QRS комплексы

k=0;

j=Jmax;

for i=1:N

j=j+1;

if (ECG_Dif(i)>Limit)&&(j>Jmax)

k=k+1;

QRS (k)=i;

j=0;

end

end

hold on

plot (t,ECG_Dif)

xlim([0 tmax])

title ('Массив модулей отсчетов диф-го и взятого по модулю сигнала ЭКГ')

%Расчет уровня насыщения крови кислородом

axes(hAxes1)

YLimits=get(hAxes1,'YLim');

for i=1:k

XLimits(1:2)=QRS(i)*T;

HLine=line(XLimits,YLimits);

set (HLine,'LineStyle','--')

end

%Средний размах пульсоксиметрических сигналов

D1=0;

for i=1:(k-1)

clear m1

m1=Puls_R(QRS(i):QRS(i+1));

D1=D1+(max(m1)-min(m1));

end

D1=D1/(k-1);% средний размах 1го сигнала

D2=0;

for i=1:(k-1)

clear m2

m2=Puls_IR(QRS(i):QRS(i+1));

D2=D2+(max(m2)-min(m2));

end

D2=D2/(k-1);

a=D2/D1;

SaO2=(0.872-0.16*a)*100/(0.14*a+0.754);

hTxt1=uicontrol('Style','text','String','SaO2=',...

'Position',[2*x1+w,2*h,x1,x1/2],'BackgroundColor',[1 1 1]);

hEd=uicontrol('Style','edit','Position', [3*x1+w,2*h,x1,x1/2],...

'BackgroundColor',[1 1 1],'HorizontalAlignment','left');

set(hEd,'String',num2str(SaO2))

Соседние файлы в папке ЛР_5