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

Traitement du signal | Matlab #2: Synthèse d’un signal ECG Périodique – Peigne de Dirac

Objectifs

  • Savoir générer un signal ECG périodique
  • Savoir périodiser un signal non périodique
  • Savoir utiliser la distribution peigne de Dirac
  • Savoir générer la distribution peigne de Dirac à partir d’un signal sinusoïdal
  • Voir la vidéo pour plus des détails

Peigne de Dirac

En mathématiques, la distribution peigne de Dirac, ou distribution cha (d’après la lettre cyrillique Ш), est une somme de distributions de Dirac espacées de T. Lire la suite…

Peigne de dirac

Programme Matlab

signal ecg périodique

clear all; close all; clc;



%% Traitement du signal | Matlab #2: Synthèse d'un signal ECG périodique
%% Cours & Projets: www.Electronique-Mixte.fr


% 1. Savoir comment générer la distribution peigne de Dirac
% 2. Savoir générer un signal ECG périodique
% 3. Savoir paramétrer un signal ECG périodique
% 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.2 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


% s(t)*delta(t-nT)=s(t-nT)


% [-1 -2 -3 1 1 0 ... 1 0] [-1 -2 -3 1 1 0 ... 1 0] ...


% Génération d'une distribution peine de Dirac
f0=50; t0=1/f0; n0=20; N=n0*n;
t=linspace(0,n0*t0/2,N);
A=1; s_n=A*sin(2*pi*f0*t);

s_b=sign(s_n);
s_diff=abs(conv(s_b,[-1 1], 'same'));
s_diff=s_diff/2;

% bords
s_diff(1)=0;
s_diff(end)=0;

% Affichage
figure(1)

subplot(311); plot(t, s_n,'b', 'linewidth',2); grid on;
xlim([t(1) t(end)]);xlabel('Temps(s)'); ylabel('Amplitude(V)');

subplot(312); plot(t, s_b, 'b', 'linewidth',2); grid on;
xlim([t(1) t(end)]);xlabel('Temps(s)'); ylabel('Amplitude(V)');

subplot(313); stem(t, s_diff,'b', 'linewidth',2); grid on;
xlim([t(1) t(end)]);xlabel('Temps(s)'); ylabel('Amplitude(V)');


%% Périodisation

ecg_p=conv(s_diff,ECG_s, 'same');

%% Affichage

figure(2)

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

subplot(212);
plot(t*2, ecg_p, 'linewidth',2); grid on;
xlabel('Temps(s)'); ylabel('Amplitude(V)');

%plot(t, s_diff, 'linewidth',2); grid on;

Voir la vidéo 1 de la série traitement du signal avec Matlab pour obtenir la fonction ecg()

Accueil Matlab

Laisser un commentaire