МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра биотехнических систем и технологий
отчет
по лабораторной работе №3
по дисциплине «Методы обработки и анализа биомедицинских сигналов и данных»
Тема: Корреляционный анализ ЭЭГ.
Вариант 4
Студентки гр. 0502 |
|
Лиоско Е.П. Потько А.А. |
Преподаватель |
|
Калиниченко А.Н. |
Санкт-Петербург
2022
Цель работы:
Ознакомление с использованием корреляционных функций для исследования ЭЭГ.
Задачи работы:
Исследовать характер изменения АКФ и ВКФ для 3х тестовых сигналов: двух синусоид с разными частотами и суммы этих двух синусоид. Построить графики сигналов и всех рассчитанных функций.
Выполнить расчет АКФ и ВКФ для 3х фрагментов ЭЭГ. Построить графики сигналов и всех рассчитанных функций.
Часть 1. Расчет АКФ и ВКФ для тестовых синусоид
Текст программы №1:
clc
clear all;
close all;
X0=0; % Координата “x” (на экране) нижнего левого угла окна
Y0=0; % Координата “y” (на экране) нижнего левого угла окна
W0=1800; % Ширина окна
H0=800; % Высота окна
figure('Position',[X0,Y0,W0,H0]) % Создание окна
x1=50; % Координата "x" (в окне) нижнего левого угла 1-го поля
dx=50; % Расстояние по “x” между 1-м и 2-м полями
y1=100; % Координата "y" (в окне) нижнего левого угла 1-го поля
w=270; % Ширина 1-го и 2-го полей вывода графиков
h=167; % Высота 1-го и 2-го полей вывода графиков
hAxes=zeros(3,3);
for i=[1 2 3]
% Создание 1-го поля:
hAxes(i,1)=axes('Units','pixels','Position',[x1,y1+(i-1)*(50+h),w,h]);
% Создание 2-го поля:
hAxes(i,2)=axes('Units','pixels','Position',[x1+dx+w,y1+(i-1)*(50+h),2*w,h]);
% Создание 3-го поля:
hAxes(i,3)=axes('Units','pixels','Position',[x1+dx+dx+w+w+w,y1+(i-1)*(50+h),2*w,h]); % 1 столбец 1 строка
end
%Построение синусоид
Fs=250;
tmax=1.2;
A1=35;
A2=20;
F1=7;
F2=5;
T=1/Fs;
t=0:T:tmax-T;
s1=A1*sin(2*pi*F1*t);
s2=A2*sin(2*pi*F2*t);
s3=s1+s2;
axes(hAxes(3,1))
Asum=A1+A2;
set (hAxes(3,1),'YLim',[-Asum +Asum])
hold on
plot(t,s1)
title('1я синусоида - s1=A1*sin(2*pi*F1*t)')
axes(hAxes(2,1))
set (hAxes(2,1),'YLim',[-Asum +Asum])
hold on
plot(t,s2)
title('2я синусоида - s2=A2*sin(2*pi*F2*t)')
axes(hAxes(1,1))
set (hAxes(1,1),'YLim',[-Asum +Asum])
hold on
plot(t,s3)
title('Сумма синусоид')
%Построение АКФ
tcf=-tmax+T:T:tmax-T;
acf1=xcorr(s1,'coeff');
axes(hAxes(3,2))
for j=2:3
for i=1:3
set (hAxes(i,j),'YLim',[-1 +1])
set (hAxes(i,j),'XLim',[-tmax+T tmax-T])
end
end
hold on
plot(tcf,acf1)
title('АКФ1')
acf2=xcorr(s2,'coeff');
axes(hAxes(2,2))
hold on
plot(tcf,acf2)
title('АКФ2')
acf3=xcorr(s3,'coeff');
axes(hAxes(1,2))
hold on
plot(tcf,acf3)
title('АКФ3')
%Построение ВКФ
ccf12=xcorr(s1,s2,'coeff');
axes(hAxes(3,3))
hold on
plot(tcf,ccf12)
title('ВКФ1')
ccf23=xcorr(s2,s3,'coeff');
axes(hAxes(2,3))
hold on
plot(tcf,ccf23)
title('ВКФ2')
ccf31=xcorr(s3,s1,'coeff');
axes(hAxes(1,3))
hold on
plot(tcf,ccf31)
title('ВКФ3')
Рисунок №1 – АКФ и ВКФ тестовых синусоид
Часть 2. Расчет АКФ и ВКФ для реальных записей ЭЭГ
Текст программы №2:
clc
clear
close all
S=load('W3_04.txt');
N=length(S);
s1=S(1:N,1);
s2=S(1:N,2);
s3=S(1:N,3);
X0=0; % Координата “x” (на экране) нижнего левого угла окна
Y0=0; % Координата “y” (на экране) нижнего левого угла окна
W0=1800; % Ширина окна
H0=800; % Высота окна
figure('Position',[X0,Y0,W0,H0]) % Создание окна
x1=50; % Координата "x" (в окне) нижнего левого угла 1-го поля
dx=50; % Расстояние по “x” между 1-м и 2-м полями
y1=100; % Координата "y" (в окне) нижнего левого угла 1-го поля
w=270; % Ширина 1-го и 2-го полей вывода графиков
h=167; % Высота 1-го и 2-го полей вывода графиков
hAxes=zeros(3,3);
for i=[1 2 3]
% Создание 1-го поля:
hAxes(i,1)=axes('Units','pixels','Position',[x1,y1+(i-1)*(50+h),w,h]);
% Создание 2-го поля:
hAxes(i,2)=axes('Units','pixels','Position',[x1+dx+w,y1+(i-1)*(50+h),2*w,h]);
% Создание 3-го поля:
hAxes(i,3)=axes('Units','pixels','Position',[x1+dx+dx+w+w+w,y1+(i-1)*(50+h),2*w,h]); % 1 столбец 1 строка
end
Fs=250;
tmax=N/Fs;
T=1/Fs;
t=0:T:tmax-T;
Amax(1)=max(s1);% max и min сигналов
Amax(2)=max(s2);
Amax(3)=max(s3);
Amin(1)=min(s1);
Amin(2)=min(s2);
Amin(3)=min(s3);
axes(hAxes(3,1))
set (hAxes(3,1),'YLim',[min(Amin(1)) max(Amax(1))])
set (hAxes(3,1),'XLim',[0 tmax-T])
hold on
plot(t,s1)
title('1-й канал ЭЭГ')
axes(hAxes(2,1))
set (hAxes(2,1),'YLim',[min(Amin(2)) max(Amax(2))])
set (hAxes(2,1),'XLim',[0 tmax-T])
hold on
plot(t,s2)
title('2-й канал ЭЭГ')
axes(hAxes(1,1))
set (hAxes(1,1),'YLim',[min(Amin(3)) max(Amax(3))])
set (hAxes(1,1),'XLim',[0 tmax-T])
hold on
plot(t,s3)
title('3-й канал ЭЭГ')
%Построение АКФ
tcf=-tmax+T:T:tmax-T;
acf1=xcorr(s1,'coeff');
axes(hAxes(3,2))
for j=2:3
for i=1:3
set (hAxes(i,j),'YLim',[-1 +1])
set (hAxes(i,j),'XLim',[-tmax+T tmax-T])
end
end
hold on
plot(tcf,acf1)
title('АКФ1')
acf2=xcorr(s2,'coeff');
axes(hAxes(2,2))
hold on
plot(tcf,acf2)
title('АКФ2')
acf3=xcorr(s3,'coeff');
axes(hAxes(1,2))
hold on
plot(tcf,acf3)
title('АКФ3')
%Построение ВКФ
ccf12=xcorr(s1,s2,'coeff');
axes(hAxes(3,3))
hold on
plot(tcf,ccf12)
title('ВКФ1')
ccf23=xcorr(s2,s3,'coeff');
axes(hAxes(2,3))
hold on
plot(tcf,ccf23)
title('ВКФ2')
ccf31=xcorr(s3,s1,'coeff');
axes(hAxes(1,3))
hold on
plot(tcf,ccf31)
title('ВКФ3')
Рисунок №2 – АКФ и ВКФ реальных записей ЭЭГ.
Выводы:
Из графиков АКФ реальных записей ЭЭГ видно, что присущая первым двум сигналам (1 и 2ой канал ЭЭГ) периодичность приводит к тому, что их автокорреляционная функция затухает относительно медленно. В то же время АКФ для третьего сигнала (3 канал ЭЭГ) затухает очень быстро, что демонстрирует его случайный характер.
ВКФ1 сигналов 1 и 2 затухает медленно, что показывает наличие в этих сигналах сходных периодичностей. ВКФ2 и ВКФ3, рассчитанная для сигналов 2 и 3, 3 и 1, принимает относительно небольшие значения, что свидетельствует об отсутствии существенной связи между соответствующими сигналами.