% ERDEM TUNCER close all
clear all
clc
%Sinyalin Matlab Ortamina Alinmasi hamsinyal=load('ecg okey.txt');
plot(hamsinyal); title('Ham Sinyal');
% DC Bilesenlerin Atilmasi dcsizsinyal=(hamsinyal-mean(hamsinyal));
plot(dcsizsinyal); title('DC Bilesenleri Atilan Sinyal');
% Filtre
% 10 point avarage filter B=(1/10)*ones(1,10);
A=1;
freqz(B,A); title('10 Point Moving Avarage Filtre');
avaragefiltrelisinyal=filter(B,A,dcsizsinyal);
plot(avaragefiltrelisinyal) title('Moving Avarage (Low Pass) Filtreden Gecmis Sinyal');
% Comb Filter
% 60Hz sebeke gurultusunu ve harmoniklerini bastiran filtre B=conv([1 1],[0.6310 -0.2149 0.1512 -0.1288 0.1227 -0.1288 0.1512 -0.2149 0.6310]);
A=1;
freqz(B,A); title('Comb Filter');
comb=filter(B,A,avaragefiltrelisinyal);
plot(comb) title('(60Hz ve Harmoniklerini Bastiran) Filtreden Gecmis Sinyal');
t=find(comb(1:length(comb),1)>500); degerler=comb(t);% comb un yatayda t degerlerıne karsılık gelen sayısal degerlerı ver(dikeydekı degerleri verdı yanı)
plot(degerler) title('QRS sinyalinin Peak Değerleri')
[pks,locs] = findpeaks(degerler);plot(degerler);hold on; plot(locs,pks,'g');title('Peak değerleri işaretlenmiş QRS siyali ');hold off
beat_count=0; for k=2:length(degerler)-1
if(degerler(k)> degerler(k-1) & degerler(k) > degerler(k+1) & degerler(k) >1 )
disp('peak founded')
beat_count= beat_count+1; end
end
beat_count
Erdem bey yazınız için teşekkürler.
YanıtlaSilRica etsem ham veriyi de (ecg okey.txt) paylaşabilir misiniz?
İyi çalışmalar.
erdem bey acaba gürültülü ekg sınyalını olusumu ve bunu gıdermek ıcın fıltre tasarımı konusnda yardımcı olurmusunuz
YanıtlaSilYazınız için teşekkürler.
YanıtlaSilRica etsem ham veriyi (ecg okey.txt) paylaşabilir misiniz?