Vous êtes sur la page 1sur 7

Université Ferhat Abbas – Sétif 1 1 ‫ﺟﺎﻣﻌﺔ ﻓﺮﺣﺎت ﻋﺒﺎس – ﺳﻄﻴﻒ‬

Faculté de Technologie ‫ﻠﻴﺔ اﻟﺘﻜﻨﻮﻟﻮﺟﻴﺎ‬


Département d'Electronique ‫ﻗﺴم اﻻﻛ وﻧﻴﻚ‬
Filière de Télécommunications ‫ﺷﻌﺒﺔ اﻻﺗﺼﺎﻻت اﻟﺴﻠﻜﻴﺔ واﻟﻼﺳﻠﻜﻴﺔ‬

Série de Travaux Dirigés N° 4


Filtrage numérique

I. Etude théorique
1. Proposer, un signal numérique sinusoïdal s(n) de fréquence fs bruité avec un
autre signal numérique b(n) contenant plusieurs fréquence f f1 ?

b (n )

s (n ) Filtre y (n )

2. Donner la formule mathématique d’un filtre à réponse impulsionnelle finie ?


3. Donner la fonction de transfert du filtre ?
4. Donner un algorithme pour le filtre numérique ?

II. Simulation avec Matlab


1. Analyser le filtre proposé en utilisant le Toolbox FDATool ?
2. Développer un programme utilisant les fonctions Matlab pour ce filtre ?

III. Simulation avec CCS 3.0


1. Donner un programme en langage C du filtre proposé ?
2. Développer un projet CCS du filtre ?

IV. Implémentation sur la carte de développement CIC500.


Discuter et analyser les résultats, en comparent avec les résultats simulés et
théorique.
Université Ferhat Abbas – Sétif 1 1 ‫ﺟﺎﻣﻌﺔ ﻓﺮﺣﺎت ﻋﺒﺎس – ﺳﻄﻴﻒ‬
Faculté de Technologie ‫ﻠﻴﺔ اﻟﺘﻜﻨﻮﻟﻮﺟﻴﺎ‬
Département d'Electronique ‫ﻗﺴم اﻻﻛ وﻧﻴﻚ‬
Filière de Télécommunications ‫ﺷﻌﺒﺔ اﻻﺗﺼﺎﻻت اﻟﺴﻠﻜﻴﺔ واﻟﻼﺳﻠﻜﻴﺔ‬

Correction de la Série de Travaux Dirigés N° 4


Filtrage numérique

I. Etude théorique :
Filtre à réponse impulsionnelle finie
Un filtre à réponse impulsionnelle finie (RIF), c’est
le produit de convolution du signal d’entrer au système
avec leur réponse impulsionnelle h. Défini par la fonction
suivante :
N 1
y (k )   h (n ). x ( k  n ) (1)
n 0

y (n )  h (n ) * x (n ) (2)

Le système de filtrage est schématisé comme suite :

x (n )
RIF y (k )
h (n )

Figure 1 : Filtre RIF.


Avec :
x ( n ) , c’est un signal discret, de dimension M.
h ( n ) , appelé coefficients du filtre, de dimension N.

Nous pouvons réaliser ce système en utilisons la


transformer en Z, comme montrer la figure suivante :

x (n ) z 1 z 1 z 1

h (0) h (1) h (2) h (n )

y (k )

Figure 2 : Réalisation d’un filtre RIF.


Ont doivent connaitre les paramètres du signal, tel que,
l’amplitude, la fréquence, et les fréquences indésirables
du bruit qu’on veut éliminer pour bien choisi le filtre.
Avant de calculer les coefficients h
Désignation du filtre
Afin de faciliter la méthode des calculs des
coefficients, on utilise un Toolbox Matlab «filterDesigner».

Page:1
Figure 3 : Filter Design Toolbox
A l’aide de cette toolbox, on peut choisir le type du filtre
(HP, LP, BS, BP) et leurs coefficients selon les paramètres du signal.
Paramètres du signal:
 Fréquence du signal ( f s )
 Fréquence d’échantillonnage ( f e )
Paramètres du filtre:
 Type de filtre : HP, LP, BS, BP
 Fréquence de bande passante ( f p )
 Fréquence de bande d’arrêts ( f a )
 Fréquence de coupure ( f c )
La fréquence de coupure f c est obtenue à -3 dB.
H (f c ) 1
 (3)
H (0) 2
D’où, H et fonction du transfert de h.
La fréquence de coupure, ainsi obtenue en fonction des
fréquences des bandes.
f p  fa
fc  (4)
2
 Taux d’ondulations :
o dans la bande passante ( 1  1 ).
o dans la bande atténuée ( 1  1 ).
 Ordre du filtre ( N )
2  1  fe
N   log   (5)
3  10  1   2  f
Avec f la largeur de la bande de transition.
f  f s  f c (6)
On mentionne tous ces paramètres sur la figure suivante.
Page:2
H (f )

1  1
0
1  1
3dB

2
f ( Hz )
fp fc fa fs
2
Bande Bande Stop
Passante Transition Bande
Figure 4 : Gabarie d’un filtre passe bas.
Algorithme
Début

h (n ), x (m )

K  N  M  1

y 0

k=0

n=0

Non Oui
0   k  n  1  M  1

S = S + h(n)  x(m)

Non
n = n+1 n>N

y (k )  s
Après analyse de l’organigramme :

N  N : Opérations de multiplications.
S=0 N  1 : Opérations d’additions.

Non
k = k+1 k>K

Fin

Page:3
Partie II: MATLAB R2021b

L’implémentation du filtre sous Matlab, présenté par


la figure suivante :

 / RIF

Figure 6 : Implémentation sous Matlab.

Nous développons deux fonctions Matlab. La première, c’est


un fichier qui génère un signal sinusoïdal x (n ) , brouillé
avec signal bruit b (n ) de hautes fréquences. Et la
deuxième, le filtre RIF, que nous voulons réaliser.
Signal bruité b(n) :
Nous disposons de manière pour mélanger le bruit avec le
signal utile.

 Bruit additif (+).


 Bruit multiplicatif (x).
Nous générons un signal utile avec les paramètres
suivants :

 Forme du signal : sinusoïdal,


s (t )  As  sin (2 f s t   ) ( 1)
 Fréquence du signal : f s  25 Hz ,
 Fréquence d’échantillonnage : f e  8 kHz ,
 L’amplitude du signal : A s  1

Nous brouillons le signal utile avec le bruit suivant :


 Distribution du bruit : Normale (Gaussienne), leur
fonction de densité de probabilité donnée par :
(t -  ) 2
-
1 2 2
b (t )  e (2)
 2

Avec : la moyenne  , et l’Ecart-type  .

Signal échantillonné x(n)+b(n) :

Pour réaliser la simulation Matlab, nous proposons le


programme suivant « xn.m » :

Page:4
clc; clear;
% Génération d’un signal sinusoïdale
Fe = 8000; % fréquence
d’échantillonnage(échantillons/second)
Te = 1/Fe;
fs = 50; % fréquence du signal (Hz)
T = 1/fs;
t = (0 : Te : 1*T); % vecteur temporel
phi = 0; % phase initiale
As = 0.8; % Amplitude signal
y1 = As*sin(2*pi*fs*t + phi);
L = length(y1); % nombre total des échantillons du signal.

% Génération du bruit
% NORMAL DISTRIBUTION : with mean Mu and standard deviation
SIGMA.
Mu = 0;
sigma = 0.05;
y2 = normrnd(Mu,sigma,1,L);

% Mélange du signal utile avec le bruit.


y = y1 + y2; % Mélange + ou *

% Format des échantillons :


% Virgule fixe N =16 bits ; m = 15 bits fractionnel ; S=1bit
signer
x = fi(y,1,16,15);

Coefficients du filtre Rif :

Pour générer, les coefficients du filtre souhaité,


nous disposons plusieurs méthodes. Nous développons, une
fonction sous Matlab qui génère ces coefficients « RIF.m ».
function y = RIF(fs,x)

SR = fs; % Sample rate


Fpas = 10; % Frequency constraints
Fstop = 12.5;
Apas = 1; % Bande passante (dB)
Astop = 25; % Stop Bande (dB)
N = 16; % Filter order
% Calcul des coefficients.
fd = designfilt('lowpassfir', ... % Response type
'FilterOrder',N, ...
'PassbandFrequency',Fpas, 'StopbandFrequency',Fstop, ...
'PassbandWeight',Apas, 'StopbandWeight',Astop, ...
'SampleRate',SR) ;

coef = fd.Coefficients;

% Format des échantillons :


% format fixe N =16 bits ; m= 15 bits fractionnel ; S=1 signer
h = fi(coef,1,16,15);

% Réalisation du filtre RIF.


% c’est la convolution {x(n)*h(n)}.
y = conv(h,x);

End

Page:5
Après génération des coefficients, nous utilisons le
produit de convolution du signal bruité x(n) et les
coefficients h(n) du filtre avec la fonction Matlab «conv».
Ou on utilise notre propre fonction conv.m développé dans
le TP n°3.

Programme principale :

Pour filtrer le signal bruité x(n), nous développons


le programme suivant :
% signal bruité
xn;

% Filtrage du signal
y = RIF(fs,x);

% Plot du signal
plot(y,'r-o')

Page:6

Vous aimerez peut-être aussi