0% ont trouvé ce document utile (0 vote)
23 vues16 pages

Filtrage Multi-Cadence en Électronique

Transféré par

nada 257
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
23 vues16 pages

Filtrage Multi-Cadence en Électronique

Transféré par

nada 257
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

République Algérienne Démocratique et Populaire

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique


Université des Sciences et de la Technologie Houari Boumediene

Faculté de Génie Electrique


Domaine Sciences et Technologie
Filière Electronique

Compte rendu TP 5 TAS :

Filtrage multi-cadence

Présenté par: ZITOUNI Hadjira 191931066092

YALA Nour el Houda 191931069561

M1 INST // Sous-groupe :01

2022/2023
Introduction :

Les systèmes étudiés jusqu’à présent ne mettaient en œuvre qu’une seule fréquence ou cadence
d’échantillonnage 1/Te, il est possible de trouver certaines applications ou le signal d’entrée du filtre
et le signal de sortie ne fonctionnent pas à la même cadence « filtre passe bas » « modulation ».
Dans les deux cas, on cherchera à adapter le filtre à la cadence la plus petite afin de minimiser les
temps de calcul.
- Réduction de la fréquence d’échantillonnage « décimation ».
- Augmentation de la fréquence d’échantillonnage « implémentation ».

Manipulation :
1. Soit le signal x(n)=n.U(n), donner et tracer le signal :
 Décimation par 2 et par 4 :
 Programme :

Un=ones(1,200); %déclaration de Un
n=[1:200] %déclaration de pas n
x(n)=n.*Un; %signal original

subplot(3,3,1) %traçage de signal original x(n)


plot(x)
subplot(3,3,2); %traçage de signal échantillonner de x(n)
stem(x)
subplot(3,3,3); %traçage de spectre d’amplitude de x(n)
plot(abs(fft(x)))

y = decimate(x,2) %décimation par 2 de signal x(n)


subplot(3,3,4) %traçage de signal x(n) décimée par 2
plot(y)
subplot(3,3,5); %traçage de signal échantillonner décimé par 2
stem(y)
subplot(3,3,6) %traçage de spectre d’amplitude de x(n) décimer par 2
plot(abs(fft(y)))

h=decimate(x,4) %décimation par 4 de signal x(n)


subplot(3,3,7) %traçage de signal décimée par 4
plot(h)
subplot(3,3,8); %traçage de signal échantillonner décimé par 4
stem(h)
subplot(3,3,9) %traçage de spectre d’amplitude x(n) décimer par 4
plot(abs(fft(h)))
Figure 1 : Traçage de signal x(n), échantillonner, décimation par 2 et par 4

Commentaire : on à un signal d’origine avec fe=200, X(n)= {0, 1, 2,3, 4, 5, 6, 7, 8, 9,…}


- Avec décimation par 2 « fe’= fe/2 », donc fe=100, on enlève un échantillon entre n
échantillon, x(n)= {0, 2, 4, 6, 8, 10,...}
- Avec décimation par 4 « fe’=fe/4 », donc fe=50, on enlève trois échantillon entre n
échantillon, x(n)= {0, 4, 8, 12, 16, 20,...}

 Interpolation par 2 et par 4 :


 Programme :
Un=ones(1,200); %déclaration de Un
n=[1:200] %déclaration de pas n
x(n)=n.*Un; %signal original

subplot(3,3,1) %traçage de signal original x(n)


plot(x)
subplot(3,3,2); %traçage de signal échantillonner de x(n)
stem(x)
subplot(3,3,3); %traçage de spectre d’amplitude de x(n)
plot(abs(fft(x)))

y =interp(x,2) %interpolation par 2 de signal x(n)


subplot(3,3,4) %traçage de signal x(n) interpoler par 2
plot(y)
subplot(3,3,5); %traçage de signal échantillonner interpoler par 2
stem(y)
subplot(3,3,6) %traçage de spectre d’amplitude de x(n) interpoler par 2
plot(abs(fft(y)))

h=interp(x,4) %interpolation par 4 de signal x(n)


subplot(3,3,7) %traçage de signal x(n) interpoler par 4
plot(h)
subplot(3,3,8); %traçage de signal échantillonner par 4
stem(h)
subplot(3,3,9) %traçage de spectre d’amplitude de x(n)interpoler par 4
plot(abs(fft(h)))
Figure 2 : Traçage de signal x(n), échantillonné, interpolation par 2 et par 4

Commentaire : on à un signal d’origine avec fe=200, X(n)= {0, 1, 2,3, 4, 5, 6, 7, 8, 9,…}


- Interpolation par 2 « fe’= fe*2 », donc fe=400, on rajoute un « 0 » entre chaque
échantillon : x(n)= {0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5,…}
- Interpolation par 4 « fe’=fe*4 », donc fe=800, on rajoute trois « 0 » entre chaque
échantillon : x(n)= {0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,…}

NOTE : Là vous m’aves dit que je dois travailler avec « upsample » non plus avec « interp »,
voici le résultat obtenue :

Figure 3 : Traçage de signal x(n), échantillonné, interpolation par 2 et par 4 « avec upsample »
 Décimation par 2 puis interpolation par 2 :
 Programme :

Un=ones(1,200); %déclaration de Un
n=[1:200]; %déclaration de pas n
x(n)=n.*Un; %signal original

subplot(3,3,1) %traçage de signal original x(n)


plot(x)
subplot(3,3,4); %traçage de signal échantillonner de x(n)
stem(x)
subplot(3,3,7); %traçage de spectre d’amplitude de x(n)
plot(abs(fft(x)))

y =decimate(x,2) %décimation par 2 de signal x(n)


subplot(3,3,2) %traçage de signal x(n) décimée par 2
plot(y)
subplot(3,3,5); %traçage de signal échantillonner décimé par 2
stem(y)
subplot(3,3,8) %traçage de spectre d’amplitude de x(n) décimer par 2
plot(abs(fft(y)))

%h=interp(y,2)
h=upsample(y,2) %interpolation par 2 de signal y(n)
subplot(3,3,3) %traçage de signal y(n) interpoler par 2
plot(h)
subplot(3,3,6); %traçage de signal échantillonner interpoler par 2
stem(h)
subplot(3,3,9) %traçage de spectre d’amplitude de y(n) interpoler par 2
plot(abs(fft(h)))

Figure 4 : Traçage de signal x(n), échantillonné, décimé par 2 puis interpoler par 2
Commentaire : on à un signal d’origine avec fe=200, X(n)= {0, 1, 2,3, 4, 5, 6, 7, 8, 9,…}
- décimation par 2 « fe’= fe/2 », donc fe=100, on enlève un entre chaque échantillon :
x(n)= {0, 2, 4, 6, 8, 10, 12, 14,…}
- puis Interpolation par 2 « fe’’=fe’*2 », donc fe’’=200, on rajoute un « 0 » entre chaque
échantillon : x(n)= {0, 0, 2, 0, 4, 0, 6, 0, 8,…}

 l’inverse « interpolation par 2 puis décimation par 2 »

Un=ones(1,200); %déclaration de Un
n=[1:200]; %déclaration de pas n
x(n)=n.*Un; %signal original

subplot(3,3,1) %traçage de signal original x(n)


plot(x)
subplot(3,3,4); %traçage de signal échantillonner de x(n)
stem(x)
subplot(3,3,7); %traçage de spectre d’amplitude de x(n)
plot(abs(fft(x)))

%h=interp(y,2)
y =upsample(x,2) %interpolation par 2 de signal x(n)
subplot(3,3,2) %traçage de signal x(n) interpoler par 2
plot(y)
subplot(3,3,5); %traçage de signal échantillonner interpoler par 2
stem(y)
subplot(3,3,8) %traçage de spectre d’amplitude de x(n) interpoler par 2
plot(abs(fft(y)))

h=decimate(y,2) %décimation par 2 de signal y(n)


subplot(3,3,3) %traçage de signal y(n) décimer par 2
plot(h)
subplot(3,3,6); %traçage de signal échantillonner décimer par 2
stem(h)
subplot(3,3,9) %traçage de spectre d’amplitude de y(n) décimer par 2
plot(abs(fft(h)))

Commentaire : on à un signal d’origine avec fe=200, X(n)= {0, 1, 2,3, 4, 5, 6, 7, 8, 9,…}


- interpolation par 2 « fe’= fe*2 », donc fe=400, on rajoute un « 0 » chaque échantillon :
x(n)= {0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5,…}
- puis décimation par 2 « fe’’=fe’/2 », donc fe’’=200, on enlève un échantillon entre chaque
échantillon : x(n)= {0, 1, 2, 3, 4, 5, 6, 7, 8,…} « retour au signal d’origine x(n) »
Figure 5 : Traçage de signal x(n), échantillonné, interpolé par 2 puis décimé par 2

 décimation de 3 puis interpolation de 2 :


 programme :

Un=ones(1,200); %déclaration de Un
n=[1:200]; %déclaration de pas n
x(n)=n.*Un; %signal original

subplot(3,3,1) %traçage de signal original x(n)


plot(x)
subplot(3,3,4); %traçage de signal échantillonner de x(n)
stem(x)
subplot(3,3,7); %traçage de spectre d’amplitude de x(n)
plot(abs(fft(x)))

y =decimate(x,3) %décimation par 3 de signal x(n)


subplot(3,3,2) %traçage de signal x(n) décimée par 3
plot(y)
subplot(3,3,5); %traçage de signal échantillonner décimé par 3
stem(y)
subplot(3,3,8) %traçage de spectre d’amplitude de x(n) décimer par 3
plot(abs(fft(y)))

%h=interp(y,2)
h=upsample(y,2) %interpolation par 2 de signal y(n)
subplot(3,3,3) %traçage de signal y(n) interpoler par 2
plot(h)
subplot(3,3,6); %traçage de signal échantillonner interpoler par 2
stem(h)
subplot(3,3,9) %traçage de spectre d’amplitude de y(n) interpoler par 2
plot(abs(fft(h)))
Figure 6 : Traçage de signal x(n), échantillonné, décimé par 3 puis interpoler par 2

Commentaire : on à un signal d’origine avec fe=200, X(n)= {0, 1, 2,3, 4, 5, 6, 7, 8, 9,…}


- décimation par 3 « fe’= fe/3 », donc fe=66.6, on enlève deux échantillon entre chaque
échantillon : x(n)= {0, 3, 6, 9, 12, 15, 18, 21,…}
- puis Interpolation par 2 « fe’’=fe’*2 », donc fe’’=133.33, on rajoute un « 0 » entre chaque
échantillon : x(n)= {0, 0, 3, 0, 6, 0, 9, 0, 12,…}
 l’inverse « interpolation par 3 puis décimation par 2 »
 programme :
Un=ones(1,200); %déclaration de Un
n=[1:200]; %déclaration de pas n
x(n)=n.*Un; %signal original

subplot(3,3,1) %traçage de signal original x(n)


plot(x)
subplot(3,3,4); %traçage de signal échantillonner de x(n)
stem(x)
subplot(3,3,7); %traçage de spectre d’amplitude de x(n)
plot(abs(fft(x)))

%h=interp(y,2)
y =upsample(x,2) %interpolation par 2 de signal x(n)
subplot(3,3,2) %traçage de signal x(n) interpoler par 2
plot(y)
subplot(3,3,5); %traçage de signal échantillonner interpoler par 2
stem(y)
subplot(3,3,8) %traçage de spectre d’amplitude de x(n) interpoler par 2
plot(abs(fft(y)))

h=decimate(y,3) %décimation par 3 de signal y(n)


subplot(3,3,3) %traçage de signal y(n) décimer par 3
plot(h)
subplot(3,3,6); %traçage de signal échantillonner décimer par 3
stem(h)
subplot(3,3,9) %traçage de spectre d’amplitude de y(n) décimer par 3
plot(abs(fft(h)))
Figure 7 : Traçage de signal x(n), échantillonné, interpolé par 2 puis décimé par 3

Commentaire : on à un signal d’origine avec fe=200, X(n)= {0, 1, 2,3, 4, 5, 6, 7, 8, 9,…}


- interpolation par 2 « fe’= fe*2 », donc fe=400, on rajoute un « 0 » chaque échantillon :
x(n)= {0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5,…}
- puis décimation par 3 « fe’’=fe’/3 », donc fe’’=133.33, on enlève un échantillon entre
chaque échantillon : x(n)= {0, 0, 3, 0, 6, 0, 9, 0, 12,…}

2. considérons le signal x(t) :

 Traçage de signal x(n) et son spectre d’amplitude :

 Programme :

fe=2000; %fréquence d'échantillonnage


te=1/fe; %temps d'échantillonnage
t=0:te:1-te; %le temps
f1=100; %valeur de fréquence f1
f2=300; %valeur de fréquence f2
x=cos(2*f1*pi*t)+cos(2*f2*pi*t) ; %le signal x(t)

figure(1) %traçage de signal x(n)


plot(t,x)

figure(2) %traçage de spectre d'amplitude


plot(abs(fft(x)))
Figure 8 : signal x(n)

Figure 9 : spectre d’amplitude de signal x(n)


 Décimation de 2 avec et sans filtrage :

fe=2000; %fréquence d'échantillonage


te=1/fe; %temps d'échantillonnage
t=0:te:1-te; %le temps
f1=100; %valeur de fréquence f1
f2=300; %valeur de fréquence f2
x=cos(2*f1*pi*t)+cos(2*f2*pi*t) %le signal x(t)

subplot(3,3,1) %traçage de signal x


plot(x)
subplot(3,3,4) %traçage de signal échantillonner de x
stem(x)
subplot(3,3,7) %traçage de spectre d’amplitude de x
plot(abs(fft(x)))

y =decimate(x,2) %décimation par 2 de signal x "avant filtrage"


subplot(3,3,2) %traçage de signal décimée par 2
plot(y)
subplot(3,3,5); %traçage de signal échantillonner décimé par 2
stem(y)
subplot(3,3,8)
plot(abs(fft(y))) %traçage de spectre d’amplitude décimer par 2

N=6; %l'ordre de filtre


fc=400; %fréquence de coupure
Wn=(2*fc)/fe; %fréquence normalisée
h=fir1(N,Wn) %déclaration de fir1
h1=filter(h,1,x) %filtrage de signal

%LA J'AI ESSAYER DE FAIRE LE TRACAGE DE FILTE MAIS J'AI VU QYE C'EST PAS LA PEINE!
% subplot(3,4,3)
% plot(h)
% subplot(3,4,7)
% stem(h)
% subplot(3,4,11)
% plot(abs(fft(h1)));

y1 =decimate(h1,2) %décimation par 2 de signal x "après filtrage"


subplot(3,3,3) %traçage de signal décimée par 2
plot(y1)
subplot(3,3,6); %traçage de signal échantillonner décimé par 2
stem(y1)
subplot(3,3,9)
plot(abs(fft(y1))) %traçage de spectre d’amplitude décimer par 2
Figure 10 : Décimation par 2 de signal sans et avec filtrage

Commentaire : le milieu de la figure représente le signal décimé par 2 sans filtre, et adroite on à
décimation par 2 avec filtre

 Décimation de 4 avec et sans filtrage :

fe=2000; %fréquence d'échantillonnage


te=1/fe; %temps d'échantillonnage
t=0:te:1-te; %le temps
f1=100; %valeur de fréquence f1
f2=300; %valeur de fréquence f2
x=cos(2*f1*pi*t)+cos(2*f2*pi*t) %le signal x(t)

subplot(3,3,1) %traçage de signal x


plot(x)
subplot(3,3,4) %traçage de signal échantillonner de x
stem(x)
subplot(3,3,7) %traçage de spectre d’amplitude de x
plot(abs(fft(x)))

y =decimate(x,4) %décimation par 4 de signal x "avant filtrage"


subplot(3,3,2) %traçage de signal décimée par 4
plot(y)
subplot(3,3,5); %traçage de signal échantillonner décimé par 4
stem(y)
subplot(3,3,8)
plot(abs(fft(y))) %traçage de spectre d’amplitude décimer par 4

N=6; %l'ordre de filtre


fc=400; %fréquence de coupure
Wn=(2*fc)/fe; %fréquence normalisée
h=fir1(N,Wn) %déclaration de fir1
h1=filter(h,1,x) %filtrage de signal

y1 =decimate(h1,4) %décimation par 4 de signal x "après filtrage"


subplot(3,3,3) %traçage de signal décimée par 4
plot(y1)
subplot(3,3,6); %traçage de signal échantillonner décimé par 4
stem(y1)
subplot(3,3,9)
plot(abs(fft(y1))) %traçage de spectre d’amplitude décimer par 4
Figure 11 : Décimation par 4 de signal sans et avec filtrage

Commentaire : le milieu de la figure représente le signal décimé par 4 sans filtre, et adroite on à
décimation par 4 avec filtre

 Interpolation de 2 avec et sans filtrage :

fe=2000; %fréquence d'échantillonnage


te=1/fe; %temps d'échantillonnage
t=0:te:1-te; %le temps
f1=100; %valeur de fréquence f1
f2=300; %valeur de fréquence f2
x=cos(2*f1*pi*t)+cos(2*f2*pi*t) %le signal x(t)

subplot(3,3,1) %traçage de signal x


plot(x)
subplot(3,3,4) %traçage de signal échantillonner de x
stem(x)
subplot(3,3,7) %traçage de spectre d’amplitude de x
plot(abs(fft(x)))

y =upsample(x,2) %interpolation par 2 de signal x "avant filtrage"


subplot(3,3,2) %traçage de signal décimée par 2
plot(y)
subplot(3,3,5); %traçage de signal échantillonner interpolé par 2
stem(y)
subplot(3,3,8)
plot(abs(fft(y))) %traçage de spectre d’amplitude interpolé par 2

N=6; %l'ordre de filtre


fc=400; %fréquence de coupure
Wn=(2*fc)/fe; %fréquence normalisée
h=fir1(N,Wn) %déclaration de fir1
h1=filter(h,1,x) %filtrage de signal

y1 =upsample(h1,2) %interpolation par 2 de signal x "après filtrage"


subplot(3,3,3) %traçage de signal interpolé par 2
plot(y1)
subplot(3,3,6); %traçage de signal échantillonner interpolé par 2
stem(y1)
subplot(3,3,9)
plot(abs(fft(y1))) %traçage de spectre d’amplitude interpolé par 2
Figure 12 : Interpolation de 2 de signal sans et avec filtrage

Commentaire : le milieu de la figure représente le signal interpolé par 2 sans filtre, et adroite on
à interpolation par 2 avec filtre

 Interpolation de 4 avec et sans filtrage :

fe=2000; %fréquence d'échantillonnage


te=1/fe; %temps d'échantillonnage
t=0:te:1-te; %le temps
f1=100; %valeur de fréquence f1
f2=300; %valeur de fréquence f2
x=cos(2*f1*pi*t)+cos(2*f2*pi*t) %le signal x(t)

subplot(3,3,1) %traçage de signal x


plot(x)
subplot(3,3,4) %traçage de signal échantillonner de x
stem(x)
subplot(3,3,7) %traçage de spectre d’amplitude de x
plot(abs(fft(x)))

y =upsample(x,4) %interpolation par 4 de signal x "avant filtrage"


subplot(3,3,2) %traçage de signal décimée par 4
plot(y)
subplot(3,3,5); %traçage de signal échantillonner interpolé par 4
stem(y)
subplot(3,3,8)
plot(abs(fft(y))) %traçage de spectre d’amplitude interpolé par 4

N=6; %l'ordre de filtre


fc=400; %fréquence de coupure
Wn=(2*fc)/fe; %fréquence normalisée
h=fir1(N,Wn) %déclaration de fir1
h1=filter(h,1,x) %filtrage de signal

y1 =upsample(h1,4) %interpolation par 4 de signal x "après filtrage"


subplot(3,3,3) %traçage de signal interpolé par 4
plot(y1)
subplot(3,3,6); %traçage de signal échantillonner interpolé par 4
stem(y1)
subplot(3,3,9)
plot(abs(fft(y1))) %traçage de spectre d’amplitude interpolé par 4
Figure 13 : Interpolation de 4 de signal sans et avec filtrage

3. Traçage de signal x(n) et son spectre d’amplitude :

 Programme :

fe=2000; %fréquence d'échantillonnage


te=1/fe; %temps d'échantillonnage
t=0:te:1-te; %le temps

a1=0.2 ; a2=0.5 ; a3=0.7 ; a4=1 ; a5=1.5 ; a6=1.5 ; a7=1 ; a8=0.7 ; a9=0.5 ; a10=0.2;

f1=100 ; f2=300 ; f3=300 ; f4=400 ; f5=450 ; f6=550 ; f7=600 ; f8=700 ; f9=800 ; f10=900;
x=a1*cos(2*f1*pi*t)+a2*cos(2*f2*pi*t)+a3*cos(2*f3*pi*t)+a4*cos(2*f4*pi*t)+a5*cos(2*f5*pi*t)+a6*cos(2
*f6*pi*t)+a7*cos(2*f7*pi*t)+a8*cos(2*f8*pi*t)+a9*cos(2*f9*pi*t)+a10*cos(2*f10*pi*t);

figure(1)
plot(t,x)

figure(2)
plot(abs(fft(x)));
Figure 14 : signal x(n)

Figure 15 : spectre d’amplitude d’un signal x(n)

CONCLUSION :

Dans ce TP on à bien compris le fonctionnement des filtre multi-cadence et le principe de la


décimation et l’interpolation.

- Réduction de la fréquence d’échantillonnage « décimation », fe’=fe/n


- Augmentation de la fréquence d’échantillonnage « implémentation », fe’=fe*n

Vous aimerez peut-être aussi