Скачиваний:
34
Добавлен:
08.04.2022
Размер:
388.35 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра БТС

отчет

по лабораторной работе №5

по дисциплине «Методы обработки и анализа

биомедицинских сигналов и данных»

Тема: «АДАПТИВНЫЙ ФИЛЬТР СЕТЕВОЙ НАВОДКИ»

Вариант № 1

Студенты гр. 7501

Басалай К.А.

Фалевская А.А.

Преподаватель

Калиниченко А.Н.

Санкт-Петербург

2019

Цель работы: исследование адаптивного цифрового фильтра сетевой наводки 50 Гц.

Задание на выполнение работы

• Подготовить программу, реализующую алгоритм адаптивной фильтрации и исследовать его работу на тестовом сигнале.

• Выполнить фильтрацию фрагмента ЭКГ, содержащего сетевую наводку, и подобрать наилучшее значение шага адаптации.

Отчет по выполненной работе

  1. Исследование адаптивного фильтра на тестовом сигнале

Текст программы адаптивной фильтрации (fs50.m):

function y=fs50(x,Fs,da)

a=0

a1=0

ax=0

C=2*cos(2*pi/(Fs/50));

N=length(x);

x1=x(1);

for i=1:N

dy=(x(i)-a)-(x1-a1);

if dy~=0

if dy>0

a=a+da

else

a=a-da

end

end

y(i)=x(i)-a;

ax=a;

a=a*C-a1;

a1=ax;

x1=x(i);

end

Текст головной программы (П1):

clc

clear all

close all

global hAxes1 hAxes2 hAxes3 hEda hBtn

x0=400;

y0=200;

w0=700;

h0=500;

figure('Color',[1 1 1],'Position',[x0,y0,w0,h0])

x1=50;

y1=50;

dy=30;

w=450;

h=120;

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

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

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

x2=550;

y2=250;

w2=30;

h2=15;

hTxta=uicontrol('Style','text','String','da=',...

'Position',[x2,y2,w2,h2],'Backgroundcolor',[1 1 1]);

hEda=uicontrol('Style','edit','Position',[x2+w2,y2,w2,h2],...

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

hBtn=uicontrol('Style','pushbutton','String','Filter',...

'Position',[x2,y2-30,w2,h2],'Callback','filt_progr');

Текст программы, вызываемой по кнопке «Filter» (П2):

global hAxes1 hAxes2 hAxes3 hEda hBtn

% вывод синусоиды

Fs=500;

F=50;

A=50;

tmax=0.5;

T=1/Fs;

t=0:T:tmax-T;

s=A*sin(2*pi*F*t);

axes(hAxes3);

plot(t,s);

grid minor;

% отфильтрованный

str=get(hEda,'String');

da=str2num(str);

y=fs50(s,Fs,da);

axes(hAxes2);

plot(t,y);

grid minor;

% компенсирующий

for i=1:length(s)

a(i)=s(i)-y(i);

end

axes(hAxes1);

plot(t,a);

grid minor;

П олученные графические окна:

  1. Адаптивная фильтрация сетевой наводки в ЭКГ

Текст головной программы (П1):

clc

clear all

close all

global hAxes1 hAxes2 hAxes3 hEda hBtn

x0=400;

y0=200;

w0=700;

h0=500;

figure('Color',[1 1 1],'Position',[x0,y0,w0,h0])

x1=50;

y1=50;

dy=30;

w=450;

h=120;

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

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

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

x2=550;

y2=250;

w2=30;

h2=15;

hTxta=uicontrol('Style','text','String','da=',...

'Position',[x2,y2,w2,h2],'Backgroundcolor',[1 1 1]);

hEda=uicontrol('Style','edit','Position',[x2+w2,y2,w2,h2],...

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

hBtn=uicontrol('Style','pushbutton','String','Filter',...

'Position',[x2,y2-30,w2,h2],'Callback','filt_progr2');

Текст программы, вызываемой по кнопке «Filter» (П2):

global hAxes1 hAxes2 hAxes3 hEda hBtn

% вывод сигнала

x=load('R5_01.txt');

Fs=250;

N=length(x);

tmax=N/Fs;

T=1/Fs;

t=0:T:tmax-T;

axes(hAxes3);

plot(t,x);

grid minor;

% отфильтрованный

str=get(hEda,'String');

da=str2num(str);

y=fs50(x,Fs,da);

axes(hAxes2);

plot(t,y);

grid minor;

% компенсирующий

for i=1:N

a(i)=x(i)-y(i);

end

axes(hAxes1);

plot(t,a);

grid minor;

П олученное графическое окно:

Выводы:

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

Важнейшим параметром алгоритма является шаг адаптации da, значение которого определяет скорость настройки фильтра и качество фильтрации. Мы смогли убедиться в этом на практике, подбирая значения шага адаптации, при котором подавление помехи достигается за время, соответствующее заданному времени от длины фрагмента сигнала (25, 50, 75%). Чем больше значение da, тем скорее подавляется помеха.

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