Sunteți pe pagina 1din 14

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

S-ar putea să vă placă și