Взяла твой макет для ускорения обработки информации ◕‿‿◕
Какой метод обработки биомедицинских сигналов и данных иллюстрирует данная работа?
Происходит цифровая фильтрация дискретного сигнала, что математически можно реализовать с помощью разностного уравнения.
По заданному фрагменту ЭКГ строятся графики сигнала после фильтрации двумя фильтрами с различными коэффициентами (1 - симметрия относительно центра, 2 – симметрия со знаком «-»)
Опишите алгоритм реализации используемого метода (последовательность действий, формулы)
В первой части работы был произведен расчет характеристик фильтров (АЧХ)
Были получены выражения для разностных уравнений и введены в систему MATLAB вручную. Фильтрованный сигнал был получен с помощью постановки значений из файла фрагмента ЭКГ в разностное уравнение (по АЧХ фильтра)
Что показано на каждом из полученных графиков, какие величины отложены по осям координат, в каком масштабе и в каких единицах измерения?
Рисунок 1 –В первой строке наблюдаем заданные коэффициенты фильтра: по абсциссе номер коэффициента, по ординате значение (безразмерные величины), во второй строке отражена зависимость коэффициента передачи фильтров от частоты частота выражена в Гц, значения коэффициента по ординате –величина безразмерная изменяется от 0 до 1. В третьей строке отражен график импульсной характеристики (отклик на единичный импульс) – по абсциссе номер отсчета, по ординате отклик фильтра. В четвертой строке получили график переходной характеристики фильтра (отклик на единичное ступенчатое воздействие) – аналогично с импульсной.
Рисунок 2: сигнала ЭКГ Fs=250;
1. Электрокардиограммы. По ординате исходный сигнал Y1, Y2 в мВ. Масштаб линейный, по абсциссе – время в секундах
2. После первого фильтра.
3. После второго фильтра.
Какие биомедицинские сигналы используются в данной работе, каково их происхождение, какой у них диапазон возможных значений и частотный состав, в каких единицах они измеряются?
ЭКГ – электрокардиограмма - является электрическим проявлением сократительной активности сердца и может быть достаточно легко записана с помощью поверхностных электродов, помещенных на конечности или грудь.
Происхождение ЭКГ:
Чему равняется частота дискретизации и интервал дискретизации сигналов, используемых в работе?
Программа 2: Fs=250 Гц ; Т=4 мс
Что означает каждая из команд программы, какие действия она выполняет, что является входными и выходными данными команды?
Часть 1.Расчет характеристик фильтров 1 и 2
Текст программы №1:
clc; %удалить все в командном окне
clear all; %удаление всех переменных
% Построение коэффициенетов фильтров 1 и 2
B1=[1/5 1/5 1/5 1/5 1/5]; %Вектор коэффициентов фильтра
B2=[1/8 1/4 1/8 0 -1/8 -1/4 -1/8];
M1=length(B1); %Число коэффициентов
M2=length(B2);
Figure %создание окна для графиков
subplot(4,2,1) %в окне создаются четыре поля для графиков (4 строка 2 столбца, 1 поле активное)
stem(B1) %график в виде вертикальных линий
title('Filter 1') %заголовок
title('Коэффициенты 1-го фильтра')
subplot(4,2,2)
stem(B2)
title('Коэффициенты 2-го фильтра')
%Графики АЧХ
Fs=250;
T=1/Fs;
f=0:Fs/2; %Х – массив-строка
H1=abs(1/5+2/5*cos(2*pi*f*T)+2/5*cos(4*pi*f*T)); %расчет АЧХ первого фильтра
subplot(4,2,3)
plot(f,H1)
title('АЧХ 1-го фильтра')
H2=abs(1/4*sin(2*pi*f*T)+1/2*sin(4*pi*f*T)+1/4*sin(6*pi*f*T));
subplot(4,2,4)
plot(f,H2)
title('АЧХ 2-го фильтра')
%Импульсные характеристики
N=20; %Число значений во входной последовательности
for n=1:N %Программный цикл, в котором создается входной X(n)=0 массив, содержащий “N” нулевых значений
X(n)=0;
end
X(10)=1;
Y1=zeros(1,N); % Создание и заполнение нулями выходного массива
for n=M1:N % Фильтрация входного массива с записью получаемых значений в выходной массив
Y1(n)=0.2*X(n)+0.2*X(n-1)+0.2*X(n-2)+0.2*X(n-3)+0.2*X(n-4);
end
subplot(4,2,5)
stem(X,'.')
hold on % сохранение прежнего изображения на графике
stem(Y1,'r')
title('Импульсная характеристика 1-го фильтра')
Y2=zeros(1,N);
for n=M2:N
Y2(n)=1/8*X(n)+1/4*X(n-1)+1/8*X(n-2)-1/8*X(n-4)-1/4*X(n-5)-1/8*X(n-6);
end
subplot(4,2,6)
stem(X,'.')
hold on
stem(Y2,'r')
title('Импульсная характеристика 2-го фильтра')
%Переходные характеристики
N=20;
for n=1:N/2
X(n)=0;
end
for n=N/2:N
X(n)=1;
end
Y1=zeros(1,N);
for n=M1:N
Y1(n)=0.2*X(n)+0.2*X(n-1)+0.2*X(n-2)+0.2*X(n-3)+0.2*X(n-4);
end
subplot(4,2,7)
stem(X,'.')
hold on
stem(Y1,'g')
title('Переходная характеристика 1-го фильтра')
Y2=zeros(1,N);
for n=M2:N
Y2(n)=1/8*X(n)+1/4*X(n-1)+1/8*X(n-2)-1/8*X(n-4)-1/4*X(n-5)-1/8*X(n-6);
end
subplot(4,2,8)
stem(X,'.')
hold on
stem(Y2,'g')
title('Переходная характеристика 2-го фильтра')
Часть 2. Исследование эффекта наложения на тестовых сигналах.
Текст программы №2:
clc;
clear all;
Y=load('W2_04.txt'); % исходный сигнал ЭКГ
B1=[1/5 1/5 1/5 1/5 1/5];
B2=[1/8 1/4 1/8 0 -1/8 -1/4 -1/8];
M1=length(B1); % Кол-во отсчетов (длина)
M2=length(B2);
for n=1:length(Y) %n=1:250
X1(n)=Y(n,1); %Создаем массивы X1 и X2, пристваивая соот. зн-я из матрицы-столбца Y
X2(n)=Y(n,1);
end
for n=M1:length(Y) %Фильтруем исходный сигнал ЭКГ (1 фильтр) и записываем в массив Y1
Y1(n)= 0.2*X1(n)+0.2*X1(n-1)+0.2*X1(n-2)+0.2*X1(n-3)+0.2*X1(n-4);
end
for n=M2:length(Y) %Фильтруем исходный сигнал ЭКГ (2 фильтр) и записываем в массив Y2
Y2(n)=1/8*X2(n)+1/4*X2(n-1)+1/8*X2(n-2)-1/8*X2(n-4)-1/4*X2(n-5)-1/8*X2(n-6);
end
figure
Fs=250;
T=1/Fs;
tmax=length(Y)*T;
t=0:T:tmax-T;
subplot(3,1,1)
plot(t,Y)
title('ЭКГ сигнал')
ylim([-100,50])
xlim([0,tmax])
subplot(3,1,2)
plot(t,Y1)
title('Обработка сигнала ЭКГ фильтром 1')
ylim([-100 50])
xlim([0,tmax])
subplot(3,1,3)
plot(t,Y2);
title('Обработка сигнала ЭКГ фильтром 2')
ylim([-100 50])
xlim([0,tmax])