Скачиваний:
41
Добавлен:
25.12.2019
Размер:
3.08 Кб
Скачать
clear all
close all
%Лабораторная работа №2. Цифровая фильтрация ЭКГ

%1. Коэффициенты для двух типов фильтров
B1=[-1/7 -1/7 3/7 5/7 3/7 -1/7 -1/7];
b1=[1/4 1/4 0 -1/4 -1/4];

M1=length(B1);
m1=length(b1);

figure('Name','Filters','NumberTitle','off');

%2. Набор коэффицинтов для двух типов фильтров
subplot(4,2,1)
stem(B1)
title('Koefficients for filter 1')
set(gca, 'Ylim',[-0.3 0.8])
set(gca, 'Xlim',[0 8])

subplot(4,2,2)
stem(b1)
title('Koefficients for filter 2')
set(gca, 'Ylim',[-0.3 0.8])
set(gca, 'Xlim',[0 6])

%3. АЧХ для двух типов фильтров
Fs=250;
T=1/Fs;
f=0:Fs/2;

%количество коэффициентов
N1=(M1-1)*0.5;
n1=(m1-1)*0.5;

Nstring = ['Колличество рассматриваемых коэффициентов для 1-го фильтра ',num2str(N1)];
disp(Nstring)
nstring = [' Колличество рассматриваемых коэффициентов для 2-го фильтра ',num2str(n1)];
disp(nstring)

subplot(4,2,3)
H1=abs(B1(1,N1+1)+2*(B1(1,N1)*cos(2*pi*f*T)+B1(1,N1-1)*cos(2*pi*f*2*T)+B1(1,N1-2)*cos(2*pi*3*f*T)));
plot(f,H1);
title('Magnitude frequency response for filter 1')
ylim([0 2])

subplot(4,2,4)
h1=abs(b1(1,n1+1)+2*(b1(1,n1)*cos(2*pi*f*T)+b1(1,n1-1)*cos(2*pi*f*2*T)));
plot(f,h1);
title('Magnitude frequency response for filter 2')
ylim([0 2])


%4. Построение импульсной характеристики
N=20;
%Задаём функцию-скачок
for n=1:N
X(n)=0;
end
X(N/2)=1;
Y=zeros(1,N);
y=zeros(1,N);

for n=M1:N
Y(n)= B1(1,1)*X(n)+B1(1,2)*X(n-1)+B1(1,3)*X(n-2)+B1(1,4)*X(n-3)+B1(1,5)*X(n-4)+B1(1,6)*X(n-5)+B1(1,7)*X(n-6);
end

for n=m1:N
y(n)= b1(1,1)*X(n)+b1(1,2)*X(n-1)+b1(1,3)*X(n-2)+b1(1,4)*X(n-3)+b1(1,5)*X(n-4);
end

subplot(4,2,5)
stem(X,'.')
hold on
stem(Y,'r')
title('Impulse response for filter 1')

subplot(4,2,6)
stem(X,'.')
hold on
stem(y,'r')
title('Impulse response for filter 1')

clear Y y X Nstring nstring

%5. Построение переходной характеристики % НАДО ПРОВЕРИТЬ
for n=1:N/2
X(n)=0;
end
for n=N/2:N
X(n)=1;
end
Y=zeros(1,N);
y=zeros(1,N);

for n=M1:N
Y(n)=b1(1,1)*X(n)+b1(1,2)*X(n-1)+b1(1,3)*X(n-2)+b1(1,4)*X(n-3)+b1(1,5)*X(n-4);
end

for n=m1:N
y(n)= b1(1,1)*X(n)+b1(1,2)*X(n-1)+b1(1,3)*X(n-2)+b1(1,4)*X(n-3)+b1(1,5)*X(n-4);
end

subplot(4,2,7)
stem(X,'.')
hold on
stem(Y,'r')
title('Transient response for filter 1')

subplot(4,2,8)
stem(X,'.')
hold on
stem(y,'r')
title('Transient response for filter 2')
clear Y y X f Fs N n N1 n1 H1 h1

%6. Фильтрация сигнала ЭКГ

E=load('R2_06.txt');

for n=1:length(E)
X(n)=E(n,1);
x(n)=E(n,1);
end

for n=M1:length(E)
Y(n)= B1(1,1)*X(n)+B1(1,2)*X(n-1)+B1(1,3)*X(n-2)+B1(1,4)*X(n-3)+B1(1,5)*X(n-4)+B1(1,6)*X(n-5)+B1(1,7)*X(n-6);
end

for n=m1:length(E)
y(n)=b1(1,1)*x(n)+b1(1,2)*x(n-1)+b1(1,3)*x(n-2)+b1(1,4)*x(n-3)+b1(1,5)*x(n-4);
end

figure('Name','ECG filtration','NumberTitle','off');

subplot(3,1,1)
plot(E(:,1));
title('ECG Signal')
ylim([-100 100])

subplot(3,1,2)
plot(Y)
title('ECG filtration 1')
ylim([-100 100])

subplot(3,1,3)
plot(y);
title('ECG filtration 2')
ylim([-100 100])




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