Wiener
Wiener
Wiener
• Objectifs
– Acquérir les outils mathématiques utiles au
traitement du signal
– Maîtriser les techniques de traitement du
signal
• Prérequis
– M6: Mathématiques pour le signal discret
– TR1: Modulations numériques et notions de
compression
Sommaire PPN
• Notions de signaux aléatoires (bruit)
• Corrélation, orthogonalité
• Transformée de Fourier discrète 1D/2D
• Rappels sur la transformée en Z
• Filtrage numérique
• Applications à la compression audio/vidéo
Mots clés:
FFT, filtrage numérique, compression
Indications de
mise en oeuvre
• Applications aux DSP
(Digital Signal Processor)
• Logiciels de calcul numérique:
– Matlab
– Scilab
– Octave
Supports de cours
Débuter en traitement numérique du signal
Application au filtrage et au traitement des sons
JeanNoël Martin
Prof. À l’IUT d’Annecy
Analyse et contrôle
numérique du signal
Philippe Destuynder, Prof. CNAM
Françoise Santi, Prof. CNAM
Pour aller plus loin…
Ondelettes pour le signal numérique
Frédéric Truchetet, Prof. à l’uB
The DSP handbook
Algorithms,
Applications, and
design techniques
Bateman, Bateman and PatersonStephens
Introduction
• Pourquoi numériser un signal
– le stocker/dupliquer/transmettre sans perte, ou au
contraire pour le compresser.
– lui faire subir des traitements numériques (filtrage,
analyse, prédiction,…)
– mélanger différents signaux de différentes natures sur
de mêmes supports (multimédia: son, image,…)
• Avantages de la numérisation
– précision et stabilité dans le temps et dans la production
– souplesse, polyvalence, modularité et évolutivité
Chaîne de transformations
Micro Hautparleur
CAN CNA
Signal Signal
Signal numérique
échantillonné échantillonné
Compression Décompression
Signal Signal
Signal numérique
compressé compressé
Des compétences variées
Monde
• Physique/Electronique
extérieur – Capteurs
Capteur Actionneur – Filtres
– DSP
Signal continu
• Informatique
CAN CNA – Programmation: Matlab (R&D)
Signal C, assembleur, …
échantillonné • Mathématiques
Compression Décompression – Probabilités
Signal – Analyse de Fourier
compressé
– Transformée (Z, Laplace)
Plan du cours
La structure du cours reprend les étapes de traitement:
• I Échantillonnage
• II Conversion Analogique ↔ Numérique
• III Analyse des systèmes numériques
• IV Filtrage numérique
• V Application: Traitement numérique des sons (TPs)
Echantillonneurbloqueur
Signal continu:
function [x,f,s]=gensig(N,Fe,F,R,Rb),
% Génère un signal qui est une somme de sinusoïdes aux fréquences F et avec des niveaux d'énergie R.
>> N1=1000; % Exemple: » x=gensig(1024,16000,[500 1000 1500 2000 2500],[0,5,10,15,20],10);
% N=1024,Fe=16000Hz,f={500Hz, 1000Hz, 1500Hz, 2000Hz et 2500Hz}
>> [x,f,s]=gensig(N1,
16000, % A={ 5dB,10dB,15dB et 20dB}, le niveau de bruit est 10dB
Te=1/Fe; t=((1:N)/Fe)';
[30 40 45],
x=zeros(size(t)); E0=1;
[0,0,0],80);
for k=1:length(F),
E=10^(R(k)/20)*E0; % L'énergie d'une sinusoïde est liée à l'amplitude par E=A^2/2
A=sqrt(2*E);
x=x+A*sin(2*pi*t*F(k));
end,
b=randn(size(t)); % J'ajoute un bruit blanc d'énergie 20dB par rapport à E0
Eb=norm(b)^2/N; b=b/sqrt(Eb)*sqrt(10^(Rb/20)*E0); x=x+b;
E=norm(x)^2/N; % Finallement, je norme le signal en lui donnant une énergie totale de 1
x=x/sqrt(E);
p=N; % Je choisis de systématiquement normaliser la TFD
y=fft(x,p)/p;
f=((0:(p/21))/p*Fe)';
s=abs(y(1:(p/2)));
Echantillonneurbloqueur
Signal bloqué:
>> N0=15;
>> dN=50;
>> xb=x;
>> for i=N0:dN1;
>> xb(i:dN:N1)
=xb(N0:dN:N1);
>> end,
Echantillonneurbloqueur
Signal
échantillonné:
>> xd=xb(N0:dN:N1);
Reconstruction
Signal
échantillonné:
Reconstruction
Signal bloqué
reconstruit:
>> for i=1:dN;
>> xr(i:dN:N1)=xd;
>> end,
Reconstruction
Signal filtré:
Synthèse du filtre
numérique passe
bas (Chebyshev):
>> Fc=200;
>> Rp=0.5;
>> Wn=1/dN;
>> [b,a]
=cheby1(9,Rp,Wn);
Filtrage:
>> xf=filter(b,a,xr);
Reconstruction
Signaux superposés:
Reconstruction
Résultat final:
Etude spectrale d’un
échantillonneurbloqueur
Un échantillonneur est le produit entre le
signal et un peigne, idéalement un peigne
de Dirac.
Produit de deux
sinusoïdes (déphasées)
X 1 t = A1 sin 2πf 1 t
X 1t X 2 t
= A1 A2 sin 2πf 1 t cos 2πf 2 t
A1 A2
=
2 [ sin 2π f 1 f 2 t sin 2π f 1− f 2 t ]
X 2 t = A2 cos 2πf 2 t
Le produit de deux sinusoïdes de fréquences f1 et f2 fait apparaître deux
+f et f f
autres sinusoïdes à des fréquences f
1 2 1 2
Etude spectrale
d’un peigne
Etudions le cas classique d’une sinusoïde de fréquence f0
X t = A0 sin 2πf 0 t
et du peigne
{
t0
E si frac
P t= 0
t
≤
T e 2Te
0 sinon
E0
Signaux continus
périodiques
Séries de Fourier t0 0 t0 Te
−
2 2
Développement en série
de Fourier
Le développement en série de Fourier présente un instrument
d’analyse des signaux analogiques T0périodiques.
∞
X t =a0 ∑ ak cos 2π kf 0 t b k sin 2π kf 0 t
k=1
1 T0
a0= ∫0 X t dt
T0
2 T0
ak= ∫0 X t cos 2π kf 0 t dt
T0
2 T0
b k= ∫0 X t sin 2π kf 0 t dt
T0
1
Convention:
f 0= et ω 0=2πf 0
Joseph Fourier, né à Auxerre en 1768 T0
Développement en série
de Fourier
La série de Fourier peut aussi s’exprimer sous la forme équivalente
∞ T0
1
X t = ∑ c k exp 2iπ kf 0 t avec c k= ∫
T0 0
X t exp −2iπ kf 0 t dt
k=−∞
avec les relations entre les deux définitions:
{
a 0 si k=0
a −b k i
c k= k si k≥1
2
c
−k sinon
Identité de Parseval
T0
Si le signal est d’énergie finie ∫ dt∞ on a les relations
∣X t ∣
2
0
T0 ∞ ∞
2 1 2 2 2
∫ ∣X t ∣ dt=a0 ∑ a b =
2 k=1 k k k=−∞ k
∑ ∣c ∣
0
ab
Remarque: Pour un signal entre a et b, on a, en posant c=
2
∞ b
k=−∞
X t = ∑ c k exp 2iπk
t−m
b−a
avec c k =
1
∫
b−a a
X t exp −2iπk
t−c
b−a
dt
Exercice: Trouver la formule équivalente pour la définition en
sinuscosinus
Analyse de Fourier de
l’échantillonnage
D’après les formules précédentes:
E0 t 0
sin π kF e t 0
∞
P t= 1 2 ∑ cos 2π kF e t
Te k=1 π kF e t 0
Le développement en série Pour te assez petit:
de Fourier fait apparaître des
raies aux fréquences
multiples de la fréquence
d’échantillonnage Fe.
0 Fe 2F e 3F e 4F e
Analyse de Fourier de
l’échantillonnage
En vertu du principe de superposition, le produit d’une sinusoïde de
fréquence f0 et du peigne de Dirac fera apparaître des raies aux
fréquences f 0 , F e ± f 0 ,2 F e ± f 0 ,⋯
Si f0<Fef0 alors on
retrouvera bien le pic
correspondant au
signal.
Mais sinon, aïe aïe !
0 f0 F e− f 0 F e 2F e
Analyse de Fourier de
l’échantillonnage
Si les fréquences du signal sont toutes inférieures à Fe /2 alors le
signal ne sera pas détérioré.
Si des fréquences sont
supérieures à la moitié de
la fréquence d’échantil
lonnage, alors il y a
déformation du spectre
par recouvrement.
Phénomène de Gibbs
Les signaux discontinus sont eux aussi très détériorés par l’oubli des
hautes fréquences: c’est le phénomène de Gibbs.
∞
4 sin 2π nt
S t = ∑
π n=1 n
4
π 1
S t = sin 2πt sin 4πt
2
Phénomène de Gibbs
Les signaux discontinus sont eux aussi très détériorés par l’oubli des
hautes fréquences: c’est le phénomène de Gibbs.
∞
4 sin 2π nt
S t = ∑
π n=1 n
5
4 sin 2π nt
S t = ∑
π n=1 n
Phénomène de Gibbs
Les signaux discontinus sont eux aussi très détériorés par l’oubli des
hautes fréquences: c’est le phénomène de Gibbs.
∞
4 sin 2π nt
S t = ∑
π n=1 n
30
4 sin 2π nt
S t = ∑
π n=1 n
Phénomène de Gibbs
Les signaux discontinus sont eux aussi très détériorés par l’oubli des
hautes fréquences: c’est le phénomène de Gibbs.
∞
4 sin 2π nt
S t = ∑
π n=1 n
250
4 sin 2π nt
S t = ∑
π n=1 n
Théorème de
ShannonNyquist
Réciproquement, si la fréquence d’échantillonnage est assez grande par
rapport au signal étudié, on a le théorème fondamental:
Théorème. Soit X(t) une fonction telle que toutes les fréquences sont
inférieures à f. Soit Fe une fréquence d’échantillonnage telle que Fe>2f.
Alors: ∞ sin 2πf t −nT e
X t = ∑ X nT e
n=−∞ 2πf t −nT e
Conclusion. Il est impératif de faire passer le signal
par un filtre passebas analogique dont la fréquence
de coupure est inférieure à la moitié de la fréquence
d’échantillonnage, avant d’échantillonner.
Conversion
analogiquenumérique
La représentation numérique en virgule fixe(*) d’une quantité
analogique est caractérisée par la plage des valeurs représentables [a,b]
et la précision ε, c’estàdire la différence entre deux valeurs
consécutives.
b−a
Si N est le nombre de bits de la représentation, ε=
2N
L’erreur entre la valeur analogique et la valeur numérisée s’appelle
erreur de quantification.
(*) La représentation en virgule flottante ne sera pas étudiée ici.
Conversion
analogiquenumérique
En plus des erreurs de quantification, un CAN y b
b=int 2 N
y −a
b−a
peut présenter les erreurs suivantes:
• Biais systématique (erreur sur a)
• Erreur de gain (erreur sur ba)
• Nonlinéarités (distorsion de la fonction linéaire)
La conversion réciproque CNA peut présenter le même type d’erreur.
Notions de processus
Un processus aléatoire (discret) est une suite de variables
aléatoires X(n) définie sur un espace de probabilité (Ω,A,P).
Exemples:
• Toute suite numérique est aussi un processus aléatoire
• On lance un dé et on note X(n) le résultat du nième résultat
• On pose X(0)=0. On lance une pièce et on pose au nième lancé
X(n+1)=X(n) + 1 si le résultat est Pile
X(n+1)=X(n) 1 si le résultat est Face
C’est une marche aléatoire:
Notions de processus
Exemples (suite):
• On note X(n) le nombre de requêtes arrivant sur un serveur
par unité de temps. C’est un cas de loi de Poisson:
λ k −λ
P X n =k = e
k!
• On note X(n) le temps d’attente avant l’arrivée de la nième
requête sur un serveur. C’est la loi exponentielle:
b
P a≤ X n b = λ∫ e−λx dx pour 0≤ab
a
Notions de processus
Exemples (suite):
• Si les variables aléatoires X(n) sont indépendantes et suivent la
loi normale centrée réduite (loi de Gauss), le processus X(n)
s’appelle un bruit blanc. C’est un processus très important !
Densité de la loi de Gauss de
moyenne m et de variance σ2 :
2
1 1 x−m
f x= exp − 2
2π σ 2 σ
Bruit blanc
Le bruit blanc est souvent utilisé pour modéliser un bruit physique,
ceci en raison du résultat mathématique suivant:
Théorème « central limite ». Si Y(n) est une suite de variables
aléatoires indépendantes et de même loi, de moyenne µ et de
variance σ2, alors la loi de tend vers la loi de
S n =Y 1 ⋯Y n
Gauss de moyenne n.µ et de variance n.σ2, ou de façon équivalente
mais plus rigoureuse
S n −nμ
n ∞ N 0,1
σ n
Somme de n variables aléatoires
uniformes discrètes, n= 1, 2, 5,10,100
Bruit blanc
Signal utile + Bruit de mesure
Problématique: éliminer le bruit et
récupérer les informations utiles,
c.a.d. inverser cette opération
Processus
stationnaires
On dit d’un processus aléatoire X(n) qu’il est stationnaire si la
loi de X(n) ne dépend pas de n.
On dit que X(n) est stationnaire du 1er ordre si E [ X n ] =µ
existe et est indépendant de n.
On dit que X(n) est stationnaire du 2nd ordre s’il est
stationnaire du 1er ordre et E [ X i −µ X j −µ ] =γ ∣i− j∣
existe et ne dépend pas de n.
Théorème.
Stationnaire ⇒ Stationnaire du 2nd ordre
er
⇒ Stationnaire du 1 ordre
Autocovariance
et autocorrélation
Pour un processus stationnaire du 2nd ordre, on note pour tout
entier naturel k
∗
Γ X k =E [ X i −µ X i−k −µ ]
et ΓX(k) (indépendant de i) s’appelle l’autocovariance de X.
On défini aussi l’autocorrélation de X la normalisation de
l’autocovariance par la variance de X
Γ X k
γ X k= 2
σ
de sorte que γX(0)=1.
N
1
Moyenne temporelle X= ∑ X k Moyenne
N k=1
statistique E(X(n))
Processus ergodique
Un processus stationnaire est dit ergodique si on peut calculer
moyenne et covariances par des statistiques temporelles.
Ainsi, pour un tel processus X(n), n allant de 1 à N, on a:
N
1
µ=E [ X n ]≈ ∑ X k
N k=1
N
1
2
[ 2
]
σ =E X n −µ ≈ ∑ X k −µ
N k=1
2
Γ X k ¿ E [ X i −µ X i−k −µ ]
N
1
¿ ∑
N −k i=k1
X i −µ X i−k −µ
Exemple de
calcul d’autocorrélation
>> N0=100; N=1000;
>> X=zeros(N0+N,1);
>> B=randn(N0+N,1);
>> for k=3:N0+N,
X(k)=1.85*X(k1)0.855*X(k2)+B(k);
>> end,
>> X=X(N0+1:N0+N)X(N0+1);
>> [gamma,lags]=xcov(X,20,'coeff');
Exemple de
calcul d’autocorrélation
>> N0=100; N=1000;
>> X=zeros(N0+N,1);
>> B=randn(N0+N,1);
>> for k=3:N0+N,
X(k)=0.63*X(k1)0.098*X(k2)+B(k);
>> end,
>> X=X(N0+1:N0+N)X(N0+1);
>> [gamma,lags]=xcov(X,20,'coeff');
Covariance
et crosscorrélation
Pour deux processus stationnaires du 2nd ordre, on note pour tout
entier relatif k
∗
Γ X X k =E [ X 1 ¿ −µ1 X 2 ¿−k −µ 2 ]
1 2
et s’appelle la covariance de X
Γ X X k
1 2 1 et X2.
On défini aussi la crosscorrélation de X1 et X2 comme étant la
normalisation de l’autocovariance par les écarttypes de X1 et de
X2 Γ X X k
γ X X k = 1 2
1 2 σ1 σ 2
(*) On a noté µ j =E [ X j n ] et
2
σ j =E [ X n −µ ] ,
j j
2
j=1,2
Covariance
et crosscorrélation
Remarque. L’ autocorrélation de X est la crosscorrélation de X avec
luimême.
Sous l’hypothèse d’ergodicité, on peut calculer la covariance de deux
processus X1 et X2 après avoir calculé les moyennes empiriques µ1 et µ2
par
Γ X X k ¿ E [ X 1 ¿ −µ 1 X 2 ¿−k −µ2 ]
1 2
N
1
¿ ∑ X i −µ X 2 i−k −µ
N −k i= k1 1
Puis, σ1 et σ2 désignant les écarttypes, on a toujours:
Γ X X k
γ X X k = 1 2
1 2 σ1 σ 2
Applications
• Géologie: Détecter la profondeur des couches géologiques
(autocorrélation).
• GPS: calculer le délai de propagation entre deux signaux émis
par deux satellites (crosscorrélation).
• Sonar: Détecter la distance d’une surface quelconque
(autocorrélation).
• Economie: Repérer les corrélations entre plusieurs variables
économiques (crosscorrélation).
• FBI: localiser un signal particulier dans un enregistrement plus
long, ou dans un ensemble d’enregistrements (convolution).
• Réseau: estimer des retards de propagation (autocorrélation).
Exemple de calcul de
crosscorrélation
N0=130; Y=X(N0+1:N0+N)X(N0+1);
N=1000; X=X(N010+1:N010+N)X(N0+1);
X=zeros(N0+N,1); X=X+randn(size(X))*0.1;
B=randn(N0+N,1); Y=Y+randn(size(Y))*0.1;
a=0.3;b=0.4; [gamma,lags]=xcorr(X,Y,20,'coeff');
for k=3:N0+N,
X(k)=(a+b)*X(k1)a*b*X(k2)+B(k);
end,
Filtre de Wiener
Le filtre de Wiener est un outil permettant d’estimer une variable
aléatoire ou un processus aléatoire entaché de bruit, en supprimant
autant que possible le bruit (on « filtre » le bruit).
Ce n’est par nécessairement un filtre passebas: c’est une
méthodologie permettant de synthétiser des filtres de tous ordres.
Vous avez tous un filtre de Wiener dans votre poche !
Filtre de Wiener:
exemples
• Problèmes d’égalisation de canal (déconvolution):
– X(n)=S(n)+W(n) où S(n) est le signal et W(n) est le bruit.
On mesure X(n) et on veut estimer S(n).
– X(n)=S(n)2S(n1)+S(n2)+W(n)
L’oreillette Bluetooth 1.1 Nokia
• Calcul de moyenne récursif: BH602 appartient au milieu de
– X(n)=θ+W(n) gamme et offre
11 heures
• Régénération d’un signal binaire b: d'autonomie
avec une qualité
– X(n)=b(n)+α b(n1)+W(n) audio profitant de
son DSP ( Digital
• Annulation d’écho: Signal Processing )
d'annulation d'écho
– X(n)=(h0*S(n))+W(n) et de réduction de bruit,
pour des conversations
plus nettes.
Filtre de Wiener
Soit X(n) un processus aléatoire quelconque que l’on suppose centré
(sinon, on remplacerait X(n) par X(n)µ).
On suppose que θ est une variable aléatoire inconnue mais que l’on
veut estimer linéairement à partir des p+1 récentes valeurs de X(n):
θ=a0 X n a1 X n−1 ⋯a p X n−p
On cherche les paramètres a0,a1,…,ap.
On suppose pouvoir calculer
Γ X k et Γ Xθ k
pour k=0,…,p, où on note
Γ θX k =E [ θ X n−k ]
Filtre de Wiener
On écrit que θ− θ et X n−k sont orthogonaux pour k=0,,p
E [ θ− θ X n−k ] =0
θ
Puis on remplace par sa valeur, ce qui
θ
donne les équations
{
p
E [ θX n ] − ∑ a i E [ X n X n−i ]=0
i=0 θ− θ
p
E [ θX n−1 ]− ∑ a i E [ X n−1 X n−i ] =0
i=0
p
⋮ X n−1
E [ θX n−p ]− ∑ a i E [ X n−p X n−i ] =0
i=0
θ
X n
Projection orthogonale
Filtre de Wiener
{
p
En remplaçant par les i=0
∑ ai Γ X i =Γ θX 0
covariances, le système ∑ ai Γ X ∣i−1∣ =Γ θX 1
p
s’écrit donc: i=0
⋮
p
∑ ai Γ X ∣i−p∣ =Γ θX p
i=0
Matriciellement, on obtient les équations de WienerHopf
Γ X 0 Γ X 1 ⋯ Γ X p a0 Γ θX 0
Γ X 1 Γ X 0 ⋱ ⋮ a1 Γ θX 1
=
⋮ ⋱ ⋱ Γ X 1 ⋮ ⋮
Γ X p ⋯ Γ X 1 Γ X 0 ap Γ θX p
(Matrice de Toëplitz)
Annulation d’écho
On mesure X(n) = S(n) + ρ S(nd) + σ W(n) où
• S(n) est le signal « utile »
• W(n) un bruit blanc
• ρ et σ sont des paramètres d’amplitude
• d est le retard du à l’écho que l’on veut annuler
S n σW n
Prise de son X n
+ +
avec écho
ρS n−d
Annulation d’écho
On suppose (car c’est plus simple) que S est centré, stationnaire et
surtout que E[S(n)2]=s2 et E[S(n)S(nk)]=0 si k>0.
On obtient par un calcul simple que l’on fera en TD :
{
2
s si k=0
Γ θX k =E [ S n X n−k ]= ρs2 si k=d
0 sinon
{ s2 1ρ 2 σ 2 si k=0
Γ X k =E [ X n X n−k ]= ρs2 si k=d
0 sinon
Annulation d’écho
ce qui permet de poser le système de WienerHopf et de le résoudre
(numériquement):
−1
a0 Γ X 0 Γ X 1 ⋯ Γ X p Γ θX 0
a1 Γ X 1 Γ X 0 ⋱ ⋮ Γ θX 1
=
⋮ ⋮ ⋱ ⋱ Γ X 1 ⋮
ap Γ X p ⋯ Γ X 1 Γ X 0 Γ θX p
et on appliquera le filtre linéaire
S n =a0 X n a1 X n−1 ⋯ap X n−p
Annulation d’écho
S n σW n
Prise de son X n Filtre de
+ + S n
avec écho Wiener
ρS n−d
Rappels sur la DFT
(Discrete Fourier Transform)
La transformée de Fourier discrète est l’analogue pour les
signaux numériques de la transformée de Fourier continue
utilisée pour les signaux analogiques (et dont on ne parlera donc
pas dans ce cours).
N−1
N−1
n=0
x k = ∑ x n exp −2iπk n
N
1
x n = ∑ x k exp 2iπn
N k=0
k
N
La TFD est une méthode d’analyse dans le domaine fréquentiel
très puissante. Elle est aussi à la base de la compression de
signaux (audio et vidéo).
Un exemple en Matlab
N=256;
Fe=200;
omega1=8;
omega2=35;
t=(0:N1)/Fe;
x=3*cos(2*pi*omega1*t)
+5*cos(2*pi*omega2*t);
figure(1),
plot(x);
y=fft(x);
f=(0:N1)*Fe/N;
figure(2),
plot(f(1:N/2),
Résolution
La TFD d’un signal réel est caractérisée par le nombre de points du
signal N et la fréquence d’échantillonnage Fe. La plage de fréquence
détectable vaut Fe/2 et la finesse de résolution vaut Fe/N
x n =3 cos 2πf 1 t cos 2πf 2 t cos 2πf 3 t 5 cos 2πf 4 t
où f 1=12,5
f 2=22
f 3=22.9
f 4=40
Fe
f1 est de la forme f 1=k
f f N
et 2 3≈
Extension: la DTFT
La transformée de Fourier en temps discret (Discrete time Fourier
Transform) est un outil plus théorique
∞
x ω = ∑ x n exp −iωn
n=−∞
où .
ω∈[−π ,π [
On a la formule d’inversion
π
1
x n = ∫ x ω exp iωn dω
2π −π
Puisque N est infini, la finesse de résolution est nulle et les fréquences
sont toutes distinguables.
Algorithme FFT
La transformée de Fourier rapide (Fast Fourier Transform, FFT)
est un algorithme de calcul de la transformée de Fourier discrète.
Cet algorithme a permis de rendre possible le calcul de TFD
dans des applications embarquées, et on désigne souvent la TFD
par FFT.
Exemple numérique. Un signal audio de 1 seconde
échantillonné à 40KHz nécessite 40000 valeurs numériques.
Le calcul de sa FFT prend un temps de l’ordre de 400 ms (*)
La TFD classique prend un temps de l’ordre de 26 minutes !
(*) à raison d’une opération pas milliseconde.
Réponse impulsionnelle
{
u n =
1 si n=0
0 sinon
Filtre dérivateur
y n =u n −u n−1
Filtre à réponse
impulsionnelle finie (FIR)
NB: On a représenté la sortie y décalée
d’une demipériode dans le temps, pour
des raisons de représentation graphique.
Rappel sur la
transformée en Z
∞
Transformée en Z: X Z = ∑ x n Z
−n
n=−∞
Z1 est l’opérateur retard:
∞ ∞
Z −1 X Z = ∑ x n Z −n1 = ∑ x n−1 Z−n
n=−∞ n=−∞
x n x n−1
Z1
Rappel sur la
transformée en Z
r2
La transformée en Z converge à l’intérieur
d’un anneau délimité par deux cercles de r1
rayons r1 et r2 définis à partir des rayons de
convergence des séries:
∞
1 1 1
∑ x n Z −n converge ⇔
Z
ρ 1 ⇔ Z
ρ1
donc r 1=
ρ1
n=0
−∞ −∞
∑ x n Z −n converge ⇔ ∑ x −n Z n converge donc r 2=ρ 2
n=0 n=0
Rappel sur la
transformée en Z
La transformée en Z caractérise complètement le signal,
puisqu’on a la formule d’inversion
1
x n = ∫ Z n−1 X Z dZ
2iπ γ
où γ est une courbe fermée entourant l’origine et γ
incluse dans le disque unité.
Remarque. Si l’anneau de convergence contient le disque unité
1 2π
x n = ∫0 exp inω X exp iω dω
2π
en faisant le changement de variable Z=exp iω
∞
On retrouve aussi la DTFT:
X exp
iω = ∑ x n exp −iωn = x ω
n=−∞
Théorème des résidus
(utile pour certains calculs)
Théorème. Notons a1,…,an les n pôles de la
fonction rationnelle f, et soit γ un lacet ne
passant par aucun pôle. Alors
n
∫ f z dz=2iπ ∑ indγ ak Res f , ak γ
γ k=1
où
indγ a est le nombre de tours que fait γ autour de
a 1 dm−1
Res f ,a =lim m−1
z−a f z
m
z a m−1 ! dz
p a
=lim z−a f z =
z a q' a p z
en notant m l’ordre du pole, et en écrivant
f z =
qz
Réponse impulsionnelle:
Définition
u n y n ¿ h∗u n
h(n) ∞
¿ ∑ h n−k u k
Système k=−∞
∞ ∞
Y Z = ∑ ∑ h n−k u k Z −n
n=−∞ k=−∞
∞ ∞
− n−k
= ∑ ∑ h n−k u k Z Z−k
n=−∞ k=−∞
∞ ∞
= ∑ h m Z −m ∑ u k Z−k=H Z U Z
n=−∞ k=−∞
U Z Y Z
H( Z )
Transformée en Z
Réponse impulsionnelle:
Identification
{
u n =
1 si n=0
0 sinon
Système
y n =u n −u n−1
Transformée en Z
U Z =1 Y Z =1− Z −1
H( Z )
Y Z
H Z = =Y Z
U Z
Réponse impulsionnelle
Système du 1er ordre
{
u n =
1 si n=0
0 sinon y n =αy n−1 1−α u n
α=0,9
Filtre à réponse
impulsionnelle infinie (IIR)
NB: La sortie y(n), en rouge, a été
multipliée par un facteur 5 pour des raisons
graphiques.
Réponse impulsionnelle:
1ère méthode de calcul
1) Equation sans second membre (ssm)
y n =αy n−1
Solution de la forme y n =ar n
n n−1
ar =αar ⇔r =α (équation caractéristique)
2) Réponse à l’entrée u(0)=1
y 0 =a =αy −1 1−α u 0
=1−α
{
n
d’où y n = 1−α α si n≥0
0∞sinon
1−α
donc H Z =Y Z = ∑ 1−α α Z = n −n
n=0 1−αZ−1
Réponse impulsionnelle:
2nde méthode de calcul
On utilise la transformée en Z
y n =αy n−1 1−α u n
Y Z =αZ −1 Y Z 1−α U Z
puis on raisonne « formellement »
⇔ 1−αZ−1 Y Z = 1−α U Z
Y Z 1−α
⇔ = =H Z
U Z 1−αZ −1
Réponse à un échelon
C’est la méthode employée pour étudier la nature et identifier la réponse
d’un système physique.
Etude de la réponse du
second système
y n =αy n−1 1−α
=α2 y n−2 α 1−α 1−α
=αn y 0 αn−1 1−α ⋯α 1−α 1−α
n n−1
=α 1−α α 1−α ⋯α 1−α 1−α
n1
n 1−α
= 1−α ∑ k=0 α k = 1−α =1−α n1
1−α
d’où la forme exponentielle de la réponse, caractéristique d’un 1er ordre.
Réponse à un bruit blanc
C’est une méthode employée pour identifier avec précision et robustesse
un système en utilisant un logiciel d’identification (tel que Matlab).
Noter le comportement du système du 1er ordre: c’est un filtre passebas.
Réponse à un signal
périodique: le dérivateur
sin 16 π t
sin 2π t
Réponse à un signal
périodique: le passebas
sin 2π t×10
sin 2π t×0,3
Réponse à un signal
périodique
U Z Y Z =H Z U Z
H( Z )
Posons Z=exp(iω)
Y exp iω =H exp iω U exp iω
y ω u ω
Cette équation relie le spectre de l’entrée à celui de la sortie. Le
module et l’argument de montrent le comportement en
H exp iω
fréquence du système, en fonction d’une fréquence normalisée.
Reprenons nos deux exemples…
Réponse à un signal
périodique: le dérivateur
y n =u n −u n−1 H Z =1−Z −1
π 1
∣F ω ∣= 2−2cos ω arg F ω = − ω
2 2
Réponse à un signal
périodique: le passebas
y n =αy n−1 1−α u n α=0,97 ω est une fréquence
normalisée: ω=2π f
Fe
1−α La fréquence de coupure
∣F ω ∣=∣ ∣
1−α exp −iω est l’atténuation à 3 dB:
∣α−1∣ 1
= 2 ∣F ω c ∣= max ∣F ω ∣
α −2αcos ω 1 2 0≤ω≤ π
Ici, cela donne
ω c ≈0,02
f c ≈0,32 Hz
(Fe=100 Hz)
Synthèse de filtre
N2
FIR H Z = ∑ h n Z −n
n= N 1
Toujours stable (i.e. une entrée bornée génère une sortie bornée)
Causal si N1=0 donc réalisable.
IIR
p
Stabilité à étudier ∑ an Z
−n
P Z n=0
Réalisable s’il est rationnel i.e. H Z = =q
QZ
où P et Q sont des polynômes en Z1.
∑ −n
bn Z
n=0
Synthèse de filtre
P Z
Si un filtre IIR a une fonction de traansfert rationnelle H Z =
alors on appelle QZ
zéros de H les racines (complexes) du polynôme P
pôles de H les racines du polynôme Q
Ce type de filtre est stable si les pôles de H sont inclus dans le
disque unité.
Exemple: le système du 1er ordre y n =αy n−1 1−α u n
a pour fonction de transfert
1−α
H Z =
1−αZ −1
Il est stable ssi
∣α∣1
Synthèse de filtre
à partir de filtres analogiques
Partir de la transformée de Laplace d’un filtre analogique:
U s Y s =H s U s
H(s)
Transformée de Laplace
∞
Signal dans le domaine temporel y t = ∫ h t−τ u τ dτ
−∞
∞
Transformée de Laplace (s complexe) X s = ∫ x t exp −st dt
0
C’est l’équivalent (point de vue utilisation) de la transformée en Z
Synthèse de filtre
à partir de filtres analogiques
Soit la fonction de transfert d’un filtre passebas analogique de
pulsation de coupure ω 0=2π f 0
1
H s =
s
1
ω0
La relation fondamentale entre analogique et numérique est
Z=exp s T e
On ne peut l’inverser telle quelle et obtenir un filtre rationnel !
On utilisera des approximations: 2 2
s Te
exp s T e ≈1s T e o s 2 (2nd ordre)
2
≈1s T e o s (1er ordre)
Synthèse de filtre
à partir de filtres analogiques
Au 1er ordre:
1 1− Z−1
Z=1s T e ⇔ s=
T e Z−1
que l’on substitue dans la fonction de transfert analogique:
ω0 T e Z−1
H Z =
1 ω0 T e −1 Z −1
A.N. F e =48 kHz, f 0 =1 kHz
0,131 Z −1
H Z =
10,869 Z −1
y n =0,131 u n−1 0,869 y n−1
(on retrouve un passebas numérique classique, retardé, avec α=0,131)
Synthèse de filtre
à partir de filtres analogiques
ω0 ω0 ω0
H s = ⇒ F ω =∣H iω ∣=∣ ∣=
ω0 s ω 0iω ωω 0
Filtre analogique (bleu)
f0=1000;
w0=2*pi*f0;
Fe=48000;
Te=1/Fe;
f=0:0.1:5000;
w=2*pi*f;
i=sqrt(1);
Fa=abs( 1./(1+i*w/w0) );
Fréquence de coupure W0=w0*Te;
w=w/Fe;
du filtre analogique
1000 kHz
h=plot(f,Fa,'b');
Synthèse de filtre
à partir de filtres analogiques
OMEGA0 Z−1 OMEGA0 exp −iω
H Z = ⇒ F ω =∣ ∣ où OMEGA0 =ω 0 T e
1 OMEGA0−1 Z −1
1 OMEGA0−1 exp −iω
Filtre analogique (bleu)
Filtre numérique (rouge) f0=1000;
w0=2*pi*f0;
Fe=48000;
Te=1/Fe;
f=0:0.1:5000;
w=2*pi*f;
i=sqrt(1);
Fa=abs( 1./(1+i*w/w0) );
Fréquence de coupure W0=w0*Te;
w=w/Fe;
du filtre analogique Fn=abs( W0*exp(i*w)./
1000 kHz Fréquence de coupure (1+(W01)*exp(
du filtre analogique i*w)) );
env. 1073,5 kHz h=plot(f,Fa,'b',f,Fn,'r');
Synthèse de filtre
à partir de filtres analogiques
ω0
Dans on replace s par son expression en Z tirée de
H s =
ω0 s s 2 T 2e
Z =exp s T e =1s T e
2
Filtre analogique (bleu) ce qui donne
Filtre numérique (rouge) 2 1− Z−1
s=
T e 1 Z−1
Filtre numérique au
second ordre (vert) (transformation bilinéaire)
Fréquence de coupure L’approximation (cicontre)
du filtre analogique
1000 kHz Fréquence de coupure est très bonne, la fréquence
du filtre analogique de coupure vaut 999 Hz.
env. 1073,5 kHz
Synthèse de filtre FIR
méthode directe (gabarit)
Gabarit H ω =I − ω , ω ω =
¿
[ 0 0] {
1 si −ω0 ¿ ω≤ω 0
0 sinon
On cherche h par la formule d’inversion(obtenue en prenant le chemin
particulier qui est le cercle unité Z=exp(iω)
Te ∞ Te ω
h n =
2π
∫−∞
H ω exp in ωT e dω= ∫−ω
¿
2π
0
0
exp inωT e dω
{
ω0T e
si n=0
= π
1
sin nω0 T sinon
kπ
Synthèse de filtre FIR
méthode directe (gabarit)
Fe
1 essai la fréquence de Nyquist
ère
ω 0=2πf 0 avec f 0 =
2
Calcul trivial:
{
ω T 0 e
=1 si n=0
h n = π
1
sin nω 0 T =0 sinon
kπ
i.e. y n =u n
Synthèse de filtre FIR
méthode directe (gabarit)
Fe
2 essai
nd
ω 0=2πf 0 avec f 0 =
4
Calcul élémentaire:
{
1
si n=0
2
h n = 0 si n est pair non nul
n−1
1 2
−1 si n est impair
nπ
i.e. filtre non causal et non rationnel
Il faut tronquer la série: risque d’apparition du phénomène de Gibbs
Il faut mettre un retard: pas trop problématique en général…
Synthèse de filtre FIR
méthode directe (gabarit)
∞ N N 2N
−N
H Z = ∑ −n
h n Z ∑ h n Z
−n
Z ∑ h n Z = ∑ h n− N Z
−n −n
Synthèse de filtre FIR
méthode directe (gabarit)
{
1
Fenêtre de Von Hann H ω = 2
¿
1cos ωT e si −ω0 ≤ω≤ω0
0 sinon
Fe
Pour ω 0=2πf 0 avec f 0 =
2
on obtient
{
1
si n=0
2
1
h n = si n=±1
Fréquence de 4
coupure
du filtre
18,2 Hz 0 sinon
Synthèse de filtre FIR
méthode directe (gabarit)
1
y n = u n 2u n−1 u n−2
4
u n =cos 2π f n T e
F e=100 Hz
f =2 Hz f =30 Hz
Synthèse de filtre IIR
Approximants de Padé
−1 −2
abZ cZ
H ω =I −ω , ω ω = dont on doit surveiller la
¿
[ 0 0] −1 −2
1dZ eZ stabilité.
x0=randn(5,1);
{ F e =100
f 0 =5
x=fminsearch(@pade,x0);
w=pi:0.01:pi;
g=(abs(w)<pi/10);
z=exp(sqrt(1)*w);
π h=(x(1)*z.^2+x(2)*z+x(3))
ω 0= ./(z.^2+x(4)*z+x(5));
10 x(1:3)=x(1:3)/max(abs(h));
abs(roots([1;x(4:5)]))
function y=pade(x);
w=0:0.01:pi;
g=(w<pi/10);
z=exp(sqrt(1)*w);
h=(x(1)*z.^2+x(2)*z+x(3))./
(z.^2+x(4)*z+x(5));
y=norm(hg,2);
Synthèse de filtre IIR
Approximants de Padé
Si les pôles (racines de Z2+d Z+e=0) ont un module inférieur à 1, le
filtre est stable. Il s’écrit
y n =−dy n−1 −ey n−2 au n bu n−1 cu n−2
u n =sin 2π ft :
f =10
f =2
Compression MP3
• 20%: Codage de Huffman (compression sans perte de données
binaires)
• 80%: Modèle psychoacoustique
– Filtres passe bande pour récupérer 32 signaux
– Changement de représentation: MDCT (Modified Discrete
Cosine Transform), proche DTFT
– Suppression des fréquences inaudibles
– Mélange des fréquences indistinguables
Mise en œuvre
(en fonction des applications)
Fréquence du Nombre de
signal Fe Te cycles(*)
Système de
1 Hz 4 Hz 0,25 s 50 millions
mesures
Traitement
2 kHz 8 kHz 125 µs 25 000
de la parole
Analyse de
40 kHz 100 kHz 10 µs 2000
vibrations
Traitement
2,5 MHz 12,5 MHz 80 ns 16
d’image
(*) Nombre d’instructions par seconde, pour un processeur cadencé à 200 MHz
Mise en œuvre
(en fonction des applications)
• PC
• Microcontrôleurs
– traitement de la parole
• DSP à virgule fixe: quantification en nombre de bits, vitesse en Mips,
ex: TMS320C64x (Texas Instrument) 4800 Mips 32 bits
– traitement d’image
– analyse de vibrations
• DSP à virgule flottante: quantification en nombre de bits, vitesse en
MFlops, ex: TMS320C67x (Texas Instrument) 1350 Mflops 64 bits
– cartes son
– lecteurs CD
– téléphones portables
– …
• FPGA (FieldProgrammable Gate Array)
– Applications dédiées
Digital Signal Processor
Mémoires Interface
externes mémoires Mémoire Mémoire
interne cache
Timer T0 64 K 8 K
Timer T1 Contrôleur
d’accès
CAN / CNA Port série 0 mémoire
Port série 1 Unité centrale
PC
dévelop HPI
pement Circuit de démarrage
C.I. carte son
Interface vers le bus de l’ordinateur
RAM
DOUT CNA DSP
ROM
LOUT
ROUT Mux CNA FIFO
REGISTRES
MIC
LINE Sélection CAN FIFO
AUX
DOUT 1 X 2 Y MIDIIN MIDIOUT