Catégories
Algorithme Matlab projet matlab Traitement du signal sur matlab

Traitement du signal | Matlab #1: Synthèse du signal ECG

Objectifs

    • Savoir la forme d’onde d’un signal ECG
    • Savoir générer un signal ECG normalisé
    • Savoir paramétrer un signal ECG
    • Voir la vidéo pour plus des détails

Définition

L’électrocardiographie (ECG) est une représentation graphique de l’activité électrique du cœur. Cette activité électrique est liée aux variations de potentiel électrique des cellules spécialisées dans la contraction (myocytes) et des cellules spécialisées dans l’automatisme et la conduction des influx. Elle est recueillie par des électrodes à la surface de la peau. Lire la suite…

 

Signal ECG

La fonction ecg()

La fonction ecg() retourne une période unique du signal ECG. Elle prend en entrée les paramètres  des diverses ondes. En particulier, l’amplitude, la durée et la distance par rapport l’onde R (pic principal du signal ECG) (voir la vidéo pour plus d’infos).

L’Amplitude du signal ECG est normalisée par rapport à la valeur maximale des amplitudes des ondes. Autrement dit, la valeur maximal du signal ECG sera toujours égale à 1.

function ECG_s = ecg(N, p_wave, q_wave, qrs_wave, s_wave, t_wave, u_wave)


%% Waves Generation

x=linspace(0,2,N);
rate= 30+1e-5;
li=30/rate;

%p wave specifications
a_pwav=p_wave(1); % input('amplitude = ');
d_pwav=p_wave(2); % input('duration = ');
t_pwav=p_wave(3); % input('p-r interval = ');


%q wave specifications
a_qwav=q_wave(1); % input('amplitude = ');
d_qwav=q_wave(2); % input('duration = ');
t_qwav=0.166;



%qrs wave specifications
a_qrswav=qrs_wave(1); % input('amplitude = ');
d_qrswav=qrs_wave(2); % input('duration = ');




%s wave specifications
a_swav=s_wave(1); % input('amplitude = ');
d_swav=s_wave(2); % input('duration = ');
t_swav=0.06;


%t wave specifications
a_twav=t_wave(1); % input('amplitude = ');
d_twav=t_wave(2); % input('duration = ');
t_twav=t_wave(3);


%u wave specifications
a_uwav=u_wave(1); % input('amplitude = ');
d_uwav=u_wave(2); % input('duration = ');
t_uwav=0.433;




%% Output signals

%pwav output
pwav=p_wav(x,a_pwav,d_pwav,t_pwav,li);


%qwav output
qwav=q_wav(x,a_qwav,d_qwav,t_qwav,li);


%qrswav output
qrswav=qrs_wav(x,a_qrswav,d_qrswav,li);

%swav output
swav=s_wav(x,a_swav,d_swav,t_swav,li);


%twav output
twav=t_wav(x,a_twav,d_twav,t_twav,li);


%uwav output
uwav=u_wav(x,a_uwav,d_uwav,t_uwav,li);

%% ECG Result

ECG_s=pwav+qrswav+twav+swav+qwav+uwav;

% Norm
ECG_s=ECG_s/max(abs(ECG_s));
ECG_s=fftshift(ECG_s);

end

Le programme principal

clear all; close all; clc;



%% Traitement du signal | Matlab #1: Synthèse du signal ECG
%% Cours & Projets: www.Electronique-Mixte.fr


% 1. Savoir la forme d'onde d'un signal ECG
% 2. Savoir générer un signal ECG normalisé
% 3. Savoir paramétrer un signal ECG
% 4. Etc.








%% Paramètres du signal ECG


T=1; %% Période normalisée Toujours=1!!!!!!!!!!!!
n=200;


p_wave =[0.1 0.1*T 0.4*T]; % 3
% a_pwav=p_wave(1); % Amplitude
% d_pwav=p_wave(2); % Duration
% t_pwav=p_wave(3); % p-r interval

q_wave =[0.3 0.1*T ]; % -
qrs_wave =[1 0.1*T];
s_wave =[0.3 0.2*T ]; % -
t_wave =[0.2 0.2*T 0.2*T]; % 3
u_wave =[0.1 0.1*T];

% Génération du signal
ECG_s = ecg(n, p_wave, q_wave, qrs_wave, s_wave, t_wave, u_wave);



%% Périodisation d'un signal

%
%

%% Affichage

figure(1)

t1=linspace(0,T,n);
plot(t1, ECG_s, 'linewidth',2); grid on;
xlabel('Temps(s)'); ylabel('Amplitude(V)');

 

La bibliothéque Matlab du signal ECG

Bases de données ECG

Accueil Matlab

Laisser un commentaire