Support du cours

Transcription

Support du cours
Électronique et Informatique Industrielle 2nde année - EII2
30 septembre 2014
Traitement Numérique du Signal
Supports de cours magistraux
Olivier Sentieys
ENSSAT - Université de Rennes 1
[email protected]
http://www.irisa.fr/cairn
http://perso.univ-rennes1.fr/olivier.sentieys
6 Rue de Kerampont - BP 447
22305 LANNION - France
IRISA — ENSSAT
Institut de Recherche en Informatique et Systèmes Aléatoires
École Nationale Supérieure de Sciences Appliquées et de Technologie
Technopôle Anticipa Lannion
Traitement numérique du signal
et
Processeurs de traitement du signal
Olivier Sentieys
Traitement Numérique du Signal
(Digital Signal Processing)
Traitement numérique
du signal – EII2
•  Introduction
• 
• 
• 
• 
• 
• 
• 
• 
Analyse de filtre numérique
Processeurs de TNS
Arithmétique virgule fixe
Transformée en TNS
Synthèse de filtre RII
Synthèse de filtre RIF
Analyse spectrale
Systèmes multi-cadences
Cycle de développement
Besoin
Spécifications
opératoires
Spécification
Analog
Signal
Processing
A/D
D/A
Digital
Signal
Processing
Digital or
ComputerWorld
Signals
Spécifications
technologiques
Définition de
l'algorithme
Converter
Technology
Provides the
Bridge
Video/Image/Graphics
Fcl High Data Rate
Contraintes
temps réel,
Audio/Speech/Control
Low Data Rate
Consommation
d'énergie,
Flexibilité
Coût
100M
10M
1M
Simulation
Conception fonctionnelle
100k
Performances
Description de
l'algorithme
Implantation
Analog or
Real-World
Signals
Spécifications
fonctionnelles
Partitionnement
Implantation
Matérielle
Implantation
Logicielle
10k
[ICE97] I-3
I-4
Contenu du cours de TNS et PTS
Modules TNS/PTS
CM TNS
•  Analyse et conception de systèmes de TNS
–  Analyse des filtres numériques
Introduction - chaÎne de TNS
1
Analyse des filtres numériques
2
TD TNS
–  Transformées en TNS
–  Synthèse des filtres numériques RII
–  Synthèse des filtres numériques RIF
Arithmétique virgule fixe
3
Bruit de quantification
4
PTS
5
Transformées en TNS
–  Analyse spectrale
Synthèse de filtre IIR
–  Systèmes multi-cadences
6
1
Transformée
de Fourier (x.4.2)
7
4
8
Synthèse de filtre FIR
5
9
•  Implantation de systèmes de TNS
Analyse spectrale
–  Arithmétique virgule fixe (codage - évaluation de la précision)
Système multi-cadences
–  Implantation logicielle : processeurs de traitement du signal
Analyse cellule 2ème ordre IIR (x.1.2)
2
Analyse et implantation VF FIR (x.1.3)
3
Implantation VF IIR (x.1. 7)
Synthèse IIR x.2.2)
10
6
Synthèse FIR par fenêtrage (x.3.1)
11
7
Synthèse FIR éch. Fréquentiel (x.3.2)
TP TNS
23xN
1
TP PTS
1
2
15xN
Projet PTS
1
2
–  Implantation matérielle : module conception des circuits intégrés
8
I-5
Devoir surveillé 2h
Planning modules TNS/PTS
Plan du cours
•  Exercice à préparer pour les séances de TD
I. Introduction
–  Ramassage possible des copies et intégration de la note au DS
Interpolation Analyse spectrale
12
3
6
I-6
1. Introduction, problématique, caractéristiques,
2. Applications typiques de TNS
o  TD1 : Analyse et implantation FIR (1.1.1 – partie 1)
3. Caractéristiques des algorithmes
o  TD2 : Analyse et implantation IIR (1.1.5 – partie 1)
4. Chaîne de traitement et problèmes temps réel, solutions architecturales
o  TD3 : Analyse et implantation IIR (1.1.5 – partie 2)
o  TD4 : Transformée de Fourier (1.4.2)
o  TD5 : Synthèse IIR (1.2.2)
II. Analyse des filtres numériques
o  TD5 : Synthèse FIR par fenêtrage (1.3.1)
o  TD7 : Synthèse FIR échantillonnage fréquentiel (1.3.2)
1. Spécification, classification, représentation
o  TD8 : Interpolation Analyse spectrale (1.7.1)
2. Analyse fréquentielle
3. Structures des filtres RII et RIF
I-7
I-8
Plan du cours (suite)
Plan du cours (suite)
III. Implantation d'algorithmes de TNS
IV. Arithmétique virgule fixe
1. Caractéristiques des algorithmes
1.
2.
3.
4.
2. Traitement temps réel
3. Solutions architecturales
Processeurs de traitement du signal
I. Introduction
Présentation de l'arithmétique virgule fixe
Processus de codage en virgule fixe
Exemple d'un filtre IIR cascadé
Évaluation de la précision
V. Transformées en TNS
2. Description des différentes unités
1. TFD, convolution linéaire
2. TFR : Transformée de Fourier Rapide
3. Panorama des processeurs
4. Outils de développement
VI. Synthèse des filtres numériques RII
1. Invariance Impulsionnelle
2. Transformation Bilinéaire
I-9
I-10
Plan du cours (fin)
VII. Synthèse des filtres numériques RIF
Introduction
1. Introduction
2. Filtres à Phase Linéaire
1. Introduction et problématique
3. Méthode du Fenêtrage
4. Échantillonnage en Fréquence
2. Applications typiques de TNS
VIII. Analyse spectrale
1. Effets de la troncature
2. Caractéristiques des fenêtres
3. Influence sur l'analyse
IX. Systèmes multi-cadences
1. Définition
2. Décimation
3. Interpolation
I-11
I-12
Traitement Numérique du Signal
Chaîne de traitement
B
‚
Te
•  Avantages
A
Action
numérique
N
–  Pas de dérive : température, vieillissement, valeur des composants
–  Précision : garantie par le nombre de bits
anti-repliement
CAN
ƒ

„
T.N.S.
CNA
…
…
‚

†
ƒ
„
–  Souplesse : plusieurs tâches simultanées possibles
Actionneurs
Capteurs
Filtre passe-bas
–  Prédiction : simulation sur ordinateur
–  Prototypes : changements par modifications du logiciel
–  Performances : pas de distorsion de phase, filtrage adaptatif, etc.
–  Intégration : progrès des systèmes VLSI et DSP
†
0.21
0.2
0.2
035
0.49
0.58
1.236
0.61
0.613
0.61
0.6
0.563
0.421
0.236
0.21
0.2
0.2
035
0.49
0.58
1.236
0.61
0.613
0.61
0.6
0.563
0.421
0.236
•  Inconvénients
–  Coût : élevé pour des réalisations simples
–  Vitesse : bande passante large = vitesse de calcul élevé
–  Complexité : réalisation à la fois matérielle et logicielle
I-13
I-14
Quelles applications ?
Domaines d'application
•  A la Maison
–  Télévision à la demande, Télévision Satellite, Jeu Vidéo et Réalité
Virtuelle, Electroménager, Réseaux, ...
–  DVD, HDTV, CD, DAB, DVB
•  Au Bureau
–  Vidéoconférence, Fax, Modems, Pagers, etc.
–  Réseaux rapides, Sans-fil (WLAN, WiFi, etc.)
–  ATM, ISDN, ADSL
•  Sur la route
–  Téléphone cellulaires, Commande vocale, Radar et Sonar, GPS et
traceur de route, Fax/Modems sans-fil, Véhicules intelligents, etc.
Systèmes de l'âge de l'information
Communication homme-machine, synthèse, transformation texte-parole et inverse,
reconnaissance de parole, identification et vérification du locuteur
• 
Télécommunications, codage et restauration de la parole, courrier vocal, télécopie,
audionumérique (CD, DAB), TV numérique, compression et transmission d'images, cryptage et
protection, transmission de données, télé informatique, annulation d'écho, codage à débit
réduit, télé et visioconférence, téléphonie cellulaire, ...
• 
Défense, systèmes d'armes, surveillance, guidage, navigation
• 
Biophysique, génie biomédical, EEG, ECG, radiographie, tomographie, scintigraphie,
gammagraphie, échographie, aide aux handicapés, ...
• 
Acoustique, aérienne, sous-marine, sonar, ultrasons, nuisances
• 
Géophysique, sismique, de surface, océanographique, télédétection
• 
Electromagnétisme, radar, radionavigation, optique, astrophysique
• 
Automobile, injection électronique, ABS, positionnement global, commande d'assiette
adaptative
• 
Musique, numérique, MIDI, échantillonneurs (sampleurs), synthétiseurs, mélangeurs,
réverbération et écho, effets spéciaux, filtrage, enregistrement (DAT)
• 
Instrumentation, capteurs, métrologie, analyse spectrale, génération de signaux, analyses
de transitoires, DPLL
• 
= fusion entre
Calculateur – Télécommunications - Consommateur
• 
Graphisme et imagerie, rotation 3D, vision, reconnaissance de formes, restauration
d'images, stations de travail, animation, cartographie
I-15
I-16
Glossaire du TNS
• 
Saisie, acquisition, conversion (A/N, N/A), codage
• 
Filtrage, FIR, IIR, convolution rapide, filtres spéciaux
• 
Représentation, modélisation, analyse spectrale, transformées
• 
Compression, approximation, extrapolation, codage de source, réduction de débit
• 
Modulation, codage de canal, protection contre les erreurs, cryptage, garantique
• 
Détection, réception optimale, démodulation, décodage, correction
• 
Estimation, paramétrique, estimation d'onde ou d'état, filtrage, prédiction, lissage
• 
Analyse de système, modèles de canaux, milieux de propagation
• 
Amélioration, réduction de bruit, annulation d'écho, compensation, égalisation
• 
Déconvolution, imagerie, résolution, détection de source, restauration
• 
Classification, reconnaissance, signatures
• 
Apprentissage, estimation séquentielle, adaptation, poursuite
• 
Analyse temps fréquence, non stationnarité, estimation de délais, de phase
• 
Traitement multi-fréquences, décimation, interpolation, filtrages en sous bandes
• 
Arithmétique bit fini, quantification, dépassement, virgule fixe, flottante, bruits de calcul,
sensibilité des coefficients.
• 
Architecture des systèmes, DSP, ASIC, mémoire
Introduction
1. Introduction et problématique
2. Applications typiques de TNS
I-17
I-18
1. Types de signaux
Signal de parole
•  Signaux médicaux
•  Processus de phonation
–  EEG, ECG, Images IRM, Images scanner, ...
–  Génération d'une énergie ventilatoire
(poumons+trachée)
•  Signaux sismiques
–  Vibration des cordes vocales
•  Données
–  Réalisation d'un dispositif articulatoire
(conduit vocal)
–  Statistiques, Bourse, ...
•  Signal de parole
•  Sons
Cavité nasale
•  Images
Glotte
•  ...
Cavité buccale
Lèvres
Cavité nasale
Conduit vocal
Larynx
Langue
Modèle source filtre
I-19
I-20
Signal de parole
Signal de parole
•  Signal temporel
–  Aspects statistiques
–  Variabilité intra-individuelle
–  Variabilité inter-individuelle
–  Masquage temporel
–  Prosodie
Un son voisé et son spectre (son “ eu ”)
•  Signal fréquentiel
Amplitude (dB)
40
30
–  Structure formantique
20
o  Fondamental (pitch)
10
o  Harmoniques
–  Masquage fréquentiel
Un son non voisé et son spectre (son “ ch ”)
0
-10
-20
0
I-21
Fréquences
Fe/2
2. Applications
Applications
•  Voie MIC (PCM)
•  Télécommunications : détection de tonalité
–  Parole échantillonnée à 8 kHz en bande limitée à 300-3400Hz sur
8 bits par une loi logarithmique (Rec. G711 du CCITT)
–  Débit normalisé de 64 kbit/s par voie numérique (MIC)
Schéma de détection
de tonalité
•  Codage de la parole
–  Le codage permet : soit d'augmenter le nombre de signaux par
voie (multiplexage temporel), soit d'élargir la bande codée (7kHz
pour audio et visioconférence)
–  ADPCM : 32 kbit/s sans dégradation audible
s(n)
e(n)
CB
Q
s (n)
Q
P
s (n)
canal de
transmission
e'q(n)
DC
-1
s' (n)
Q-1
s' (n)
Detector
697 Hz
BP Filter
Detector
770 Hz
852 Hz
BP Filter
Detector
697 Hz
1
2
3
LP Filter
Limiter
BP Filter
Detector
941 Hz
770 Hz
4
5
6
HP Filter
Limiter
BP Filter
Detector
1209 Hz
BP Filter
Detector
7
8
9
1336 Hz
852 Hz
BP Filter
Detector
1477 Hz
941 Hz
*
0
#
|G| (dB)
1209 Hz 1336 Hz 1477 Hz
Fréquences de tonalité du clavier numérique
P
BP Filter
I-22
Gabarit du filtre numérique
-0 dB
-3 dB
eq(n)
CB : codeur binaire
DC : décodeur binaire
P : prédicteur
Q : quantificateur
Q-1: quantificateur inverse
-30 dB
I-23
FS1
FP1
FP2
FS2
Fe
2
I-24
Applications
Applications
•  Annulation d'écho
•  Compact Disc Audio
–  Réseau téléphonique utilisant les satellites géostationnaires (540ms)
–  Téléphone main libre en voiture (écho + bruit)
–  Téléconférence
–  Echantillonnage à 44,1 kHz sur 16 bits des deux voies : 1,41 Mbit/s
–  Information + correction d'erreurs, contrôle et affichage : 4,32 Mbit/s
–  90 dB de rapport Signal à Bruit et de séparation stéréo (contre 60 et 30 dB)
o  • Réponse impulsionnelle de la salle
o  • Effets : écho, Larsen, réverbération
o  • Problème de déconvolution
A/D
Converter
Microphone
to far end
speaker
+-
near e nd
speach
Ht
Buffer
Memory
Control /
Display
Ambient
Noise
Parity
Coding
MUX
Modulator
Computation
of coefficient s
D/A
16 bit
PCM Converter
LP filter
Loud
speaker
Error
Correction
16 bit
PCM
44.1 kHz
4
Digital
LP filter
I-25
Applications
D/A
D/A
Converter
LP filter
Fe = 176.4 kHz
Fe = 44.1 kHz
Annulateur d'écho par filtrage adaptatif
Filter
D/A
Lecture du système Compact Disc
Encodeur du système Compact Disc
from far end
speaker
Re flections
Demodul
Conversion N/A classique
En pratique : Suréchantillonnage
I-26
Synoptique de l'encodeur MP3
•  Encodeur MP3
–  Codage fréquentiel perceptuel
Transformation temps-fréquence
Quantification & codage
o  Analyse du signal dans le domaine fréquentiel
•  Séparation du signal en bandes de fréquence
o  Utilisation d'un model perceptuel
•  Modélisation du système auditif humain
•  Prise en compte des phénomènes de masquage
•  Le seuil de perception dépend des fréquences
o  Quantification et codage :
•  Distribution du nombre de bits aux composantes spectrales
•  Quantification afin que le bruit soit en dessous des seuils de masquage
Modèle perceptuel
I-27
I-28
Transformation temps fréquence
Modèle perceptuel
•  Objectif : déterminer pour chaque bande de
0
-10
-20
Gain
(dB)
-30
-40
fréquence la quantité de bruit maximale
-50
-60
-70
-80
-90
-100
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
Modified Discrete Cosine
Transform (MDCT)
0.5
Fréquence normalisée
Decimation
PCM Audio
Polyphase
filter
MDCT
Window
MDCT
32 sub-bands
576 lines
FFT
Décomposition en
bande de fréquence
« Longwindow »
« Startwindow »
« Shortwindow »
« Stopwindow »
Psychoacoustic
model
Détermination
des seuils
« Longwindow »
I-29
I-30
Filtrage Numérique
1
Introduction
Définition
Analyse des filtres numériques
–  Système Linéaire Discret (SLD) modifiant la représentation
temporelle et fréquentielle de signaux
1. Spécification, classification, représentation
Filtre Numérique
x(n) <=> X(z)
2. Analyse fréquentielle
3. Structures des filtres RII et RIF
y(n) <=> Y(z)
h(n) <=> H(z)
1. Introduction
Un filtre numérique peut être représenté par :
–  une fonction de transfert en z : H(z) = Y(z) / X(z)
X(z)
H(z)
Y(z)
II-1
II-2
Filtrage Numérique
Filtrage Numérique
1
1
Introduction
H1(z)
X(z)
H(z)
Y(z)
X(z)
+
H2(z)
si x(n) = δ(n) alors y(n) = h(n)
Y(z)
...
a) Forme directe
–  une équation aux différences (récursive ou non récursive)
HM(z)
H1(z)
...
H2(z)
HM(z)
M
N
i =0
i =1
y (n) = ∑ bi .x(n − i ) −∑ ai . y (n − i )
b) Forme parallèle
X(z)
Introduction
Y(z)
c) Forme cascade
∞
y (nT ) = ∑ x(kT )h[(n − k )T ]
y ( n)
k =0
∞
= ∑ x ( k ) h( n − k )
k =0
x(n)
h(n)
y(n)
II-3
II-4
Filtrage Numérique
Filtrage Numérique
2
Spécification d’un filtre numérique
2
2.
Spécification d’un filtre numérique
Spécification d’un filtre numérique
Passe-Bande (ou Réjecteur de Bande) défini par sa fréquence
–  Gabarit fréquentiel
centrale, sa sélectivité, son ondulation en BP et son atténuation
Passe-Bas (ou Passe-Haut) défini par sa sélectivité, son ondulation
en BA
|H(f)|
en BP et son atténuation en BA
1+δ1
1
1-δ1
Bande de transition
Bande
passante
Bande atténuée
|H(f)| (dB)
|H(f)|
fp
1+δ1
1
1-δ1
fa
20log(1+δ1)
δ2
0 dB
20log(1-δ1)
f
fa-
δ2
fp-
fp+
fa+
fe/2 f
20logδ2
fp
Fe/2
fa
f
a) Gabarit fréquentiel linéaire
b) Gabarit fréquentiel en dB
II-5
II-6
Filtrage Numérique
Filtrage Numérique
3
Classification des filtres numériques
3.1
3
Classification des filtres numériques
3.1 Filtres numériques non récursifs
Filtres numériques non récursifs
(ou transversaux)
Un filtre numérique peut être classé selon :
M
y (n) = ∑ bi x(n − i )
–  la durée de sa réponse impulsionnelle
i =0
Y ( z) = H ( z) X ( z)
. finie : les filtres RIF ont leur réponse impulsionnelle à support fini
i.e. h(n) = 0 pour n<0 et n>N
M
M
i =0
n =0
⇒ H ( z ) = ∑ bi z −i = ∑ h(n) z − n
. infinie : les filtres RII ont leur réponse impulsionnelle à support infini
M
–  le type de représentation temporelle
. récursifs : la sortie y(n) dépend de l’entrée courante, des entrées précédentes et
⇒ h(n) = ∑ bi δ (n − i )
i =0
des sorties précédentes
Les coefficients bn du filtre sont les valeurs de la RI (h(n) = bn). Ceci
. non récursifs : la sortie y(n) ne dépend que de l’entrée courante et des entrées
montre qu'un filtre non récursif est à Réponse Impulsionnelle
précédentes
Finie (RIF).
M est appelée la longueur du filtre.
II-7
II-8
Filtrage Numérique
Filtrage Numérique
3.1
3.2
Filtres numériques non récursifs
•  Principales propriétés
Filtres numériques récursifs
3.2 Filtres numériques récursifs
–  Les RIF sont toujours stables (pas de pôles)
–  Les RIF peuvent avoir une caractéristique de phase linéaire
M
N
i =0
i =1
y (n) = ∑ bi x(n − i ) − ∑ ai y (n − i )
M
•  Retard constant en fréquence (temps de propagation de groupe)
•  Pas de distorsion harmonique
•  Symétrie de la RI
∑b z
−i
i
⇒ H ( z) =
–  A sélectivité équivalente, ils sont toujours plus coûteux (en temps de
calcul) que leur équivalent RII
i =0
N
1 + ∑ ai z
=
−i
N ( z)
D( z )
i =1
En pratique on a N=M, N est l'ordre du filtre
II-9
II-10
Filtrage Numérique
Filtrage Numérique
3.2
3.2
Filtres numériques récursifs
Filtres numériques récursifs
M
–  Si N(z) n'est pas divisible par D(z) (cas général), on a un nombre
–  Si N(z)=1 : filtre tout-pôle
infini de termes dans la division polynomiale
∞
∞
i =0
n =0
•  Principales propriétés
H ( z ) = ∑ ci z −i = ∑ h(n) z − n
−i
i
H ( z) =
–  Si D(z)=1 : filtre RIF
∑b z
i =0
N
1 + ∑ ai z
=
−i
N ( z)
D( z )
i =1
–  Les RII peuvent être instables : structure à base de pôles et de zéros
Les coefficients cn sont les valeurs de la RI (h(n) = cn). Ceci montre
M
qu'un filtre récursif est, dans le cas général, à Réponse
∏ (z − z )
i
H ( z ) = b0 z N − M
Impulsionnelle Infinie (RII).
i =1
N
∏ (z − p )
i
i =1
–  Si N(z) est divisible par D(z) (cas particulier), on a un nombre fini de
–  Bande de transition faible
termes dans la division polynomiale. Dans ce cas, le filtre est RIF.
–  Synthèse par réutilisation des méthodes analogiques
•  Exemple : filtre moyenneur
–  Instabilité numérique due au rebouclage : forme cascade plus stable
II-11
II-12
Filtrage Numérique
Filtrage Numérique
4
4
Analyse fréquentielle
Conclusion
Analyse fréquentielle
Trois domaines de représentation
L'analyse fréquentielle est l'étude du module, de la phase et du temps
–  Temporel h(n), équation aux différences
de propagation de groupe du filtre H.
H (e jΩ ) = H ( z )
Analyse fréquentielle
–  Fonction de transfert en z, diagramme des pôles/zéros
–  Fréquentiel H(Ω), module, phase
z = e jΩ
Ω est la pulsation relative : Ω = ωT = 2πfT
h( n)
La fonction de transfert en fréquence H(ejΩ) est périodique de période
2π.
TZ
TZI
|H(ejΩ)|
M
N
y (n) = ∑ bi .x(n − i ) −∑ ai . y (n − i )
i =0
∞
∞
i =0
n =0
H ( z ) = ∑ ci z −i = ∑ h(n) z − n
z = e jΩ
π
2π
Ω
II-13
TF
TFI
H (e jΩ ) = H ( z )
z = e jΩ
II-14
Filtrage Numérique
Filtrage Numérique
4
4
Analyse fréquentielle
i =1
Analyse fréquentielle
Exemple 1
Exemple 2
pordre1.avi
pzordre1.avi
z−b
HH( z()z )== z
zz −− aa
a,ab, b∈∈R°
− −00.9
,9 ≤≤ aa, bb ≤≤0.9
0,9
z
HH( (zz)) == z
zz −−aa
aa∈∈R°
−−11≤≤ a ≤≤11
II-15
II-16
Filtrage Numérique
Filtrage Numérique
4
4
Analyse fréquentielle
Analyse fréquentielle
Exemple 3
Exemple 4
paordre2.avi
prordre2.avi
HH((zz)) ==
zz
( z − p)(
)(zz −− pp*)
*)
HH((zz)) ==
zz
( z − p)(
)(zz −− pp*)
*)
pp∈
∈C
£
pp∈
∈C
£
pp ≤≤11
pp ==00.9
.9
II-17
II-18
Filtrage Numérique
Filtrage Numérique
5
5
5.
Structures de réalisation
Structures de réalisation
Structures de réalisation
–  Filtres RII
N
–  Filtres RIF
N
y (n) = ∑ bi x(n − i ) − ∑ ai y (n − i )
i =0
N
y (n) = ∑ bi x(n − i )
i =0
x(n)
b0
x(n)
Z-1
x(n-1)
+
b1
x(n-N)
b1
+
bN-1
+
Z-1
y(n)
b0
+
y(n)
bN-1
bN
i =1
N
N ( z)
1
= N ( z) ×
= ∑ bi z −i ×
D( z )
D( z ) i =0
1
N
1 + ∑ ai z −i
i =1
Z-1
+
b0
x(n)
Z-1
Z-1
bN
a) Structure directe
⇒ H ( z) =
+
Z-1
Z-1
b1
II-19
+
+
+
bN-1
+
+
bN
RIF
b) Structure transposée
+
y(n)
-a1
b0
x(n)
Z-1
Z-1
x(n-1)
-aN-1
-aN
Z-1
Z-1
x(n-N)
b1
+
+
y(n)
-a1
Z-1
y(n-1)
bN-1
+
-aN-1
bN
-aN
Z-1
y(n-N)
RII
a) Structure directe
II-20
Filtrage Numérique
Filtrage Numérique
5
5
Structures de réalisation
–  Filtres RII
H ( z) =
1
× N ( z) =
D( z )
N
1
N
1 + ∑ ai z
−i
Structures de réalisation
–  Filtres RII
× ∑ bi z −i
x(n)
b0
+
w(n)
i =0
Z-1
i =1
+
-a1
⎧
w(n) = x(n) − ∑ ai w(n − i )
⎪⎪
i =1
⎨
N
⎪ y (n) = ∑ bi w(n − i )
⎪⎩
i =0
1
⎧
.X ( z)
⎪W ( z ) =
D( z )
⎨
⎪⎩ Y ( z ) = N ( z ).W ( z )
w(n)
x(n)
b0
+
+
+
-a1
Z-1
Z-1
-aN-1
-aN
RII
Z-1
b1
+
+
x(n)
y(n)
-aN-1
N +1
2
N +1
2
i =1
i =1
H ( z ) = ∏ Hi( z ) = ∏
X(z)
II-21
H1(z)
+
y(n)
Z-1
+
-a1
Z-1
bN-1
bN-1
+
bN
–  Forme cascade de filtres du second ordre
+
b0
b1
+
Z-1
bN
-aN
w(n-N)
bN
RIF
y(n)
Z-1
a) Structure canonique directe
bN-1
+
Z-1
b1
w(n-1)
N
+
+
Z-1
+
-aN-1
-aN
b) Structure canonique transposée
bi ,0 + bi ,1 z −1 + bi , 2 z −2
H2(z)
1 + ai ,1 z −1 + ai , 2 z −2
...
HK(z)
Y(z)
II-22
Codage en virgule fixe complément à 2
2-n
•  Définition :
Arithmétique virgule fixe
-2m 2m-1
21
20 2-1
S
b1
b0
m −1
x = −2 m S + ∑ bi 2i
1. Présentation arithmétique virgule fixe
pMSB
i=− n
2. Processus de codage en virgule fixe
bm-1 bm-2
b-1 b-2
n
m
Partie entière
Partie fractionnaire
•  m : distance (en nombre de bits) entre la position du bit le plus
significatif pMSB et la position de la virgule pV
2.1. Détermination de la dynamique
•  n :
2.2. Détermination de la position de la virgule
distance entre la position de la virgule pV et la position du bit le
moins significatif pLSB
2m-1
2.3. Détermination de la largeur des données
20
3. Évaluation de la précision
2-n
2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10
x
x
b = m+ n+ 1 bits
format: (b,m,n)
x
m
S
bm-1
b-6 b-7
pMSB
n
b=8
m = -3
n=10
b-n+1 b-n
pLSB
ex: 0.09472 (8,-3,10)
01100001
0.0625+0.03125+2-10
b
pv
IV-1
Codage en virgule fixe complément à 2
•  Domaine de définition du codage :
[− 2
m
,2 m − 2 − n
pLSB
b-n+2 b-n+1 b-n
IV-2
Règles de l'arithmétique virgule fixe
]
•  Addition: z=x+y
–  Règle : le format des opérandes x et y doit être identique
–  Étapes :
•  Pas de quantification : q = 2− n
Choix d'un format commun (bADD,mADD,nADD)
Alignement de la virgule
•  Exemple de codage :
–  (6,3,2),
Q26
Extension des bits des opérandes a et b
0111.11 7.75
0111.10 7.5
0000.11
0000.10
0000.01
0000.00
0
0.75
0.5
0.25
0
1111.11 -0.25
1111.10 -0.5
1111.01 -0.75
1000.01 -7.75
1000.00 -8
0
1
1
1 1
0
0
0
0
1
0
-7.75 = -8+0.25
1
0
0
mz
IV-3
0
1
1
0
1
0
1
n ADD = max (nx ,n y )
bADD = m ADD + n ADD + 1
0 x (7.75) format : (7,3,3)
1
0 y (1.5)
format : (3,1,1)
m y ny
my
-0.5 = -8+7. 5
1
nx
mx
m ADD = max (mx ,m y )
0 z (9.25) format : (8,4,3)
+ 1 si x + y ∉ DADD
⎧m
mz = ⎨ ADD
m
si x + y ∈ DADD
⎩ ADD
nz = n ADD
bz = m ADD + n ADD + 1
nz
IV-4
Exemple de calcul
Règles de l'arithmétique virgule fixe
–  Règle : la représentation de a et b doit être identique
–  Débordement possible si sign(x) = sign(y) = sxy
–  Étapes :
Débordement présent si sign(z) ≠ sxy
1
1
1
r=a×b
•  Multiplication:
•  Addition: z=x+y
Extension des bits de signe des opérandes a et b
1
1
0 0 1 1 1 1 1 0
x (7.75)
format : (7,3,3)
0 0 0 0 0 1 0 0
y (0.5)
format : (2,0,1)
0 1 0 0 0 0 1 0
z (8.25)
format : (8,4,3)
1
1
1
1
0 1 1 1 1 1 0
x (7.75)
format : (7,3,3)
1 1 1 1 1 0 0
y (-0.5)
format : (2,0,1)
Doublement du bit de signe du résultat
•  Le bit redondant peut être intégré à la partie entière du résultat
-20 2-1
0
0 1 1 1 0 1 0
z (7.25)
0 0
format : (7,3,3)
-21
2-2
0 0 0 1 1
Nécessité d'un bit supplémentaire
pour coder le résultat
x (0.5)
0 0 1
Si il n 'y a pas de débordement la
dernière retenue peut être ignorée
0
-2-2
1
y (1.75)
format : (4,1,2)
0
1
1
1
z (0.875)
nz = n x + n y
mz = m x + m y + 1
ny
my
0
format : (2,0,1)
nx
format : (6,2,3)
bz = bx + by
nz
mz
2-3
IV-5
Exemple de calcul
•  Multiplication:
Résumé des règles
•  Addition
r=a×b
–  Choix du format commun :
Extension du signe des opérandes
2-3
1 1
1
0
0
1
0
0
1 1 1
0 0 1
0 0 0
1
1 1
1
1 1
0
0
0 0 0
.0
1
x
x (-0.5)
y (0.75)
bin
format : (4,0,3)
+
y
format : (4,0,3)
z
bout
si bout = bin alors mADD = max (mx ,m y ,mz )
si bout > bin alors mADD = max (mx ,m y )
bin
0 0
1 1
0 0
0 0
0
0
0
1
1
0
1
2-1
0
1
1 1
1
IV-6
0
•  Multiplication
0
0
z (-0.375)
nz = n x + n y
x
format : (8,1,6)
2-6
×
Bit de signe
y
Bit de signe redondant
IV-7
z
mz = m x + m y + 1
Doublement
du bit de signe
bz = bx + by
IV-8
Codage des données
•  Codage des données en virgule fixe :
II. Arithmétique virgule fixe
–  Définir la position de la virgule :
Nombre de bits pour la partie entière et pour la partie fractionnaire
1. Présentation de l'arithmétique virgule fixe
2. Processus de codage en virgule fixe
-2m 2m-1
21
20 2-1
S
b1
b0
bm-1 bm-2
2-n
b-1 b-2
n
m
2.1. Détermination de la dynamique
Dynamqiue
b-n+2 b-n+1 b-n
Partie entière
Partie fractionnaire
Précision
2.2. Détermination de la position de la virgule
2.3. Détermination de la largeur des données
Respecter les règles de
l'arithmétique virgule fixe
Garantir l'absence
de débordement
3. Évaluation de la précision
Maximiser la
précision des calculs
RSBQ (Rapport Signal à Bruit de
Quantification)
IV-9
Les différentes étapes du codage
IV-10
Méthodologie de codage
Application
•  Détermination du domaine de définition : D(xi)
–  Valeur minimale et maximale des données
Détermination
de la dynamique
•  Détermination de la position de la virgule mxi
Détermination de la
position de la virgule
–  Nombre minimal de bits pour représenter la partie entière permettant
Évaluation
de la précision
d'éviter les débordements
•  Déterminer et optimiser la largeur des données bxi
Synthèse de
l'architecture
–  Utiliser au mieux l'architecture
Optimisation
de la largeur
des données
RSBQ
Selection
Scheduling
Allocation
•  Évaluation de la précision de l'algorithme :
Optimisation
du format des
données
Génération
de code
Instruction selection
Register allocation
Scheduling
Optimisation
RSBQmin
–  Calcul du Rapport Signal à Bruit de Quantification (cf. TNS partie 2)
Code VHDL
IV-11
Implantation matérielle : FPGA, ASIC
Contrainte de précision
associée a l'application
Code assembleur
Implantation logicielle : DSP, µC
IV-12
Fil rouge : filtre FIR
Fil rouge : filtre FIR
float Input[N] = {0.123, -0.569,...} /* Définition du signal d 'entrée du filtre */
•  Graphe Flot de Signal du filtre FIR
float h[N] = {0.2,…, 0,48 ,…, 0.2 }; /* Définition des coefficients du filtre*/
int main()
{
float x[N], y[M], acc;
x (n )
int i,j;
for(j=0;
j<M; j++)
c0
/* Filtrage du vecteur d'entrée input */
{
z-1
×
c1
z-1
×
cN − 2
z-1
×
cN −1
×
x[0] = Input[j];
acc = x[0]*h[0] ;
+
for(i=N-1; i>0; i--)
+
{
acc = acc + x[i]*h[i];
/* Calcul d'une cellule du filtre */
x[i] = x[i-1];
/* Vieillissement des variables internes du filtre */
+
y (n )
}
y[j] = acc;
}
}
IV-13
IV-14
Largeur des données dans un DSP
bmem
•  Architecture simple/double
II. Arithmétique virgule fixe
précision
Reg A
–  Simple: badd = bmult = bmem
bmem
–  Double: badd = bmult = 2.bmem
pas d’erreurs dues aux multiplications
bg
bmult
2.1. Détermination de la dynamique
ACCL
2.bmem
–  Réduit l’overflow en étendant la
partie entière
1. Présentation de l'arithmétique virgule fixe
2. Processus de codage en virgule fixe
Reg C
–  badd = bg + bmult
ACCH
bmem
×
•  Bits de garde
Guard Bits
Reg B
badd
+
2.2. Détermination de la position de la virgule
Reg C
2.3. Détermination de la largeur des données
Saturation /
Rounding / Shifter
3. Évaluation de la précision
bmem
15
IV-15
IV-16
Détermination de la dynamique
Méthodes pour déterminer D(xi)
Détermination
de la dynamique
Détermination de la
position de la virgule
Format des données: (b,m,n)
Détermination et
optimisation de de la
largeur des données
2-n
-2m 2m-1
21
20 2-1
S
b1
b0
bm-1 bm-2
pMSB
b-1 b-2
pLSB
Partie entière
du signal
ð  Estimation précise mais dépendante du signal d'entrée
Partie fractionnaire
But: déterminer le nombre de bits minimal pour représenter la
partie entière (mxi)
mxi = ⎣log 2 (max( xi
–  Simulation de l'algorithme en virgule flottante
–  Détermination de la dynamique à partir des paramètres statistiques
b-n+2 b-n+1 b-n
n
m
•  Méthodes statistiques
))⎦ + 1
•  Méthodes analytiques
–  Détermination de l'expression de la dynamique
–  Utilisation de la norme L1
ð  Estimation conservatrice mais l'absence de débordement est garantie
IV-17
Méthodes analytiques
Filtre FIR
•  Normes dans le cas des systèmes linéaires
–  Norme L1:
X(z)
H(z)
Y(z)
Ø  Méthode garantissant l'absence
de débordement
∞
ymax1 = max n ( x(n) ). ∑ h(m)
IV-18
•  Propagation de la dynamique des entrées au sein du
GFS représentant l'application
x (n )
] − 1,1[
z-1
z-1
z-1
m = −∞
–  Norme Chebychev
ymax 2 = maxn ( x(n) )maxω ( H (ω ) )
Ø  Méthode garantissant l'absence de
débordement pour un signal d'entrée à
bande étroite ( x(n)=cos(nwTe) )
c0
×
] − c0 , c0 [
c1
×
] − c1 , c1 [
+
–  Norme L2
ymax 3 = max n ( x(n) ).
∞
∑ h(m)
2
Ø  Méthode limitant la probabilité
de débordement
×
] − cN −2 , cN −2 [
IV-19
cN −1
×
] − cN −1 , cN −1 [
+
+
∞
N −1
m = −∞
m =0
•  Normes L1
m = −∞
ymax 3 ≤ ymax 2 ≤ ymax1
cN − 2
⎤ N −1 N −1 ⎡
⎥ − ∑ ci , ∑ ci ⎢
i =0
⎦ i =0
⎣
y (n )
max n ( y (n ) ) = max n ( x (n ) ). ∑ h(m) = ∑ ci = 10.65
IV-20
Dynamique dans un système
cascadé
Dynamique dans un filtre IIR
•  Dynamique de la sortie y2
•  Sources de débordement : additionneurs
–  Filtre IIR forme directe II: 2 sources ADD0 et ADD1
H(z) = H1(z).H2 (z)
Forme directe II
H1 ( z)
x(n)
y1(n)
H1(z)
y2(n)
H2(z)
xn
ADD 1
wn
ADD 0
+
b0
z-1
×
H1 (e
jΩ
)
×
w(n) = x(n) − a1w(n −1) − a2w(n − 2)
H 2 (e jΩ )
yn
+
×
-a1
b1
z-1
∞
ymax1 = xmax . ∑ h(m)
∞
w max1 = xmax . ∑ hD (m)
m=−∞
H12 (e jΩ ) = H1H 2 (e jΩ )
HD (z) =
×
×
1
1+ a1z + a2z −2
-a2
−1
m = −∞
H ( z) =
b2
b0 + b1 z −1 + b2 z − 2
1 + a1 z −1 + a2 z − 2
IV-21
Exemple : filtre IIR directe II
•  Filtre H(z)
H ( z) =
xmax
•  Norme L1
Exemple : filtre IIR directe II
0.5 − 0.2428 z −1 + 0.5
1 − 0.85 z −1 + 0.8417 z − 2
•  Comparaison des différentes méthodes
Méthodes
∞
∑ h(m) = 2.5645 ⎯⎯→ m
y
∞
∑h
D
( m) = 9
G1.max
=2
N1
G2.max
N2
Méthodes analytiques
m = −∞
xmax
IV-22
⎯
⎯→ mw = 4
Norme L1
2,56
2
9
4
Norme Chebychev
1.687
1
7,13
3
m = −∞
Méthodes statistiques
F iltre1 N um (z )/D en(z )
2
Chirp
1,66
1
7.12
3
Bruit blanc gaussien
0.74
0
2.34
2
Bruit blanc uniforme
1.4
1
4.87
3
1.5
•  Norme Chebychev
H(jw)
1
0.5
0
0
0.5
1
1.5
2
2.5
3
3.5
F iltre 1/D en(z )
8
Fonction de transfert des
filtres H(z) et HD(z)
G1max =
ymax
xmax
N1 = ⎡log 2 (G1max )⎤
G2 max =
wmax
xmax
N 2 = ⎡log 2 (G2 max )⎤
6
HD(jw)
4
2
0
0
0.5
1
1.5
2
2.5
3
3.5
IV-23
IV-24
Obtention de la position de la virgule
Détermination
de la dynamique
Détermination de la
position de la virgule
•  Objectifs du codage en virgule fixe
II. Arithmétique virgule fixe
–  Respect des règles de l'arithmétique virgule fixe
Détermination et
optimisation de de la
largeur des données
Alignement de la virgule des opérandes sources d'une addition
1. Présentation de l'arithmétique virgule fixe
ou d'une soustraction
Format commun pour les opérandes sources
2. Processus de codage en virgule fixe
–  Prévenir les débordements
2.1. Détermination de la dynamique
Recadrage des données : adapter le format des données à la dynamique des
2.2. Détermination de la position de la virgule
données
Débordement possible lors d'une addition ou d'une soustraction
2.3. Détermination de la largeur des données
Nécessité d'introduire des bits supplémentaires
3. Évaluation de la précision
IV-25
IV-26
Règles pour la position de la
virgule
Règles pour la position de la
virgule
•  Donnée x :
•  Additionneur avec bit de garde
–  Changement de référentiel
mx = ⎣log 2 (maxn ( x(n) ))⎦ + 1
garde disponible
Sx
Bg
•  Multiplication : format de la sortie
Sy
Sy
Sy
Sz
Sz
my
bmz-1
gz
•  Addition : choix d'un format commun
bmx-1
bmy-1
gy
mz = m x + m y + 1
m y : position de la virgule de y par
mxʹ′
Nombre de bit de
mz
b0
b-1
b-2
b-n
x
b0
b-1
b-2
b-n
y
b0
b-1
b-2
b-n
z
my'
rapport au
bit le plus significatif de y
m y ' : position de la virgule de y dans le
référentiel commun
m yʹ′ = m y − g y
mzʹ′ = mz − gz
mz '
m ADD = max( mx − g x , m y − g y , mz − Bg )
m ADD = max( mx , m y , mz )
IV-27
IV-28
Cas du filtre FIR
Cas du filtre FIR
•  Architecture sans bit de garde
•  Architecture avec 8 bits de garde
z-1
x(n − i )
S
S
mx = 0
S
S S
×
Ng = 8 (8 bits de garde)
S S
mMULT = 0
S S
+
S S S S S
+
mADD = 4
S
S S S S S S
+
ci
×
S
S S S S S S
>>
mADD = 4
mc = −1
>> 4
S
S
mx = 0
S
S S
mMULT = 0
x(n − i )
S
×
ci
mc = −1
z-1
×
y (n )
S
S
+
y (n )
S S S S S
g ACC = 4
>> 4
mACC = 4
S S S S S
S
Renvoi en mémoire
en simple précision
Renvoi en mémoire
en simple précision
S
IV-29
IV-30
Optimisation de la largeur
Détermination
de la dynamique
Détermination de la
position de la virgule
Détermination et
optimisation de de la
largeur des données
Arithmétique virgule fixe
•  Implantation logicielle
1. Présentation de l'arithmétique virgule fixe
–  Architectures traditionnelles : opérateurs de largeur unique
2. Processus de codage en virgule fixe
–  Architectures évoluées : différents types de données sont supportés
2.1. Détermination de la dynamique
•  Implantation matérielle
2.2. Détermination de la position de la virgule
–  Objectif : optimiser la largeur des opérateurs
2.3. Détermination de la largeur des données
3. Évaluation de la précision
IV-31
IV-32
A
Cas du filtre FIR
B
16 bits
Recadrage des données dans un FIR
×
32 bits
•  Architecture double précision
 Recadrage
externe
32 bits
32 bits
Accumulateur
x (n )
Déplacement
vers l'entrée
c0
‚ Recadrage des
coefficients
+
(sans bit de garde)
x (n)
>>
z-1
z-1
z-1
(16,0,15)
z-1
16 bits
16 bits
Déplacement vers
les coefficients
z-1
z-1
b0
(16,-1,16)
c1
×
cN − 2
×
×
cN −1
>>
×
(32,0,31)
32 bits
>>
>>
>>
+
b1
>>
×
bN-2
>>
×
bN-1
>>
×
>>
>>
>>
>>
+
+
+
+
Renvoi en
mémoire
du résultat
y (n)
>>
(32,4,27)
32 bits
×
+
+
32 bits
Q
(16,4,11)
16 bits
(32,4,27)
y (n )
Filtre FIR
>>
ƒ Recadrage
interne
IV-33
IV-34
Filtre FIR : code C virgule fixe
int Input[M] = {4030,..., ...}
/* Signal x, codage (16,0,15)*/
int c[N] = {13107, 14336, 15565, ..., 13107, 14336};
int main()
{
int x[N]; y[M];
long
/* Coefficients (16,-1,16)
*/
Le signal d'entrée et les coefficients sont spécifiés au niveau du code C en entiers
sur 16 bits (absence de type virgule fixe en C) :
•  l'entier représentant Input (16,0,15) est obtenu en multipliant Input par 215
•  l'entier représentant c (16,-1,16) est obtenu en multipliant c par 216
acc;
int i,j;
for(j=0;
Arithmétique virgule fixe
1. Présentation de l'arithmétique virgule fixe
2. Processus de codage en virgule fixe
j<M; j++)
/* Filtrage du vecteur d'entree input */
2.1. Détermination de la dynamique
{
x[0] = Input[j];
2.2. Détermination de la position de la virgule
acc = (long)(x[0]*c[0]) >> 4;
2.3. Détermination de la largeur des données
Recadrage de la sortie de la multiplication :
changement de format : (32,0,31) ð (32,4,30)
for(i=N-1; i>0; i--)
{
acc = acc + ((long)(x[i]*c[i]) >> 4);
x[i] = x[i-1];
3. Évaluation de la précision
/* Calcul d'une cellule du filtre */
/* Vieillissement des variables internes */
}
}
}
y[j] = (int)(acc>>16);
Réduction de la largeur de la variable 32 bits ð 16 bits
Récupération des 16 bits les plus significatifs de la donnée (l 'opération de
cast sur acc permet de récupérer les bits de poids faible uniquement)
IV-35
IV-36
Quantification
Quantification
1
2
Bruit de conversion A/N
Quantification d'une sinusoïde
Quantification en conversion A/N
x(n)
•  Modèle bruit additif
3q
2q
q
n
multiple entier du pas de quantification élémentaire q.
n
•  Sources de bruit
–  Bruit de conversion A/N
xQ(n) = Q[x(n)]
–  Limitation des chemins de données de l'architecture cible
e(n) = xQ(n) - x(n)
Élimination de bits lors d'un changement de format
|e(n)| ≤ q/2
IV-37
IV-38
Quantification
Quantification
2
2
Caractéristiques de quantification
. Arrondi
Q(x) = k.q
Etude statistique
si (k-1/2).q ≤ x < (k+1/2).q
x
fQ(x)
P(e)
xi
ui ui+1
σ e2 =
µe = 0
1/q
−q 2
x
e(x)
q
q 2
x
de k bits
•  {e(n)} est une séquence d'un
processus aléatoire continu et
stationnaire
(a) Arrondi
•  ergodicité : moyennes temporelles =
moyennes statistiques
x
•  moyenne µe = moyenne temporelle
e(x)
σ e2 =
q2
12
P(e)
q
2
1/q
x
−q
µe =
20 2-1
2-j 2-j-1
2-n
S bm-1
b0 b-1
b-j b-j-1
b-n+2 b-n+1 b-n
j
p (e)
n
(b) Troncature
e.2 n
•  Moments
k
e.2 n
(q = 2 )
−j
q
ui ui+1
x
p (e)
Bits supprimés
Bits restants
2m-1
•  Processus aléatoire discret
•  {e(n)} est décorrélée de {x(n)}
•  la distribution de probabilité de {e(n)}
est uniforme sur l'intervalle de
quantification
fQ(x)
q
Caractéristiques de quantification
•  Bruit lié à l'élimination
•  {e(n)} est un bruit blanc additif
q2
12
. Troncature
Q(x) = k.q
si k.q ≤ x < (k+1).q
ui ui+1
xQ(n)
–  e(n) est l'erreur de quantification
q/2
- q/2
xi
ui ui+1
+
–  Définition : approximation de chaque valeur d'un signal x(n) par un
n
xQ(n)
CAN
x(n)
Q
e(n) = Q[x(n)] - x(n)
e(n)
x(n)
xQ(n) = Q[x(n)] = k.q
x(n)
xQ(n)
3q
2q
q
Modèle de bruit
•  variance σe2 = puissance du bruit
variance = q2/12
µb = 0
IV-39
σ b2 =
q2
(1 − 2−2k )
12
µb =
q
(1 − 2−k )
2
σ b2 =
q2
(1 − 2−2k )
12
IV-40
Quantification
2
Filtrage d'un bruit de quantification
Caractéristiques de dépassement
•  Filtrage du bruit de conversion
D[x(n)]
x(n)
D
Filtre
Saturation
Modulaire
–  Complexe
–  Moins d'effets indésirables
–  Effets indésirables
fD(x)
Xmax
Xmax
A xQ(n)
H(z)
N
x(n)
–  Valeurs de x(n) lorsqu'il sort de la dynamique de codage
Xmax
σ e2 =
xQ(n)
Filtre
H(z)
e(n)
σ x2
σ x2
2
=
= 12.2 2 (b −1) σ x
σ e 2 q 2 / 12
RSBdB = 10 log RSB = 6.02 b + 4.77 + 10 log σ x
Xmin
2
Le RSB augmente de 6dB par bit ajouté
IV-41
Filtrage d'un bruit de quantification
x(n)
xQ(n)
+
IV-42
Sources de bruit dans un FIR
s  Bruit de quantification associé à l'entrée
s  Bruit lié au recadrage externe 
Filtre
H(z)
f (n ) = e(n ) * h(n)
y(n)+f(n)
bruit
x (n)
signal
•  Moments du bruit en sortie
b0
+∞
e
n = −∞
+∞
2
σ 2f = σ e2 ∑ h(n) =
n = −∞
( )
H e j0
σ e2
2π
π
∫π
−
( )
z-1
+
+
Δb0
∑ h( n) = µ
s  Bruit lié au renvoi en
mémoire du résultat
bx
e(n)
µ f = µe
y(n)
q2
2
, σ x puissance du signal d ' entrée
12
RSB =
Xmax
Xmin
+
–  Signal x(n) + Bruit de conversion e(n)
fD(x)
x
x(n)
•  En entrée du filtre
Xmin
Xmin
y(n)
×
b1
z-1
+
Δb1
×
z-1
bN-2 +
×
bgm0 +
bgm1 +
Δb N-2
bgm N-2 +
+
+
+
2
bN-1 +
×
Δb N-1
bgm N-1 +
+
bg mem
+
Filtre FIR
H e jΩ d Ω
s  Biais lié au codage
des coefficients ‚
IV-43
y (n)
s  Bruit lié au recadrage interne ƒ
IV-44
Exemple du filtre FIR
Exemple du filtre FIR
•  Sources de bruit :
•  Puissance du bruit en sortie (arrondi)
bx
x (n)
z-1
+
z-1
N −1
z-1
σ b2 = σ b2ʹ′ + σ b2 + ∑σ b2
y
c0
×
×
c1
×
cN-2
cN-1
×
bgm0 +
bgm1 +
bgm N-2 +
bgm N-1 +
+
+
+
+
σ b2 = σ b2
y
bg mem
+
σ b2 =
y (n)
y
x(n)
N.bgm
bx
+
h
+
e
e
mem
+∞
∑ h(m)
m = −∞
i =0
2
gm . i
N −1
+ σ b2mem + ∑σ b2gm . i
i =0
2
qe2 N −1 2 qmem
q2
cm +
+ N . mi
∑
12 m=0
12
12
y (n)
bg mem
IV-45
IV-46
Exemple filtre FIR
•  Équation aux différences
Implantation d'algorithmes de TNS
N −1
⎧h(i) = ci ∀i ∈ [0, N − 1]
y (n) = ∑ ci . x(n − i ) = x(n) * h(n) avec ⎨
ailleurs
i =0
⎩ h(i) = 0
x(n)
y (n)
1. Caractéristiques des algorithmes de TNS
h
2. Fonctionnement temps réel
3. Solutions architecturales
•  Graphe Flot de Signal
x (n )
c0
z-1
×
c1
×
cN −1
+
×
+
y (n )
III-2
•  Charge de calcul importante
multiplications-accumulations (convolution)
: MAC (multiplication-accumulation)
multiplications-additions (FFT, DCT, adaptation,...)
•  Adaptation
yn = yn-1 + x.h
cN − 2
z-1
Caractéristiques algorithmiques
•  Filtrage, convolution
y = y + x.h
×
+
III-1
Fonctions typiques de TS
z-1
•  Virgule Fixe ou Flottante
: MAD (multiplication-addition)
problèmes liés à la quantification !!!
•  FFT, multiplication complexe
•  Calculs d'adressage complexes
xr = xr.wr - xi.wi
accès linéaire, indexé
xi = xr.wi + xi.wr
bit-reverse ou similaire (FFT)
vieillissement des données …
•  Viterbi
•  Boucles de traitement courtes
a1 = x1 + x2; a2 = y1 + y2;
y = (a1>a2) ? a1 : a2
: ACS
III-3
III-4
Caractéristiques algorithmiques
•  Traitement temps réel
Temps d'exécution de l'algorithme Tex guidé par acquisition I/O
Implantation d'algorithmes de TNS
Période d'échantillonnage Te
Période des sorties Tf (frame period) > Tex
Ni plus vite ... ni plus lentement
(not faster ... not slower)
1. Caractéristiques des algorithmes de TNS
•  Signaux numériques : quantité importante de données
2. Fonctionnement temps réel
Données scalaires, vectorielles, matricielles, multidimensionnelles
Opérations I/O intensives par DMA
3. Solutions architecturales
e(t)
Te
s(t)
Algorithme
ex. s(n) = max(moy(e), s(n-1))
Tf
III-5
III-6
Contraintes temps réel
Exemple filtre FIR
•  Traitement en ligne
•  Traitement par ligne : code C ...
Phases
•  acquisition de l'échantillon x(n0)
int main() {
•  traitement (période du traitement : Te)
float x[N], y, acc;
•  restitution de l'échantillon y(n0 -1)
int i;
x(n)
y(n)
T.N.S.
x(n0)
n0
y(n0)
n0
x[0] = Read.Input.Sample();
acc = x[0]*h[0] ;
n.
for(i=N-1; i>0; i--) {
n
Input(), output()
acc = acc + x[i]*h[i];
/* Calcul d'une cellule du filtre */
x[i] = x[i-1];
/* Vieillissement des variables internes du filtre */
}
fir
y = acc;
idle
Te
2.Te
n.Te
Write.Output.Sample(y);
t
}
Te > texec + t acq
III-7
III-8
Contraintes temps réel
Contraintes temps réel
•  Traitement par bloc
•  Traitement par blocs
Phases
–  Les phases d'acquisition d'un traitement au suivant peuvent soit
•  acquisition de l'échantillon x(n0) et rangement dans le vecteur X
•  traitement (période du traitement : N.Te)
se recouvrir
•  restitution de l'échantillon y(n0 -N)
x(n)
x(n)
x(n0)
x(n0-1)
x(n0 -2)
x(n0 -3)
n0
T.N.S.
x(n0 -4)
n
être jointives
être disjointes
x(n)
N points
x(n)
y(n)
y(n0)
y(n0-1)
y(n0 -2)
y(n0 -3)
Xn
n0
y(n0 -4)
n.
Xn
Xn+R
Xn+2R
Xn+N
Xn
Xn+2N
Xn+M
Input(), output()
FirBloc
idle
Te
2.Te
n.Te
t
N .Te > texec + N .t acq
III-9
III-10
Exemple filtre FIR
Cadence des calculs
•  Traitement par blocs : code C ...
•  Nv : nombre de voies à traiter en parallèle
int main() {
•  Nop : quantité d'opérations élémentaires nécessaires
/* Filtre de longueur N, blocs de taille M)
float x[N+M], y[M], acc;
for(j=M-1;
au TNS
x[0] x[1] … x[M-1] x[M] … x[M+N-1]
int i,j;
j>=0; j--)
•  Te
/* Acquisition du vecteur d'entrées */
x[j] = Read.Input.Sample();
for(j=0;
j<M; j++) {
/* Filtrage du vecteur d'entrées */
: périodicité du calcul
•  Puissance de calcul de la machine :
acc = 0;
for(i=0; i<N; i++) {
acc = acc + x[i+j]*h[i];
Pcalcul =
}
y[j] = acc;
for(j=M-1;
}
Te
(en MIPS, MOPS ou MFlOps)
Pcalcul = 2.B. NV . N op
}
for(i=0; i<N; i++) x[i+M] = x[i];
NV . Nop
/* décalage N derniers échantillons */
B est la bande du signal
j>=0; j--) Write.Output.Sample(y[j]); /* Restitution vecteur sorties */
III-11
III-12
Solutions architecturales
•  Applications embarquées et « grand public »
Implantation d'algorithmes de TNS
–  Très faible coût
Le coût est proportionnel à la surface du circuit
1. Caractéristiques des algorithmes de TNS
–  Faible consommation
Pmoy = α . C . Vdd 2 . F
2. Fonctionnement temps réel
•  α: facteur d'activité défini comme le nombre moyen de transitions (0 à 1) pendant une
période d'horloge.
3. Solutions architecturales
Une partie importante de la consommation est liée à la mémoire
•  Nécessité de minimiser la largeur des données et des instructions stockées en mémoire
–  Temps réel
Implémentation efficace des applications de TS
–  Sûreté de fonctionnement
III-13
III-14
Solutions architecturales
•  Compromis performance - flexibilité
Pc
( MIPS / mW )
C
1. Introduction
Pleiades
10-50 MOPS/mW
Embedded
Processor
Flexibility
EE =
Processeurs de traitement du signal
2 V DSP
3 MOPS/mW
Efficacité énergétique :
ASIC
ASIP
Embedded
FPGA
100
Reconfigurable
Processor
DSP
2.3. Unité de contrôle
Alpha
0.007 MIPS/mW
2.4. Unité de communication
3. Exemples de processeurs
10
EE : Efficiency : MIPS / Watt
2.1. Unité de traitement
2.2. Unité de mémorisation
SA110
0.4 MIPS/mW
100-1000 MOPS/mW
2. Description des différentes unités
1
III-15
4. Outils de développement
III-16
Modélisation d'un processeur
Modélisation d'un processeur
•  Unité de contrôle (IP : Instruction Processor) : unité fonctionnelle
(UF) qui interprète les instructions et commande les autres UF
Unité de contrôle : I.P.
•  Unité de traitement (DP : Data Processor) : UF qui modifie ou
transforme les données
Unité de
traitement
D.P.
•  Unité de mémorisation:
–  IM : Instruction Memory : stocke les instructions
Unité de
mémorisation
I.M. + D.M.
–  DM : Data Memory : stocke les données traitées par le DP
Unité de communication : E.I.U
•  Unité de communication (EIU : External Interface Unit) :
contrôle les accès aux données ou instructions externes, ou à d'autres
processeurs
III-17
FIR sur machine Von Neumann
III-18
Inadéquation des processeurs généralistes
•  Problèmes :
•  Unité de traitement
–  Bande passante avec la mémoire
–  Opérateur arithmétique peu performant (multiplication lente)
Lecture des échantillons
–  File de registres
Vieillissement des échantillons
•  Unité de mémorisation
–  Gestion des pointeurs d'adresse
–  Bande passante avec la mémoire faible
loop:!
!mov
!mov
!mpy
!add
!mov
!inc
!inc
!inc
!dec
!tst
!jnz
*r0,x0!
*r1,x1!
x0,x1,a!
a,b!
x1,*r2!
r0!
r1!
r2!
ctr!
ctr!
loop!
–  Gestion peu efficace des pointeurs d'adresse
Lecture des opérandes sources
Opération MAC
Data Path
•  Unité de contrôle
Memory
–  Gestion peu efficace des boucles
Vieillissement de l'échantillon
Gestion des pointeurs d'adresse
Gestion de la boucle
!
!
!
!
!
!
!
!
lec!
Exécution en 15 à 20 cycles
III-19
III-20
Objectifs
Caractéristiques des DSP
•  Unité de traitement :
Propriétés du traitement
numérique du signal
–  Réaliser efficacement les traitements typiques en TNS
1 MAC par cycle
•  Unité de mémorisation :
Calculs intensifs et répétitifs
–  Alimenter efficacement en données l'unité de traitement afin de ne pas la
ralentir
–  Gérer efficacement les pointeurs d'adresse
•  Unité de contrôle :
Conséquences sur les
architectures
s  Fonctionnement pipeline
s  Architecture Harvard
s  Structures de contrôle
évoluées
s  Unités de traitement
spécialisées câblées
s  Gestion complexe de
l'adressage
?
Primitives simples
–  Gestion efficace des structures de contrôle utilisées en TNS : boucles
–  Encodage des instructions
•  Minimiser la taille des instructions
•  Encoder le maximum de parallélisme
Le tout dans un environnement temps réel
III-21
III-22
Le marché des processeurs DSP
Les différentes générations
Performances normalisées
10000
@ Forward Concept Inc. Architecture VLIW
superscalaire
1000
StareCore(300MHz)
TMS320C62x (300MIPS)
Carmel (300 MHz)
Architecture
conventionnelle
améliorée
100
2ème génération
10
TMS320C20 (5 MIPS)
TMS320C10 (2.5 MIPS)
1
1980
1982
1984
1986
DSP16210 (100 MIPS)
DSP56301
TMS320C54x (50-100MIPS)
ADSP2183 (50MIPS)
DSP56001 (13MIPS)
ADSP21xx (13MIPS)
TMS320C50
1ère génération
III-23
4ème génération
3ème génération
Architecture
conventionnelle
1988
1990
1992
Année
1994
1996
1998
2000
2002
III-24
Exemple Fil Rouge
•  Filtre numérique FIR sur N points
Processeurs de traitement du signal
N −1
y (n) = ∑ h(i ).x(n − i ) = x(n) ∗ h(n)
1. Introduction
i =0
D
2. Description des différentes unités
2.1. Unité de traitement
h(0)
2.2. Unité de mémorisation
x
h(1)
2.3. Unité de contrôle
x
+
h(3)
x
+
–  Dynamique limitée : [-Xmax et Xmax]
–  Le format d'une donnée ne varie pas au cours du temps
Possibilité de débordement ð nécessité de recadrer les données
–  Représentation : partie entière - partie fractionnaire
21
20 2-1 2-2
bm-1 bm-2
b1
b0
b-1 b-2
Partie entière
x
+
y(n)
III-26
•  Arithmétique :
2m-1
h(4)
DSP virgule fixe
•  Virgule fixe
2-n
b-n+2 b-n+1 b-n
•  Développement :
CA2
i =− n
Partie fractionnaire
TMS320C62x :
- fCLK : 300 MHz (150 MHz - 300 MHz)
- On Chip Memory 72 Kbytes ð 896 Kbytes
- Price : $9 ð 102
TMS320C64x :
- fCLK : 1 GHz (300 MHz - 1GHz)
- On Chip Memory 160 Kbytes ð 1056 Kbytes
- Price : $18 ð 219
–  Temps de développement plus long
m −1
x = (−2) m S + ∑ bi 2i
Étude la dynamique des données, détermination du codage et des recadrages
•  Architecture :
–  Opérateurs plus simples
•  Virgule flottante
–  Largeur des données bnat : 16 bits
Efficacité énergétique plus importante, consommation moins importante
–  Représentation : exposant - mantisse
Exposant
h(2)
III-25
Représentation des données
d1
D
ð Objectif : traitement d'une cellule par cycle
4. Outils de développement
dE-1
D
Cellule
3. Exemples de processeurs
S
x
+
2.4. Unité de communication
S
D
x(n)
d0 cM-1
c2
Mantisse
c1
c0
⎛ 1 M
⎞
x = 2u (−1) S E ⎜ + ∑ Ci 2i −1 ⎟
⎝ 2 i =1
⎠
E −1
avec u = (−1) S E ∑ d i 2i
Processeur plus rapide
Processeur moins cher (surface du circuit moins importante)
•  Marché : applications grand public
–  95% des ventes en 96
i =1
III-27
III-28
DSP virgule flottante
Eléments de l'UT
•  Arithmétique :
–  Dynamique importante : 1500 dB pour 32 bits
•  Opérateurs
TMS320C67x :
- fCLK : 300 MHz (100 MHz - 300 MHz)
- On Chip Memory 72 Kbytes ð 264 Kbytes
- Price : $14 ð 105
–  Multiplieur câblé
Multiplication en 1 cycle ou pipelinée (1 résultat de multiplication par cycle)
•  Développement
Le résultat est fourni directement à l'UAL ou il est stocké dans un registre (P register)
–  Temps de développement plus court
Largeur des opérandes
Recadrage des données assuré par le processeur
Compilateur de langage de haut niveau plus efficace : plus grande portabilité
source : bnat
résultat : bmult = 2.bnat
–  U.A.L.
Opérations arithmétiques : addition, soustraction, incrémentation, négation
•  Architecture :
Opérations logiques : and, or, not
–  Largeur des données : 32 bits
–  Opérateurs plus complexes (gestion de la mantisse et de l'exposant)
Largeur des opérandes
sources et destination identique badd ≥ 2.bnat
–  Additionneur indépendant de l'UAL
Processeur plus cher et consommant plus
–  Registres à décalage (recadrage des données)
spécialisé : réalisation de quelques décalages prédéfinis en //
•  Marché
en barillet : réalisation d 'un décalage quelconque en 1 cycle
–  Applications nécessitant une grande dynamique : audionumérique
–  Applications avec des faibles volumes
III-29
Éléments de l'UT
III-30
Structure de l'UT de type MAC
–  Unités de saturation ou d'arrondi
–  Unités spécifiques
Unité de manipulation de bit, Viterbi, ...
Opérateurs
Nbits Entrées
Nbits Sortie
Multiplieur
b nat
2 b nat
Additionneur/ UAL
•  Unités de stockage de l'UT
2 b nat
2 b nat
2 bnat +b g
2 b nat +b g
2 b nat
b nat
2 b nat +b g
b nat
Saturation/Arrondi
–  Registres opérandes
A
bnat
×
P
Stockage des opérandes sources ou des résultats intermédiaires
–  Registres d'accumulation
Stockage du résultat de l'additionneur
Nombre de registres d'accumulation limité (1 à 4)
Données stockées en double précision
Possibilité de bits de garde pour stocker les bits supplémentaires issus d 'accumulations successives
badd = bmult + bg
Bits de garde
bg
ACCH
Registre
Nbits
Opérande source
b nat
Accumulateur
Interconnexions registres - opérateurs spécialisées
ð Structure hétérogène
ð Bonnes performances en terme
de consommation et de surface
ACCL
2.bnat
III-31
bmult
MAC
+
2 b nat
2 bnat +bg
B
bnat
badd
Accumulateur
Sat /Arr
III-32
Exemple : TMS320C54x
DB
CB DB CBDB EB
PB
CB DB
Ÿ 
Ÿ 
Ÿ 
1 multiplieur 16*16 bits
Ÿ  Op source 1 : registre T
Ÿ  Op source 2 : mémoire
Ÿ  Op destination :
Processeurs de traitement du signal
1. Introduction
1 additionneur 40 bits
1 ALU (40 bits)
Ÿ 
2 registres d 'accumulation 40
bits
Ÿ 
1 registre à décalage en barillet
Ÿ 
1 unité dédiée à l 'algorithme de
Viterbi
2. Description des différentes unités
2.1. Unité de traitement
2.2. Unité de mémorisation
2.3. Unité de contrôle
2.4. Unité de communication
3. Exemple de processeurs
III-33
Exemple FIR Fil Rouge
•  Modèle registre-mémoire
–  Recherche de l'instruction
–  Opérandes situées en mémoire et dans les registres
–  Lecture de la donnée xn-k
Temps d'exécution de l'instruction
–  Lecture du coefficient hk
D
h(0)
h(1)
h(2)
x
h(3)
x
h(4)
x
Temps d'exécution de l'instruction
+
+
texec
Opérateur
Mémoire
tacc
RX
RY
tinst = max(texec,,tacc)
y(n)
+
R
•  Modèle « Load-Store »
D
–  Opérandes situées uniquement dans des registres
x
tacc
A
x(n)
x
Mémoire
tinst = tacc+ texec
–  Vieillissement des données xn-k-1 = xn-k
D
III-34
Localisation des opérandes
•  Les différents accès à la mémoire
D
4. Outils de développement
Opérateur
+
texec
TAP
A
III-35
III-36
Architecture Harvard de base
Modification 1
•  Architecture Harvard : séparation de la mémoire
•  Autorisation de mémorisation de
données et de la mémoire programme
données dans l'IM
DP
IP
ð Fetch d'instruction pipeliné avec fetch opérande
•  En un cycle si 2 accès mémoire par
DP
cycle
IP
(tacc = 1/2.tinst) :
1-vers-2
–  fetch de l'instruction
–  fetch deux opérandes de la mémoire
Ex: TMS320C10
–  exécution d'un MAC
DM
IM/DM
–  écriture du résultat en I/O ou mémoire
DM
IM
AT&T DSP32 et DSP32C
[Classification de E. Lee (1989)]
III-37
Modification 2
Modification 3
•  DM est une mémoire multi-
DP
IP
•  Cache pour charger les
ports, plusieurs accès aux
données par cycle
DP
IP
1-vers-2
cache
DM
IM/DM
instructions fréquentes
•  Évite les conflits d'accès
•  Utilisable pour des mémoires
internes au CI
III-38
DM
données et instructions
de la modification 1
IM
Fujitsu MB86232 (3 ports en mémoire interne)
III-39
TMS320C25 :
DSP16 :
ADSP-2100 :
cache 1 instruction pour les boucles
cache 15 instructions
cache 16 instructions
III-40
Modification 4
Modèle du C54x
•  Deux mémoires données
DP
DM séparées
•  Bus et mémoires internes
IP
Mémoire interne
•  En un cycle :
1-vers-2
–  fetch de l'instruction
–  fetch de deux opérandes (si les
ROM :
- Bootloader
- Utilisation dans l'espace data
ou program
Program
temps d 'accès aux mémoires
DM1, DM2 et IM sont identiques)
DM 1
DM 2
IM
Data
read
DARAM (Dual Acces RAM)
- 1 lecture + 1 écriture par cycle
Data
read
SARAM (Single Acces RAM)
- 1 lecture ou 1 écriture par cycle
Data
write
Motorola DSP 56001 et 96002
TMS320C30 et C40
III-41
Modes d'adressage
Modes d'adressage
•  Adressage immédiat : la donnée est stockée directement dans
l'instruction
–  Exemple C54x : LD #75h, A
III-42
A = 75h
•  Adressage mémoire directe : l'adresse de la donnée est
stockée dans l'instruction
–  Adressage absolu : l'adresse complète est stockée dans l'instruction
Adressage court (instruction sur 1 mot) : valeur spécifiée sur 3,4,8 ou 9 bits
C54x les adresses sont sur 16 bits
Adressage long (instruction sur 2 mots) : valeur spécifiée sur 16 bits
L'instruction doit être codée sur plusieurs mots
–  Utilisé pour l'initialisation des registres
–  Inconvénient : augmentation du temps d'exécution et de la taille du code
–  Adressage paginé : pour limiter le nombre de bits stockés dans l'instruction
l'adresse est composée de deux parties :
•  Adressage registre directe : les données sont stockées dans
des registres
a15
a11 A10
a9
a8
a0
–  Exemple C54x SUB A, B
Partie stockée dans un registre
. pointeur de page: DP
. pointeur de pile: SP
III-43
9 bits
TMS320C54x
7 bits
Partie stockée dans
l'instruction
III-44
Modes d'adressage
Buffer circulaire et bit-reverse
–  Buffer circulaire :
•  Adressage indirecte par registre :
–  Registre d'adresse (AR) pointant sur les données
LD *AR1, A
xn-2
–  Possibilités de post modifications :
linéaire : AR:= AR ± 1
LD *AR1+, A
addr = AR1
AR1 = AR1 + 1
indexé : AR:= AR ± MR
LD *AR1+0, A
addr = AR1
AR1 = AR1 + AR0
–  MR: registre d'index
x0 x1
x5
x2
x3
modulo : (AR:= AR ± 1)N
N=8
*AR1
–  Bit-Reverse :
. Adressage des données en entrée ou en
sortie de la FFT
. Attention à l 'adresse de début du
tableau : xxxx0000
addr = AR1
AR1 = bitrev(AR1 + AR0)
LD *AR1+0B ,A
Dernier élément
du tableau
xn
(BK) specifies the size of the circular buffer.
bit-reverse : FFT
xn-1
xn-6
addr = AR1
AR1 = (AR1 + 1) modulo BK
LD *AR1+% ,A
Élément courant
du buffer
Élément
courant
du buffer
xn-4 xn-3
addr = AR1 (Aï *AR1)
xn-3
xn-2
xn-1
xn
xn+1
n-7
xn-6
xn-5
xn-4
Premier élément
du tableau
Vieillissement automatique des données
After access, AR0 is added to ARx with reverse carry (rc) propagation.
III-45
Index
bit
bit reverse
0
1
2
3
4
5
6
7
000
001
010
011
100
101
110
111
000
100
010
110
001
101
011
111
index bit
reverse
0
4
2
6
1
5
3
7
III-46
Unité de gestion des adresses
•  Unité de gestion des adresses du TMS320C54x
Ÿ 
Ÿ 
Ÿ 
8 registres auxiliaires
(AR0…AR7)
2 unités de calcul ARAU
registres spécifiques
Ÿ 
Ÿ 
BK : taille du buffer
circulaire
AR0 : registre d'index
Processeurs de traitement du signal
1. Introduction
2. Description des différentes unités
2.1. Unité de traitement
2.2. Unité de mémorisation
2.3. Unité de contrôle
2.4. Unité de communication
3. Exemple de processeurs
III-47
4. Outils de développement
III-48
Pipeline
Codage des instructions
•  Exécution de l'instruction en plusieurs phases :
–  1. Recherche de l'instruction
•  Stationnarité temporelle:
–  Une instruction définit l'ensemble des opérations à réaliser pour chaque
–  2. Décodage de l'instruction
unité fonctionnelle
–  3. Recherche des opérandes
–  4. Exécution
MULT R1,R2,T
i
Recherche
Instruction
i+1
Inst n-1
Inst n
Décodage
Instruction
Inst n-1
Recherche
Opérande
i+2
i+3
i+4
i
Inst n+1
Inst n
Inst n+1
Inst n-1
Inst n
Exécution
Inst n-1
ADD T,A,A
Transfert
mémoire .U.T.
LOAD
Unité
Multiplieur
Inst n+1
i+1
i+2
i+3
LOAD
LOAD
MULT
MULT
MULT
ADD
ADD
Unité
Accumulateur
Inst n
LD R1,AR1
LD R2,AR2
i+4
ADD
III-49
Codage des instructions
Format des instructions
•  Stationnarité des données:
–  Une instruction définit une séquence complète d'opérations à réaliser
sur un ensemble de données
MAC *AR1,*AR2
i
Transfert
mémoire .U.T.
Unité
Multiplieur
Unité
Accumulateur
LOAD
i+1
i+2
III-50
i+3
LOAD
LOAD
MULT
MULT
MULT
ADD
ADD
Minimiser la ÷ Compromis ø Maximiser
largeur des instructions
le parallélisme
ò
ò
Diminuer la consommation
Augmenter l'efficacité
et la surface mémoire & bus
du processeur
ò
Abaisser les coûts
•  Format encodé: largeur minimale (16 à 32 bits)
i+4
–  Restrictions:
nombre d'opérations disponibles
modes d'adressage
opérandes sources et destination
ADD
–  Utilisation de bits de mode
III-51
Jeu d'instructions
hétérogène
III-52
Structures de contrôle
Structures de contrôle
•  Boucle matérielle
•  Instructions de branchement
–  Optimiser le traitement des boucles de petite taille
–  Branchement multi-cycles : ajout de NOP entre BR et 1ère instruction
Initialisation des paramètres de la boucle en 1 instruction
–  Branchement retardé : déplacement de l'instruction de branchement BR
Pas d'instructions supplémentaires pour la gestion de la fin de la boucle
–  Exemple boucle mono-instruction
Boucle
logicielle
LOOP
MOVE
MAC
DEC
JNE
#16,B
(R0)+,(R4)+,A
B
LOOP
Boucle
#16
(R0)+,(R4)+,A matérielle
RPT
MAC
DO
...
End
#16,End
Loop body
–  Instructions conditionnelles du type :
C5x
If !
Then ! [R1]
Else! [!R1]
INF R1,R5,10
ADD R3,R2,3
ADD R3,R2,3
•  Instructions de mode
–  Exemple boucle multi-instruction
DSP 56000
•  Instructions à prédicat
SPLK
RPTB
...
End
–  Définir un mode de fonctionnement spécifique
C5x
#16
End-1
Loop body
exemple : contrôle d'un registre à décalage, d'une unité de saturation, ...
III-53
III-54
Unité de contrôle du C50
• 
PC sur 16 bits
pile de 8 x 16 bits
PFC, IR: pour le pipeline
• 
Registres de status ST0,ST1,PMST
1. Introduction
• 
Gestion des boucles
•  RPTC: repeat instruction
•  BRCR: repeat bloc
2. Description des différentes unités
• 
Interruptions :
•  IMR: masque interruptions
•  IFR: flags interruptions
• 
BMAR: bloc move
GREG: mémoire globale
• 
• 
• 
Processeurs de traitement du signal
2.1. Unité de traitement
2.2. Unité de mémorisation
2.3. Unité de contrôle
2.4. Unité de communication
3. Exemples de processeurs
III-55
4. Outils de développement
III-56
Périphériques
•  Périphériques intégrés
Processeurs de traitement du signal
ports séries
ports parallèles
timers
1. Introduction
DMA
2. Description des différentes unités
générateur de wait state
host port
PLL
2.1. Unité de traitement
2.2. Unité de mémorisation
•  Connexion aisée aux CAN et CNA
2.3. Unité de contrôle
–  les CAN/CNA ne sont généralement pas intégrés dans les DSP afin de pouvoir
2.4. Unité de communication
choisir un CAN/CNA en adéquation avec l'application
3. Exemples de processeurs
III-57
DSP conventionnels
III-58
Panorama des DSP
•  Texas Instrument
•  16-24 bits en virgule fixe, accumulation 40-60 bits
–  C2000 : virgule fixe 16 bits : contrôle moteur
•  32 bits en virgule flottante
–  C5000 : virgule fixe 16 bits : faible consommation
•  16 à 32 bits d'instructions
OMAP : C55x + µP ARM
–  C6000 : virgule fixe 16 bits (C67 flottant) : hautes performances
•  Une instruction par cycle, jeu d'instructions
•  Analog Device
complexe
–  ADSP21xx : virgule fixe 16 bits
•  Architecture non orthogonale, fortement contrainte
–  SHARC : virgule flottante 32 bits
•  Mémoire à accès multiples "on-chip"
•  Motorola
•  Unités dédiées de gestion des adresses
–  DSP560xx, DSP563xx : virgule fixe 24 bits : audionumérique
•  Matériel dédié pour la gestion des boucles
Des milliards de produits intègrent ces DSP
4. Outils de développement
–  DSP566xx, DSP568xx : virgule fixe 16 bits
–  StareCore : virgule fixe 16 bits, hautes performances
III-59
III-60
C5000 instruction MAC
C5000 instruction FIRS
Syntax
Execution
Example
MAC[R] Smem, src
(Smem) x (TREG) + (src) --> src
MAC *AR5, A
Syntax
Execution
Example
MAC[R] Xmem, Ymem, src [,dst]
(Xmem) x (Ymem) + (src) --> src or [,dst]
MACR *AR5+, *AR6+, A, B
FIRS Xmem, Ymem,
pmad
pmad -->PAR
While (RC) != 0
(B) + (A(32-16)) x (Pmem addressed by PAR) --> B
((Xmem) + (Ymem)) << 16 --> A
(PAR) + 1 --> PAR
(RC) - 1 --> RC
FIRS *AR3+, *AR4+, COEFFS
(Xmem) --> TREG
MAC #lk, src [,dst]
(TREG) x lk + (src) or [,dst]
MAC #345h, A, B
MAC Smem, #lk, src [,dst]
(Smem) x lk + (src) or [,dst]
MAC *AR5+, #1234h, A
(Smem) --> TREG
Description
Description
FIRS is useful to implement symmetrical FIR filters. The FIRS instruction multiplies accumulator A(32-16)
with a program memory value addressed by pmad (program memory address) and adds the result to the
value in accumulator B. At the same time, it adds the memory operands Xmem and Ymem, shifts the
result left 16 bits and loads this value into accumulator A. In the next iteration, pmad is incremented by 1.
Once the repeat pipeline is started, the instruction becomes a single-cycle instruction.
The MAC[R] instruction multiplies and adds with or without rounding. The result is stored in the destination
accumulator, if specified, or in the source accumulator. For syntaxes 2 and 3, the data-memory value after the
instruction is stored in TREG. TREG is updated during the read phase. The MACR instruction rounds the result of the
MAC operation by adding 2^15 to the result and clearing the 16 LSBs (bits 15-0) to 0.
Operands
Smem:
Xmem, Ymem:
src, dst:
lk:
Single data-memory operand
Dual data-memory operands
A (accumulator A), B (accumulator B)
16-bit long-immediate value
III-61
III-62
C5000 instruction LMS
Syntax
Execution
Example
LMS Xmem, Ymem
(A) + (Xmem) << 16 + 2^15 --> A
(B) + (Xmem) x (Ymem) --> B
LMS *AR3+. *AR4+
Processeurs de traitement du signal
1. Introduction
2. Description des différentes unités
Description
2.1. Unité de traitement
The LMS instruction is used to execute the least mean square algorithm (LMS). The dual data-memory operand
Xmem is shifted left 16 bits and added to accumulator A. The result is rounded by adding 2^15 to the high part of the
accumulator (bits 31-16). The final result is stored in accumulator A. In parallel, Xmem and Ymem are multiplied and
the result is added to accumulator B. Xmem does not overwrite TREG; therefore, TREG always contains the error
value used to update coefficients.
2.2. Unité de mémorisation
2.3. Unité de contrôle
2.4. Unité de communication
3. Exemples de processeurs
4. Outils de développement
III-63
III-64
Cycle de développement (1)
Cycle de développement (2)
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
Besoin
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
Correlator.C
Vecteurs
de test
Spécifications
opératoires
Spécification
Modélisation de
haut niveau
Définition de
l'algorithme
Simulation
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
Correlator.C
Code C
virgule flottante
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
Correlator.C
Conversion en virgule fixe
Spécifications
fonctionnelles
Spécifications
technologiques
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
Génération manuelle
ou automatique
Génération manuelle
ou automatique
Performances
Génération manuelle
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
Correlator.C
#define pi 3.1416
#define pi 3.1416
main()
{
float x,h,z
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
Correlator.C
for(i=1;i<n;i++)
{
*z= *y++ + *h++
}
Correlator.C
Conception fonctionnelle
x (n )
Bruit blanc uniforme
y (n )
max ( y (n ) ) = 3.4
n
Description de
l'algorithme
x (n )
max ( y (n ) ) = 2.4
n
y (n )
Chirp (0 → Fe/2)
Génération de code
max ( y (n) ) = 9.3
n
Partitionnement
Contraintes
temps réel,
Consommation
d'énergie,
Implantation
Logicielle
Flexibilité
Implantation
Matérielle
(compilateur - linker)
Implantation
Vecteurs
de test
Code C
virgule fixe
y (n )
Bruit blanc gaussien
x (n )
Test & Debug
(Simulateur Emulateur HW)
Coût
III-65
Performances
III-66
Cycle de développement (3)
Cycle de développement (4)
•  Conception fonctionnelle
•  Implantation matérielle
–  Spécifications du flot de données du TS,
–  Synthèse du circuit
–  Simulation, validation
–  Simulation VHDL et validation
–  Prototypage rapide
–  Analyse des performances
Matlab/Simulink (Mathworks), SPW (CoWare), Cossap (Synopsys), Ptolemy
Analyse
–  Test
(Université de berkley)
•  Implantation logicielle
•  Développement du code
–  Génération de code (compilateur C/ass, linker)
–  Implantation matérielle : code VHDL
–  Test & Debug : validation du code
–  Implantation logicielle : code C
–  Analyse : mesure des performances
III-67
III-68
Cycle de développement (5)
Développement logiciel
Assembly
Libraries
•  Mise au point du logiciel - Debugging
–  Simulateur au niveau instruction
Object Code
Libraries
Assembler
Mise au point avant que le matériel soit disponible
Hardware Emulator
Simulator
Assembly
Code
–  Emulation du Hardware
C/C++
Libraries
On-chip debugging/emulation : IEEE 1179.1 JTAG standard
–  Carte de développement
Linker
C Compiler
Binary
Executable
Object Code
C/C++
Code
Vérification temps réel de l'algorithme
Debugger
Système avec des faibles volumes de production
DSP Development Board
Final Product
[Bier97]
III-69
Code Composer
Studio
Code Composer Studio
Application
design
Code & Build
III-70
. Choix de la cible
. Configuration de l'OS DSP/BIOS
. Librairies :
- DSPLib
- TMS320 DSP Algorithm Standard
Debug
. IDE
. Générateur de code
. Compilateur C
. Compilateur assembleur
. Linker
Analyse
Simulateur
Émulateur HW
Exécution pas à pas
Analyse de variables
Déclenchement sur événements
. Visualisation de signaux
. Profiler (mesure du temps d'exécution du code)
. Analyse temps réel (visualisation des tâches du
DSP/BIOS)
. Gestionnaire de projet
III-71
III-72
Inefficacité des compilateurs C
Les raisons de l'inefficacité
•  Analyse du surcoût associé au compilateur C : DSPStone
Sur coût temps d'execution
Sur coût taille du code
1200
[Ropers99]
400
350
300
Extensions du langage C
C modifié
250
800
ANSI C
C modifié
600
•  Inefficacité des techniques classiques de développement des
200
Sur coût (%)
Sur coût (%)
–  Absence de support pour l'arithmétique virgule fixe
Langage orienté signal
ANSI C
1000
•  Inadéquation du langage C pour décrire des applications TNS
150
compilateurs (développement du DSP puis du compilateur)
100
400
50
•  Inefficacité des techniques classiques de compilation qui ont
0
200
-50
0
ADSP21xx/
ADI
DSP56002/
Motorola
TMS320C51/ TMS320C54/ TMS320C62/
TI
TI
TI
été développées pour les architectures homogènes
-100
Processeurs
ADSP21xx/
ADI
DSP56002/
Motorola
TMS320C51/
TI
TMS320C54/
TI
TMS320C62/
TI
–  Les architectures des DSP conventionnels sont hétérogènes
Processeurs
–  Meilleurs performances pour les DSP plus généraux et les DSP virgule
•  Absence de support pour les spécificités des DSP
flottante / architecture homogène
–  Registres d'état, modes d'adressage (modulo, bit inversé)...
III-73
III-74
Conclusion
Développement en C ou en assembleur
•  L'architecture des DSP conventionnels a été optimisée afin
•  Développement en assembleur :
d'implanter efficacement les applications de TNS
–  Le code est optimisé
–  Conséquences :
–  Le code n'est pas portable - demande du savoir faire
Le coût et la consommation d'énergie sont très faibles
•  Développement en C :
Les performances obtenues sont bonnes mais elles sont insuffisantes pour
les nouvelles applications :
–  Plus abordable rapidement
–  Téléphonie de 3ème génération …
–  Beaucoup moins performant et pas aussi simple ...
• Nécessité d'utiliser des architectures nouvelles
–  Conseils :
ne pas déclarer ses variables en float (chaque opération fera appel à des routines de
la bibliothèque de calcul en flottant)
Les compilateurs de langage de haut niveau sont peu efficaces
• Les parties critiques de l'application doivent être codées à la
déclarer les variables en int et les recadrages sont gérés par des décalages :
main en assembleur
•  nécessité de connaître les conventions utilisées par le compilateur
–  ex: renvoi d 'une donnée en double précision en mémoire
III-75
III-76
Évolution des architectures
Exemple : Convolution
•  Augmentation du nombre d'opérations exécutées par instruction
Traitement ligne
–  Architectures conventionnelles améliorées : Multi-MAC
N−1
y(n) =
–  Capacités SIMD
N • Tcycle < Te
∑ h(k).x(n − k)
k= 0
•  Complexité pour un point y(n) : N mult. et N-1 add.
•  Architecture réalisant une multiplication
accumulation en 1 cycle
•  Augmentation du nombre d'instructions exécutées par cycle
–  VLIW
Ex. TMS320C25 (100ns)
Fe = 8kHz -> Nmax = 1250
–  Superscalaires
Traitement blocs avec recouvrement de N-R échantillons
–  Architectures clusterisées
Yn
•  DSPs hybrides MCUs
H
=
⎡ y(n) ⎤ ⎡ h(0 )
y(n−1)
h(N −1)
⎢ ••• ⎥ = ⎢ •••
⎣y(n− N+1) ⎦ ⎣ h(1)
•  DSP multi-cœurs (multi-core)…
III-77
Solutions architecturales
N2 • Tcycle < R•Te
. Xn
h(1)
h(0)
••
h(1)
h(N −1)
•
•••
h(N−1)
•
h(0)
⎤ ⎡ x(n ) ⎤
x(n−1)
⎥.⎢ ••• ⎥
⎦ ⎣x(n−N +1) ⎦
Rem. Si N = R, on retrouve
le résultat ci-dessus
•  Complexité pour un vecteur Yn : N.N mult. et N.(N-1) add.
•  Même Architecture
III-78
Exemple : GSM
•  Processeurs programmables du commerce (ISP)
Environ équivalant à 60 MIPS
–  Processeurs généraux RISC, VLIW
0110...
–  Micro-contrôleurs
A/D
–  Processeurs de Traitement du Signal (DSP)
–  Processeurs Multimédia
channel
decoder
modulator
IF upc
D/A
modulator
IF upc
D/A
user interface / control
•  Processeurs programmables “maison” (ASIP)
RF
–  De type DSP ou µCtrl
A/D
•  Processeurs et logique reconfigurables
speech
decoder
18%
speech
coder
channel
coder
1010...
synchronisation
–  FPGA enfouis, Processeurs reconfigurables
•  Coprocesseurs ASIC
41%
41%
Proc. Prog (comm.)
Prog. Proc. (maison)
ASIC
III-79
Coprocessor, Hardware
DSP, ASIP, ASP
µController
III-80
Le marché du DSP
Evolution du marché du DSP
•  Les communications dominent : 77,2% des revenus en 2006
•  Systèmes
grand public :
DVD, TV et radio numérique, ...
•  Ordinateurs : asservissement des moteurs pour les disques durs, ...
III-81
Le marché des processeurs DSP
III-82
Le marché des processeurs DSP
•  Evolution du marché des semi-conducteurs
Semiconductor market in 2006
Flash memory
DRAM memory
Discrete products
Microprocessor
Microcontroler
DSP
MOS logic (*)
Analog
Optoelectronic
Other
Total
Sales
(Billion $)
20,5
33
16,6
33,2
12,5
8,6
60,3
37,3
16,7
10,1
248,8
Evolution
/ 2005
10,40%
29%
8,80%
-5%
3,50%
12,80%
4,60%
16,80%
12,30%
9000
DSP Market Trends (M$)
8000
7000
6000
5000
@ Forward Concept Inc. 4000
3000
2000
1000
9%
MOS logic : standard logic, standard cell, field programmable logic devices,
0
1992
1994
1996
1998
2000
2002
2004
2006
2008
and a broad range of application-specific devices
III-83
Tendance du marché :
vers des solutions à intégration de cœurs de DSP
III-84
Le marché des processeurs DSP
Le marché des processeurs DSP
@ Forward Concept Inc. @ Forward Concept Inc. III-85
III-86
Transformées en TNS
1
Rappels
•  TFSD : Transformée de Fourier d'un Signal
∞
Discret
X (e jωT ) = ∑ x(nT ) e − jnωT
Transformées en TNS
n = −∞
1. TFD, convolution linéaire
x(nT) non périodique
∞
⎧
jΩ
− jnΩ
⎪ X (e ) = ∑ x(nT ) e
n = −∞
⎪
⎨
π
⎪ x(nT ) = 1 X (e jΩ ) e jnΩ dΩ
⎪⎩
2π −∫π
2. TFR : Transformée de Fourier Rapide
•  Propriétés
1.  Linéarité
2.  Décalage en temps/fréquence
3.  Produit de convolution en temps/fréquence
4.  Théorème de Parseval
5.  Transformées de fonctions réelles
V-1
Transformées en TNS
Transformées en TNS
2
2
Transformée de Fourier Discrète
•  TFD
V-2
Transformée de Fourier Discrète
•  Propriétés
–  En pratique, on prend seulement un nombre fini d'échantillons de
–  Linéarité
x(nT). On ne peut donc obtenir qu'un nombre fini d'échantillons
–  Décalage en temps/fréquence
fréquentiels de X(ejΩ).
–  Produit de convolution en temps/fréquence
kn
N −1
− 2 jπ
⎧
N
k = 0..N − 1
⎪ X (k ) = ∑ x(n) e
⎪
n =0
⎨
kn
N −1
+ 2 jπ
⎪ x(n) = 1
∑ X (k ) e N n = 0..N − 1
⎪⎩
N k =0
x(n)
TFD
N-1
Pas temporel : T=1/Fe
•  Convolution discrète
x(n) est considéré comme périodique
de période N, x(n) = x(n+qN)
X(k) est donc également périodique de
période N, X(k) = X(k+qN)
•  Convolution circulaire (ou périodique)
–  Théorème de Parseval
–  Transformées de fonctions réelles
•  Relation entre TFSD et TFD
–  Signaux de durée finie ou périodique
X(k)
–  Cas général ?
N-1
n
Pas fréquentiel : 1/NT=Fe/N
k
V-3
V-4
Transformées en TNS
Transformées en TNS
2
2
Transformée de Fourier Discrète
•  Définition
n
n
Propriétés des W N = e -2jπ N
kn
N −1
− 2 jπ
⎧
N
k = 0..N − 1
⎪ X (k ) = ∑ x(n) e
⎪
n =0
⎨
kn
N −1
+ 2 jπ
⎪ x(n) = 1
∑ X (k ) e N n = 0..N − 1
N k =0
⎩⎪
TFD
X( k)
x( n)
⇔
Transformée de Fourier Discrète
k(N-n)
kn
WN
= (WN )*
kn
k(n+N)
(k+N)n
WN = WN
= WN
n+N/2
n
WN
= -WN
2kn
kn
WN = WN/2
x(n) et X(k) sont, dans le cas général, des nombres complexes.
•  Forme Matricielle
X(0)
X(1)
.
.
X(N-1)
=
1
1
.
1
1
WN
1
WN
2
.
WN
.
WN
2
WN
4
.
.
.
.
.
WN
.
.
1
WN
N-1
X=W. x
WN = e
.
2(N -1)
WN
2(N -1)
Périodicité
(3.3)
Symétrie
(3.4)
×
(N-1) 2
x(0)
x(1)
.
.
x(N-1)
La TFD revient à calculer un produit matrice-vecteur où chaque élément est de type
complexe. La complexité de calcul de la TFD est de N2 multiplications, et de N(N-1)
additions sur des nombres complexes. Ceci revient à une complexité de 4N2
multiplications réelles et N(4N-2) additions réelles. Cet algorithme se comporte donc en
O(N2), mais ne possède pas de problèmes d'adressage car les x(n) et les Wi sont rangés
dans l'ordre en mémoire.
(2)
−2 jπ
N
WNn k = e
–  En 1965, Cooley et Tuckey [COOLEY 65] ont publié un
algorithme applicable quand N est le produit de 2 ou plusieurs
entiers dont la complexité est en O(Nlog2N)
− 2 jπ
kn
N
V-5
Transformées en TNS
3
(3.2)
Complexité de calcul
N-1
WN
(3.1)
V-6
••• TFR DIT •••
Transformée de Fourier Rapide
•  TFR (FFT) partagée dans le temps (DIT)
X(k) =
x(2)
x(4)
∑ x(n).WNnk + ∑ x(n).WNnk
n pair
x(3)
x(5)
n=0
N/ 2−1
∑ x(2n).WNnk/2 + WNk .
n=0
X(k) = G(k) + WNk .H(k)
W 82
W
N/ 2−1
∑ x(2n + 1).WN/nk2
n=0
TFD
N/2 pts
W 85
6
W8
W 78
O(N2 )
(4)
3
8
W 48
x(7)
En exploitant la propriété 3.4, on obtient :
X(k) =
W 18
x(1)
N/ 2−1
∑ x(2n).WN2nk + ∑ x(2n + 1).WN(2n+1)k
n=0
0
W8
TFD
N/2 pts
x(6)
nimpair
N/ 2−1
X(k) =
x(0)
X(0)
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)
X(7)
O(N)
2 TFD de taille N/2
N/2 papillons
k = 0,1,...., N − 1
Xm+1(p)
Xm(p)
où G(k): TFD sur N/2 points d'indices pairs,
H(k): TFD sur N/2 points d'indices impairs.
r
Xm+1(p) = Xm(p) + WN Xm(q)
r
Xm+1(q) = Xm(p) - WN Xm(q)
Papillon DIT
N/ 2−1
N N/ 2−1
n(k+N/ 2) + W k+N/ 2 .
2)
X(k + ) = ∑ x(2n). WN/
∑ x(2n +1).WN/n(k+N/
2
N
2
2
n=0
n=0
Xm(q)
N
X(k + ) = G(k) − WNk .H(k)
2
r
WN
(6)
Xm+1(q)
-1
Complexité d'un papillon : 1 multiplication complexe, 2 additions/soustractions complexes
V-7
V-8
N
log2N multiplications de nombres complexes,
2
N log2 N additions/soustractions de nombres complexes, ou,
••• TFR DIT •••
••• TFR DIF •••
2 N log2 N multiplications de nombre réels,
3 N log2 N additions/soustractions de nombre réels.
FFT DIT RADIX-2 en place sur 16 points
•  TFR (FFT) partagée dans les fréquences (DIF)
X(0 )
X(0 )
entrée ordre bit-reversed
X(1 2)
X(2 )
X(1 0)
X(6 )
X(1 4)
X(1 )
X(9 )
X(5 )
X(1 3)
X(3 )
X(1 1)
X(7 )
X(1 5)
X(2 )
0
X(3 )
2
0
X(4 )
0
X(5 )
2
0
0
0
4
2
6
X(6 )
X(7 )
0
X(8 )
1
0
2
0
5
2
0
4
2
6
DIT:
(Décimatio n en
temps)
X(1 1)
4
0
0
0
X(1 0)
3
2
0
X(9 )
6
FFT
W= e
A
-2j π
N
W= e
-2j π
N
n =
0
N
∑
x(n ). WNnk +
WNk. N / 2 . ∑
x(n +
2 ). WNnk
∑
[ x( n) +
(-
1) k . x(n
N
+
)
2
nk
X(0)
X(1 2)
x(1)
X(1 3)
x(2)
X(2)
TFD
N/2 pts
X(4)
x(4)
X(3)
TFD
N/2 pts
W18
x(6)
r
Xm+1(q) = [Xm(p) - Xm(q)] WN
X(7)
W38
V-9
(8)
V-10
Transformée de Fourier Rapide
FFT DIT RADIX-2 en place sur 16 points
X(0 )
X(0 )
0
X(3 )
4
X(4 )
X(5 )
X(6 )
X(1 2)
X(2 )
2
X(1 0)
0
4
X(7 )
0
0
6
0
X(6 )
4
X(1 4)
0
X(8 )
0
X(1 )
X(9 )
1
X(9 )
X(1 0)
2
X(1 1)
3
X(1 2)
4
X(1 3)
0
0
X(5 )
4
X(1 3)
0
X(0 )
X(1 )
X(8 )
X(4 )
0
entrée: ordre normal
X(2 )
sortie: ordre bit-reversed
X(1 )
X(2 )
0
X(3 )
0
X(4 )
0
X(5 )
0
X(6 )
0
4
X(7 )
0
4
X(8 )
0
X(9 )
0
X(1 0)
0
2
X(1 1)
0
2
X(1 2)
0
4
0
X(3 )
5
2
X(1 1)
X(1 3)
0
4
X(1 4)
6
4
0
X(7 )
X(1 4)
0
4
6
X(1 5)
7
4
X(1 5)
X(1 5)
0
4
6
fréquence)
Xm+1(q)
WN
Xm+1(p) = Xm(p) + Xm(q)
X(5)
W28
x(7)
r
-1
X(1)
W08
x(5)
B'
Xm(q)
X(6)
x(3)
FFT DIF RADIX-2 en place sur 16 points
(Décimatio n en
Xm+1(p)
Xm(p)
k
X(0 )
DIF:
(7)
] WN
x(0)
••• TFR DIF
entrée: ordre normal
N/2-1
n =
0
n =
0
A'
B
N / 2 -
1
X( k ) =
-k
A' = A + BW
B' = A - BW -k
n =
N / 2
∑
x(n ). WNnk +
∑
x( n). WNnk
N / 2 -
1
X(1 5)
FFT inverse
k
A' = A + BW
B' = A - BW k
N -
1
n =
0
X( k ) =
X(1 4)
7
N / 2 -
1
X( k ) =
X(1 )
0
6
FFT
FFT inverse
A' = A + B
B' = (A-B) W k
A' = A + B
B' = (A-B) W -k
W= e
-2j π
N
0
W= e
-2j π
N
0
A
A'
DIT:
(Décimatio n en
k
B
temps)
B'
V-11
FFT
W= e
-2j π
N
4
2
6
1
5
3
7
A
FFT inverse
k
A' = A + BW
B' = A - BW k
0
X(8 )
X(4 )
X(1 2)
X(2 )
X(1 0)
X(6 )
X(1 4)
X(1 )
X(9 )
X(5 )
X(1 3)
X(3 )
sortie: ordre bit-reversed
X(4 )
sortie ordre normal
X(8 )
X(1 1)
X(7 )
X(1 5)
A'
-k
A' = A + BW
B' = A - BW -k
W= e
-2j π
N
k
B
B'
V-12
Transformée de Fourier Rapide
Transformée de Fourier Rapide
FFT DIF RADIX-4 en place sur 16 points
FFT GEOMETRIE CONSTANTE sur 16 points
X(1 2)
X(2 )
X(1 0)
X(6 )
X(1 4)
X(1 )
X(9 )
X(5 )
X(1 3)
X(3 )
X(1 1)
X(7 )
X(1 5)
0
0
0
0
0
0
2
1
0
0
0
4
0
0
4
4
0
4
0
0
4
Géométrie
Constante
6
FFT inverse
A' = A + B•W -k
B' = A - B•W -k
W= e
X(9 )
X(1 0)
X(1 1)
-2jš
N
B
X(8)
X(2)
X(5)
0
X(6)
1
X(7)
2
X(8)
3
X(10)
0
X(1)
0
X(10)
X(11)
FFT
FFT inverse
A' = A+B+C+D
k
B' = (A-jB-C+jD)W
C' = (A-B+C-D)W 2k
D' = (A+jB-C-jD)W 3k
-2jš
N
V-13
W= e
A' = A+B+C+D
-k
B' = (A-jB-C+jD)W
C' = (A-B+C-D)W -2k
D' = (A+jB-C-jD)W -3k
W=
-2jš
e N
A
k
C
2k
D
Convolution et corrélation
4
Convolution et corrélation
Définitions
1
Définitions
•  Exemple de convolution
x(i)
y (n) = ∑ x1 (i ) x2 (i + n)
C'
V-14
∞
y (n) = ∑ x(i ) h(n − i )
i =0
N>M
N −1
B'
3k D'
1
–  Soit x1 et x2, 2 signaux de durée finie [0 ... N-1], la corrélation est :
X(7)
A'
B
4
•  Corrélation
X(11)
X(15)
A'
B'
X(5)
X(3)
X(15)
k
X(9)
X(13)
0
X(14)
X(1 5)
X(6)
X(14)
X(9)
X(13)
X(1 4)
X(4)
X(12)
X(4)
X(12)
X(1 3)
A
X(0)
0
X(3)
X(1 2)
7
A' = A + B•W kk
B' = A - B•W
-2jš
N
X(8 )
6
FFT
W= e
X(7 )
5
4
X(3 )
X(2)
X(6 )
4
2
X(1)
X(5 )
3
0
X(0)
X(2 )
X(4 )
2
6
X(1 )
sortie: ordre bit-reversed
entrée: ordre bit-reversed
X(4 )
entrée: ordre normal
X(8 )
X(0 )
sortie: ordre normal
X(0 )
h(i)
i =0
*
•  Convolution linéaire
–  Soit x et h, 2 signaux de durée finie respectivement N et M, la
N-1
i
i
M-1
h(n-i)
convolution est définie par :
h(-i)
y (n) = ( x ∗ h)(n)
∞
n-M+1
∞
y (n) = ∑ x(i ) h(n − i ) = ∑ h(i ) x(n − i )
i =0
n
i
n
y (n) = ∑ x(i ) h(n − i )
i =0
i
y(n)
i =0
Le signal y(n) est de durée [0 ... N+M-2]
V-15
N+M-2
n
V-16
4
Convolution et corrélation
4
Convolution et corrélation
1
Définitions
2
Convolution circulaire
•  Propriétés
•  Convolution circulaire
–  Y(z) = H(z) X(z) (TZ)
–  Soit x et h, 2 signaux périodiques de période N, la convolution
–  Y(k) ≠ H(k) X(k) (TFD)
circulaire est définie par :
•  Vue matricielle de la convolution
y (0)
⎡
⎤ ⎡ h(0)
⎢
⎥ ⎢
y
(
1
)
.
⎢
⎥ ⎢
⎢
⎥ = ⎢h( M − 1)
.
⎢
⎥ ⎢
.
0
⎢
⎥ ⎢
⎢⎣ y ( N + M − 2)⎥⎦ ⎢⎣
0
0
. .
h(0) . .
.
.
0
N −1
y (n) = ∑ x(i ) h(n − i )
i =0
0
0
⎤ ⎡ x(0) ⎤
⎥ ⎢ x(1) ⎥
⎥ ⎢
⎥
⎥ × ⎢
⎥
. .
0
.
⎥ ⎢
⎥
. .
h(0) ⎥ ⎢
.
⎥
⎥
⎢
. . h( M − 1)⎦ ⎣ x( N − 1)⎥⎦
y ( n) = x ( n) ∗ h( n)
Le signal y(n) est de période N
h(n-i) est évalué modulo N
TFD : Y(k) = H(k).X(k)
è  O(N2)
V-17
V-18
4
Convolution et corrélation
4
Convolution et corrélation
2
Convolution circulaire
3
Convolution rapide
•  Convolution circulaire
•  Convolution rapide
–  On passe de la convolution circulaire à la convolution linéaire en
–  Passer dans le domaine de Fourier par une TFD : la convolution se
remplissant de zéros chaque séquence jusqu'à M+N-1
transforme en produit
–  Utiliser la FFT sur P points pour accélérer les calculs
{x(n)}{0….0}
{x(n)}{0….0}
N+M-1
*
{y(n)}
FFT
X
Longueur P
{h(n)}{0….0}
{h(n)}{0….0}
FFT-1
{y(n)}
FFT
–  Compléter les suites x(n) et h(n) par des zéros jusqu’à
P > N+M-2, avec P = 2p.
V-19
è  O(Plog2P)
V-20
4
Convolution et corrélation
4
Convolution et corrélation
3
Convolution rapide
3
Convolution rapide
•  Méthode OLA (Overlap Add)
–  Problème : h(n) et x(n) doivent être de durée finie
–  Application : FIR rapide
–  Blocs xk de taille M
•  h(n) de durée M : H(k) peut être calculé une fois pour toute
–  Addition des recouvrements entre les yk
•  x(n) de durée infinie
•  Convolution sectionnée
–  x(n), de durée infinie, est découpé en blocs xk de taille M
⎧ x(n)
xk (n) = ⎨
⎩ O
y ( n) = h( n) *
•  Méthode OLS (Overlap Save)
pour kM ≤ n < (k + 1) M
ailleurs
∞
∑x
k
–  Blocs xk de taille N+M avec recouvrement
–  Troncature des yk sur M points, addition entre les yk
( n)
k = −∞
y ( n) =
∞
∑y
k
( n)
k = −∞
V-21
V-22
Synthèse des filtres RII
1
Introduction
•  Recherche de H(z) correspondant aux
spécifications (gabarit)
Synthèse des filtres numériques RII
–  Transposition des méthodes de synthèse applicables aux filtres
1. Introduction
analogiques, puis transformation de H(p) vers H(z)
Invariance impulsionnelle
2. Rappels sur la synthèse des filtres analogiques
Transformation bilinéaire
3. Invariance impulsionnelle
–  Synthèse directe en z
4. Transformation bilinéaire
–  Méthodes d'optimisation : minimiser un critère d'erreur entre courbe
réelle et courbe idéale
VI-1
VI-2
Synthèse des filtres RII
Synthèse des filtres RII
2
2
Synthèse de filtre analogique
Spécification
Gabarit analogique
Synthèse de filtre analogique
•  Normalisation
–  Calcul de la sélectivité s
Normalisation
Gabarit normalisé
|HNorm(p)|
Ordre du filtre
|HNorm(p)| (dB)
1
Approximation de H(p)
1+δ1
1
1-δ1
Types de filtre
(Butterworth, Chebyshev,...)
HNorm(p)
s
Δ1
0
-Δ1
ω
Dénormalisation
δ2
H(p)
Filtrage numérique
Filtrage analogique
Transformation
Choix d’une structure
p=f(z)
invariance impulsionnelle,
bilinéaire
Δ2
1
1/s
a) Gabarit prototype linéaire
Rauch, Sallien-Key,
Biquadratique
VI-3
ω
b) Gabarit prototype en dB
VI-4
Synthèse des filtres RII
Synthèse des filtres RII
2
3
Synthèse de filtre analogique
•  Ordre du filtre et fonction de transfert
normalisée
Invariance impulsionnelle
•  Le filtre numérique et le filtre analogique ont
la même réponse impulsionnelle
–  Butterworth, Chebyschev, Elliptique, Bessel, Legendre, ...
–  HNORM(pN)
ha(t)
•  Dénormalisation
h(nT)
–  Passe-bas : pN = p / ωc
–  Passe-haut : pN = ωc / p
t
–  Passe-bande : pN = 1/B (p / ω0 + ω0 / p)
x(t)
•  On obtient une fonction de transfert H(p)
respectant le gabarit analogique spécifié
Ha(p)
y(t)
x(nT)
filtre analogique
h(nT) = ha(t)
VI-5
Synthèse des filtres RII
Synthèse des filtres RII
3
3
•  Le filtre numérique et le filtre analogique ont
la même réponse impulsionnelle
y(nT)
H(z)
filtre numérique
⇒  Passage vers H(z)
Invariance impulsionnelle
t
T
/ t = nT
VI-6
Invariance impulsionnelle
•  Réponse fréquentielle
1
Ha(p)
−1
L
= nT
Tz
H a ( p ) ⎯⎯→
ha (t ) ⎯t⎯
⎯→ h(nT ) ⎯⎯→
H ( z)
p
ou formulation directe
H ( z) =
∑
{ pôles pi de H a ( p )}
H(Ω)
⎡ H a ( p )
⎤
Résidus ⎢
, pi ⎥
−1 pT
⎣1 − z e
⎦
1/T
–  Conserve la réponse temporelle et la stabilité
Ω
–  Phénomène de recouvrement de spectre du à l'échantillonnage
-2Π
–  Non respect de la spécification fréquentielle
H (e jΩ ) =
1
∑ H a jω + j 2Tπk
T k
(
Π
2Π
–  Normalisation
)
(xT) ou (/H(0))
VI-7
VI-8
Synthèse des filtres RII
Synthèse des filtres RII
4
4
Transformation bilinéaire
•  Approximation d'une intégrale par la méthode
des rectangles1
Transformation bilinéaire
–  Conservation de la stabilité
plan p
plan z
e(nT)
z = ejωT
S(n) = S(n-1) + T[e(n) + e(n-1)]/2
(n-1)T
e(n)
s(n)
H(z)
nT
e(t)
Intégrateur
numérique
1Appelée
π
t
0
p = jωa
s(t)
1/p
p=
Intégrateur
analogique
2 1 − z −1
T 1 + z −1
également, selon les sources, méthode des trapèzes
–  Relation entre fréquences numériques et analogiques
VI-9
VI-10
Synthèse des filtres RII
Synthèse des filtres RII
4
4
Transformation bilinéaire
–  Distorsion en fréquence connue
ω analogique
T
T ⎞
⎛
= tg ⎜ ω numérique ⎟
2
2 ⎠
⎝
ωT
π
Transformation bilinéaire
•  Procédure de synthèse
–  A partir du gabarit en fréquence numérique ωn
–  Effectuer une prédistorsion en fréquence
ωa
π/T
ωa
-π
T
⎛ T ⎞
= tg ⎜ ω n ⎟
2
2 ⎠
⎝
–  Synthèse de H(p) par méthodes vues en Electronique du signal
–  Transformation bilinéaire
fe/2
H ( z ) = H ( p)
fe/2
p=
filtre analogique
filtre numérique
VI-11
2 1 − z −1
T 1 + z −1
VI-12
ωa
Synthèse des filtres RII
ωa
Exemple
•  Filtre numérique analogique du premier ordre
ωa=2/T tan(Ω/2)
1
H ( p) =
p
fc = 1 KHz, fe = 10 Khz
ωc
1
ωc =
R.C
–  Invariance impulsionnelle : Hi(z)
π
Ω
δ2
1+δ1
1
1-δ1
ωa p
ωa a
|Ha(jωa)|
1+
1+δ1
1
1-δ1
|H(ejΩ)|
–  Transformation bilinéaire : Hb(z)
δ2
Ωp
Ωa
π
2π
VI-13
Ω
VI-14
Synthèse des filtres RIF
1
Introduction
•  Recherche de H(z) correspondant aux
spécifications (gabarit)
Synthèse des filtres numériques RIF
–  Synthèse directe en z
1. Introduction
–  Filtres à phase linéaire ou minimale
2. Filtres à Phase Linéaire
•  3 méthodes de synthèse
3. Méthode du Fenêtrage
–  Méthode du fenêtrage
4. Échantillonnage en Fréquence
–  Méthodes d'optimisation : minimiser un critère d'erreur entre courbe
–  Méthode de l'échantillonnage fréquentiel
réelle et courbe idéale
VII-1
VII-2
Synthèse des filtres RIF
Synthèse des filtres RIF
2
2
Phase linéaire
•  Filtre à phase minimale
Phase linéaire
réponse impulsionnelle symétrique
β=0
–  Zéros dans le cercle unité
•  Filtre à phase linéaire
h(n)
Type I
N impair
α entier
H (e jΩ ) = A(Ω).e jϕ ( Ω )
⎧ A(Ω) : pseudo − module (amplitude )
avec ⎨
⎩ϕ (Ω) = β − αΩ
réponse impulsionnelle antisymétrique
β=±π/2
Type III
h(n)
α
α
–  Condition pour avoir une phase linéaire
Symétrie ou antisymétrie par rapport à α = (N-1)/2
Type II
h(n)
N pair
α non entier
VII-3
Type IV
h(n)
α
α
N-1
N-1
N-1
N-1
VII-4
Synthèse des filtres RIF
Synthèse des filtres RIF
2
2
Phase linéaire
Phase linéaire
Réponses fréquentielles
Type I
jΩ
H (e ) = e
− jαΩ
α
∑a
n
Réponses fréquentielles
Type III
j
π
α
H (e jΩ ) = e 2 e − jαΩ ∑ cn sin(nΩ)
cos( nΩ)
Type I
Type III
n =1
n =0
cn = 2h(α − n), n = 1…α
a0 = h(α ), an = 2h(α − n), n = 1…α
N impair
H (0) = H (π ) = 0
Tout filtre
N pair
Type II
N /2
Passe Bande
Dérivateur
Type IV
j
π
N impair
bn = 2h( N / 2 − n), n = 1… N / 2
d n = 2h( N / 2 − n), n = 1… N / 2
H (π ) = 0
H (0) = 0
Type II
Passe Haut
VII-5
Dérivateur
π
Passe Haut
Dérivateur
2π
Passe Haut
3
3
Méthode du fenêtrage
•  Développement en série de Fourier du filtre
idéal
∑ h( n) e
1
2π
π
−
1
Filtre passe-bas idéal
− jnΩ
jΩ
VII-6
•  Exemple : filtre passe-bas idéal
-π
∫ π H (e
2π
Méthode du fenêtrage
n = −∞
h( n) =
π
n =1
Synthèse des filtres RIF
H ( e jΩ ) =
2π
Type IV
Synthèse des filtres RIF
∞
π
Passe Bande
Dérivateur
Tout filtre
N /2
H (e jΩ ) = e 2 e − jαΩ ∑ d n sin[(n − 1 / 2)Ω]
Passe Haut
2π
N pair
H (e jΩ ) = e − jαΩ ∑ bn cos[(n − 1 / 2)Ω]
n =1
π
).e jnΩ dΩ
-Ωc
|H(ejΩ)|
Ωc
π
Ω
–  Filtre non causal, de type RII
•  Passage de h(n) idéal au RIF approché par
fenêtrage de h(n)
h( n) =
ha (n) = h(n).w(n)
VII-7
Ω c sin( nΩ c )
π
nΩ c
VII-8
Synthèse des filtres RIF
Synthèse des filtres RIF
3
3
Méthode du fenêtrage
•  Prise en compte d'une condition de phase
linéaire par décalage de α
Méthode du fenêtrage
–  Largeur de la zone de transition ΔΩ ⇔ 1/2 largeur du lobe principal
–  Atténuation ΔA ⇔ amplitude du premier lobe secondaire
•  Fenêtrage de h(n)
^
H(Ω)
ha (n) = h(n).w(n) ⇔ H a (e jΩ ) = H (e jΩ ) ∗W (e jΩ )
H(Ω)
1+ΔA
1
1-ΔA
W(Ω)
*
H(Ω)
ΔA
ΔΩ
|Ha(Ω)|
W(Ω)
=
VII-9
VII-10
Synthèse des filtres RIF
Synthèse des filtres RIF
3
3
Méthode du fenêtrage
•  Fenêtres usuelles
Méthode du fenêtrage
•  Fenêtres usuelles
–  Rectangle, Triangle, Hanning, Hamming, Blackman, Kaiser, ...
–  Réponses fréquentielles (linéaire, dB)
–  Réponses temporelles
VII-11
VII-12
Synthèse des filtres RIF
Synthèse des filtres RIF
3
4
Méthode du fenêtrage
•  Influence de la fenêtre
Fenêtre
Rectangulaire
Triangulaire
Hanning
Hamming
Blackman
Lobe
secondaire
-13dB
-25dB
-31dB
-41dB
-57dB
Méthode de l'échantillonnage
•  Échantillonnage en fréquence
–  Échantillonnage du filtre idéal
Demi largeur du Atténuation
lobe principal
minimum
2π/N
-21dB
π
4 /N
-25dB
π
-44dB
4 /N
π
-53dB
4 /N
-74dB
6π/N
H(ejΩ)
H(kΩe)
1
π
Ωc
2π
Ω
–  TFD inverse de H(kΩe)
–  Le type de fenêtre influe sur ΔA et ΔΩ
–  Le nombre de points influe sur ΔΩ
h( n ) =
1
N
N −1
∑ H (kΩ )e
e
j
2π
n. k
N
k =0
–  Méthode valable pour tout type de filtre
–  Possibilité d'utiliser un fenêtrage
VII-13
VII-14
Analyse spectrale
1
Définition
•  Analyse spectrale de signaux continus
Analyse spectrale
–  Etude du contenu fréquentiel (spectre) d'un signal continu xc(t)
–  Nombre limité d'échantillons du signal d'entrée pour la TFD
1. Effets de la troncature
2. Caractéristiques des fenêtres
xc(t)
3. Influence sur l'analyse
Filtre P.Bas
anti-repliement
Ωc = π
CAN
Fe
x(n)
x
xN(n)
FFT
||2
φ
fenêtre wN(n)
•  Troncature temporelle
–  xN(n) = x(n) . wN(n) avec wN(n) fenêtrage sur N points
–  T0 = N.T : horizon d'observation
VIII-1
VIII-2
VIII-3
VIII-4
Analyse spectrale
2
Analyse spectrale
Troncature temporelle
2
•  Troncature temporelle
–  xN(n) = x(n) . wN(n)
Troncature temporelle
•  Exemple
avec wN(n) fenêtrage sur N points
–  Fenêtre rectangulaire, N=31
•  Influence sur le spectre
–  Convolution fréquentielle
X N (e jΩ ) = X (e jΩ ) *WN (e jΩ )
•  TFD du signal tronqué
L −1
X N ( k ) = ∑ x N ( n) e
− 2 jπ
kn
L
k = 0..L − 1
n =0
L≥N
X N (k ) = X N (e jΩ )
Ω = 2πk / L
VIII-5
Analyse spectrale
3
VIII-6
Analyse spectrale
Influence de la fenêtre
3
Influence de la fenêtre
•  Influence de la fenêtre
–  fonction cosinus fenêtrée sur N=32 points
Fenêtre
Lobe secondaire
λdB = 20log|W(fs)/W(0)|
Rectangulaire
Triangulaire
Hanning
Hamming
Blackman
Lobe secondaire Largeur du lobe
λ = |W(fs)/W(0)|
principal
LLP = ΔΩm
4.5-1
17.8-1
35.5-1
112.2-1
708-1
-13dB
-25dB
-31dB
-41dB
-57dB
4π/N
8π/N
8π/N
8π/N
12π/N
–  Le type de fenêtre influe sur λ et ΔΩm
–  Le nombre de points influe sur ΔΩm
W(Ω)
λ
ΔΩm/2
π
1/NT fs
fe/2
ΔΩm
VIII-7
Ω
f
VIII-8
Analyse spectrale
3
Analyse spectrale
Influence de la fenêtre
3
•  Fenêtres usuelles
Influence de la fenêtre
•  Fenêtres usuelles
–  Rectangle, Triangle (Bartlett), Hanning, Hamming, Blackman, Kaiser, ...
–  Réponses fréquentielles (linéaire, dB)
–  Réponses temporelles
VIII-9
Analyse spectrale
4
VIII-10
Analyse spectrale
Paramètres de l'analyse
4
Paramètres de l'analyse
•  Finesse en fréquence
–  Capacité de l'analyseur à détecter 2 raies proches
–  Masquage fréquentiel
–  Largeur du lobe principal : LLP = ΔΩm
Fenêtre rectangulaire
–  Dépend de N et du type de fenêtre
Exemple sur transparent 9
•  Finesse en amplitude
–  Capacité de l'analyseur à détecter des raies de faibles amplitudes ou
masquée par une autre raie proche
–  Masquage d'amplitude ou bruit de l'analyse
λ = 20log|W(fs)/W(0)|
–  Dépend du type de fenêtre
Exemple sur transparent 10
VIII-11
VIII-12
Analyse spectrale
4
Analyse spectrale
Paramètres de l'analyse
5
Zero-padding
–  Ajout de L-N zéros à la suite de x(n) avant TFD sur L points
VIII-13
VIII-14
Systèmes multi-cadences
1
Définition
•  Systèmes multi-cadences
Systèmes multi-cadences
–  Systèmes dans lesquels on pourra avoir plusieurs fréquences
d'échantillonnage dans une même chaîne de traitement
1. Définition
–  Ils tirent partie de la forme spectrale d'un signal en gardant Fe
toujours à sa valeur optimale
2. Décimation
-> Réduction de la complexité
3. Interpolation
xc(t)
1
t
-ω0
Xc(ω)
ω0
ω
IX-1
IX-2
Systèmes multi-cadences
Systèmes multi-cadences
1
2
Définition
x(nT)
1/T
Décimation
•  Décimation d'un facteur M
X(ejΩ)
x(nT)
t
T
-π/T
-ω0
ω0
1/T'
Xd(ejΩ)
π/T
t
ω
↓M
xd(nT')
t
T' = MT
F'e = Fe/M
xd (n) = x(nM )
xd(nT')
T'
t
X d ( e jΩ ) =
1
M
M −1
∑ X (e
j ( Ω / M − 2πi / M )
)
i =0
–  Pour éviter le recouvrement de spectre, le signal xc(t) doit être à
-π/T'
π/T'
ω
bande limitée et respecter le théorème de Shannon par rapport à T'
X c (ω ) = 0 pour ω ≥ ω 0
IX-3
et π /T' = π /(MT) ≥ ω 0 ou F 'e = Fe / M ≥ ω 0 / π
IX-4
Systèmes multi-cadences
Systèmes multi-cadences
2
3
Décimation
•  Interpolation d'un facteur L
•  Filtres à décimation
–  Filtre suivi d'un décimateur
–  Objectif : augmenter la fréquence d'échantillonnage d'un signal x(n)
T' = MT
Filtre Passe Bas
Gain = 1
Ωc = π/M
x(nT)
échantillonné à la période T d'un facteur L
v(nT)
y(nT')
x i (nT ') = x(nT / L) = x c (nT '), avecT ' = T / L
↓M
•  Elévateur de fréquence
–  Ajout de L-1 zéros entre 2 échantillons de x(n)
•  Optimisation du filtre à décimation
x(nT)
T
b0
T
Interpolation
x(nT)
T
t
b1
b2
b3
+
+
+
v(nT)
xe(nT')
↑L
t
⎧ x(n / L), n = 0, ± L, ± 2 L, ...
xe (n) = ⎨
⎩0 ailleurs
y(nT')
↓2
X e (e jωT ' ) = X (e jωT )
Pas d'effet sur le spectre
X e (e jΩ ) = X (e jΩL )
IX-5
IX-6
Systèmes multi-cadences
Systèmes multi-cadences
3
3
Interpolation
1/T
Interpolation
•  Optimisation du filtre à interpolation
X(ejΩ)
x(nT)
t
-π/T
π/T
1/T'
Xe(ejΩ)
ω
↑2
v(nT')
b0
T
T
T
b1
b2
b3
+
+
+
y(nT')
t
-π/T'
•  Interpolateur
-π/T
π/T
ω
π/T'
–  Succession d'un élévateur de fréquence et d'un filtre passe-bas idéal
•  Multiplication de Fe par un facteur rationnel
R=L/M
de gain L, de période d'échantillonnage T' et de fréquence de coupure
–  T' = T.M/L
Fc = 1/2T (i.e. Ωc = π/L).
x(nT)
x(nT)
↑L
xe(nT')
Filtre Passe Bas
Gain = L
Ωc = π/L
↑L
xi(nT')
IX-7
Filtre Passe Bas
Gain = L
Ωc = min(π/L, π/M)
y(nT')
↓M
IX-8