République Algérienne Démocratique et populaire
Ministère de l’Enseignement Supérieur et de la Recherche Scientifique
Université M’ Mohamed BougaraBoumèrdes
Faculté des sciences et technologie
Département ingénierie des systèmes électrique, Boumerdès
Spécialité : instrumentation médical
TP 1 / 2:
Traitement Avancée des signaux
physiologique
Réalisé par :
OUALI NYHEL
SADOUDI MERIEM
TP1 : analyse spectrale non paramétrique
1/ dévloppez une foction sig-bruit1 qui représente un signal composé de
un sinusoide :
Sur matlab :
function J=sigbru1(A,sig,fe,fs,N,moy)
w=2*pi*fs
Ts=(1:N)/fe
X1=A*sin(w*Ts)
b=moy+sig*randn(1,N)
J=X1+b
figure(1)
plot(J)
end
sur command window :
J=sigbru1(1,0.25,8000,10,8192,0)
1.5
0.5
-0.5
-1
-1.5
-2
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
2/ / dévloppezune foction sig-bruit2 qui représente un signal composé de
deux sinusoides :
Sur matlab :
function L=sigbru2(A,B,fe,fs,fs2,sig,moy,N)
w=2*pi*fs
w2=2*pi*fs2
Ts=(1:N)/fe
X1=A*cos(w*Ts)
y=B*cos(w2*Ts)
X2=X1+y
b=moy+sig*randn(1,N)
L=b+X2
figure(1)
plot(L)
end
sur command window
L=sigbru2(1,1/2,8000,10,20,0.25,0,8192)
2.5
1.5
0.5
-0.5
-1
-1.5
-2
0 1000 2000 3000 4000 5000 6000 7000 8000 9000
3/ dévloppez une foction pour calculer le périodogramme pour signal d’un
sinusoide :
Sur matlab
function P=periodogramme12(J)
N=8192
P=(1/N)*(abs(fft(J))).^2
figure(2)
plot(P)
end
sur command window
P=periodogramme12(J)
1800
1600
1400
1200
1000
800
600
400
200
0
0 10 20 30 40 50 60 70 80 90 100
4/ dévloppez une foction pour calculer le périodogramme pour signal de deux
sinusoides :
Sur matlab
function P=periodogramme123(L)
N=8192
P=(1/N)*(abs(fft(L))).^2
figure(2)
plot(P)
end
sur command window
P=periodogramme123(L)
1800
1600
1400
1200
1000
800
600
400
200
0
0 10 20 30 40 50 60 70 80 90 100
5/ dévloppez une foction pour calculer le périodogramme pour signal d’un
sinuside et de deux sinusoides :
Sur matlab
J=sigbru1(1,0.25,8000,10,8192,0)
P=periodogramme12(J)
L=sigbru2(1,1/2,8000,10,20,0.25,0,8192)
P=periodogramme123(L)
6/Dévloper un signal avec la méthode de berlette :
Signal X1
Sur matlab
X1=sigbru1(1,0.25,8000,10,8192,0)
K=4
L=2048
n=1
for i=1:K
P=P+(1/K)*(Periodogramme(X1(n:n+L-1)))
n=n+L
end
120
100
80
60
40
20
0
0 10 20 30 40 50 60 70 80 90 100
Signal X2
X2=sigbru2(1,1/2,8000,10,20,0.25,0,8192)
K=4
L=2048
n=1
for i=1:K
P=P+(1/K)*(Periodogramme(X2(n:n+L-1)))
n=n+L
end
160
140
120
100
80
60
40
20
0
0 10 20 30 40 50 60 70 80 90 100
7/Dévloper un signal avec la méthode de pwelch :
Sur matlab
X1=sigbru1(1,0.25,8000,10,8192,0)
[pxx,f]=pwelch(X1,triang(128),[ ],128,8000)
figure(1)
plot(pxx,f)
signal X1
4000
3500
3000
2500
2000
1500
1000
500
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
10 -3
signal X2
4000
3500
3000
2500
2000
1500
1000
500
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
10 -3
TP2: Analyse et synthèse des filtres numériques
PARTIE 1
1/un programme permettant de visualiser la réponse impulsionnelle et
indicielle de ce filtre.
H(z)=(z+1)/(2z+1)
Sur matlab
b=[1 1]
a=[2 1]
N=20
delta=[1;zeros(N-1,1)]
rep_imp= filter(b,a,delta)
figure(1)
plot(rep_imp)
figure(2)
stem(rep_imp)
echelon=ones(N,1)
rep_ind=filter(b,a,echelon)
figure(3)
plot(rep_ind)
figure(4)
stem(rep_ind)
zeros1 = roots(b )
poles=roots(a)
2/calcules les poles et les zeros avec roots
zéros1=-1
poles=-0.5
3/le type de ce filtre :est récursif dépend au sortie et
entrée
réponse impulsionnel
0.5
0.4
0.3
0.2
0.1
-0.1
-0.2
0 2 4 6 8 10 12 14 16 18 20
0.5
0.4
0.3
0.2
0.1
-0.1
-0.2
0 2 4 6 8 10 12 14 16 18 20
Réponse indicielle
0.75
0.7
0.65
0.6
0.55
0.5
0 2 4 6 8 10 12 14 16 18 20
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 2 4 6 8 10 12 14 16 18 20
4/A partir des graphes des réponses indicielle et impulsionnelle le système
H(z) est stable
PARTIE 2
1/un programme permettant de visualiser la réponse impulsionnelle et
indicielle de ce filtre.
H2(z)=(z^3+1)/(z^3-4z^2-2)
Sur matlab
b=[1 0 0 1]
a=[1 4 0 2]
N=20
delta=[1;zeros(N-1,1)]
rep_imp= filter(b,a,delta)
figure(1)
plot(rep_imp)
figure(2)
stem(rep_imp)
echelon=ones(N,1)
rep_ind=filter(b,a,echelon)
figure(3)
plot(rep_ind)
figure(4)
stem(rep_ind)
zeros1 = roots(b )
poles=roots(a)
2/calcules les poles et les zéros a partir de « roots » :
zeros1 =
-1.0000 + 0.0000i
0.5000 + 0.8660i
0.5000 - 0.8660i
poles =
-4.1179 + 0.0000i
0.0590 + 0.6944i
0.0590 - 0.6944i
3/le type de ce filtre :est récursif dépend au sortie et
entrée
Réponse impusionnelle
1011
2
-1
-2
-3
-4
-5
0 2 4 6 8 10 12 14 16 18 20
1011
2
-1
-2
-3
-4
-5
0 2 4 6 8 10 12 14 16 18 20
Reponse indicielle
1011
1
0.5
-0.5
-1
-1.5
-2
-2.5
-3
-3.5
-4
0 2 4 6 8 10 12 14 16 18 20
1011
1
0.5
-0.5
-1
-1.5
-2
-2.5
-3
-3.5
-4
0 2 4 6 8 10 12 14 16 18 20
3/A partir des graphes des réponses indicielle et impulsionnelle le système H2(z) est
stable