МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра биотехнических систем и технологий
отчет
по лабораторной работе №2
по дисциплине «Методы обработки и анализа биомедицинских сигналов и данных»
Тема: Цифровая фильтрация.
Вариант 4
Студентки гр. 0502 |
|
Лиоско Е.П. Потько А.А. |
Преподаватель |
|
Калиниченко А.Н. |
Санкт-Петербург
2022
Цель работы:
Ознакомление с цифровой фильтрацией сигналов и ее программной реализацией.
Задачи работы:
Для двух заданных фильтров (1 и 2) рассчитать и построить графики их основных характеристик (набор коэффициентов, АЧХ, импульсная и амплитудная характеристики).
Прочесть из файла фрагмент ЭКГ, выполнить его фильтрацию обоими фильтрами и построить графики сигнала до и после фильтрации.
Часть 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)
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;
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-го фильтра')
Рисунок №1 – Характеристики фильтров 1 и 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])
Рисунок №2 – Эффект наложения на тестовых сигналах.
Выводы:
Для двух заданных фильтров (1 и 2) были рассчитаны и построены графики их основных характеристик (набор коэффициентов, АЧХ, импульсная и амплитудная характеристики). 1 фильтр – ФНЧ; 2 фильтр – полосовой пропускающий.
Была произведена фильтрация фрагмента ЭКГ обоими фильтрами (Рисунок №2). При обработке 1 фильтром сигнал стал более плавным (исчезли мелкие помехи). При обработке 2 фильтром практически не видно зубец Q, а зубец T исчез.