traitement numérique du signalpeople.rennes.inria.fr/olivier.sentieys/teach/slidestns.pdf ·...

66
Électronique et Informatique Industrielle 2 nde année - EII2 12 septembre 2017 Traitement Numérique du Signal Supports de cours magistraux Olivier Sentieys ENSSAT - Université de Rennes 1 [email protected] http://www.irisa.fr/cairn http://people.rennes.inria.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

Upload: vutu

Post on 12-Sep-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

Électronique et Informatique Industrielle 2nde année - EII212 septembre 2017

Traitement Numérique du SignalSupports de cours magistraux

Olivier Sentieys

ENSSAT - Université de Rennes [email protected]://www.irisa.fr/cairn

http://people.rennes.inria.fr/Olivier.Sentieys/6 Rue de Kerampont - BP 447

22305 LANNION - France

IRISA — ENSSATInstitut de Recherche en Informatique et Systèmes Aléatoires

École Nationale Supérieure de Sciences Appliquées et de Technologie

Technopôle Anticipa Lannion

Page 2: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

Traitement numérique du signal et

Processeurs de traitement du signal

Olivier Sentieys

Traitement numérique du signal – EII2

• Analyse spectrale

• Introduction• Analyse de filtre numérique • Processeurs de TNS

• Transformée en TNS • Synthèse de filtre RII• Synthèse de filtre RIF

• Systèmes multi-cadences

• Arithmétique virgule fixe

I-3

Traitement Numérique du Signal(Digital Signal Processing)

AnalogSignal

Processing

DigitalSignal

Processing

ConverterTechnologyProvides the

Bridge

A/DD/A

Analog orReal-WorldSignals

Digital orComputer-WorldSignals

[ICE97]

Video/Image/Graphics Audio/Speech/Control

100M 10M 1M 100k 10k

High Data RateFcl Low Data Rate

I-4

Cycle de développementBesoin

Spécificationstechnologiques

Spécificationsopératoires

Spécificationsfonctionnelles

Contraintes temps réel,

Consommation d'énergie, Flexibilité

Coût

Spécification

ImplantationMatérielle

ImplantationLogicielle

Partitionnement

Implantation

Performances

Conception fonctionnelle

Définition de l'algorithme Simulation

Description de l'algorithme

Spécificationsfonctionnelles

Page 3: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

I-5

Contenu du cours de TNS et PTS

• Analyse et conception de systèmes de TNS– Analyse des filtres numériques – Transformées en TNS– Synthèse des filtres numériques RII – Synthèse des filtres numériques RIF– Analyse spectrale – Systèmes multi-cadences

• Implantation de systèmes de TNS– Arithmétique virgule fixe (codage - évaluation de la précision)– Implantation logicielle : processeurs de traitement du signal – Implantation matérielle : module conception des circuits intégrés

I-6

Modules TNS/PTS

1

2

3

4

56

7

8

1

2

34

5

6

12Devoir surveillé 2h

1

2

CM TNS

TD TNS

TP TNS

Introduction - chaÎne de TNS

Analyse des filtres numériques

Arithmétique virgule fixe

Bruit de quantification

Transformées en TNS

Synthèse de filtre IIR

Synthèse de filtre FIR

Analyse spectrale

Système multi-cadences

9

10

11

PTS

7

8 Interpolation Analyse spectrale

Transforméede Fourier (x.4.2)

Implantation VF IIR (x.1. 7)

Analyse et implantation VF FIR (x.1.3)

Analyse cellule 2ème ordre IIR (x.1.2)

Synthèse FIR éch. Fréquentiel (x.3.2)

1

2

3

TP PTS

Synthèse FIR par fenêtrage (x.3.1)

Synthèse IIR x.2.2)

15xN 23xN Projet PTS

1

6

I-7

Planning modules TNS/PTS

• Exercice à préparer pour les séances de TD – Ramassage possible des copies et intégration de la note au DS

o TD1 : Analyse et implantation FIR (1.2.1 – partie 1)o TD2 : Analyse et implantation IIR (1.2.5 – partie 1)o TD3 : Analyse et implantation IIR (1.2.5 – partie 2)

Transformée de Fourier (1.5.2)

o TD4 : Synthèse IIR (1.3.2)o TD5 : Synthèse FIR par fenêtrage (1.4.1) o TD6 : Synthèse FIR échantillonnage fréquentiel (1.4.2)o TD7 : Analyse spectrale (1.8.1, 1.8.3)

Interpolation (1.9.1, 1.9.2)o TD8 : révisions

I-8

Plan du cours

I. Introduction 1. Introduction, problématique, caractéristiques, 2. Applications typiques de TNS 3. Caractéristiques des algorithmes 4. Chaîne de traitement et problèmes temps réel, solutions architecturales

II. Analyse des filtres numériques 1. Spécification, classification, représentation 2. Analyse fréquentielle 3. Structures des filtres RII et RIF

Page 4: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

I-9

Plan du cours (suite)

III. Implantation d'algorithmes de TNS 1. Caractéristiques des algorithmes 2. Traitement temps réel 3. Solutions architecturales

Processeurs de traitement du signal I. Introduction2. Description des différentes unités 3. Panorama des processeurs 4. Outils de développement

I-10

Plan du cours (suite)

IV. Arithmétique virgule fixe 1. Présentation de l'arithmétique virgule fixe2. Processus de codage en virgule fixe3. Exemple d'un filtre IIR cascadé4. Évaluation de la précision

V. Transformées en TNS 1. TFD, convolution linéaire 2. TFR : Transformée de Fourier Rapide

VI. Synthèse des filtres numériques RII 1. Invariance Impulsionnelle 2. Transformation Bilinéaire

I-11

Plan du cours (fin)

VII. Synthèse des filtres numériques RIF 1. Introduction 2. Filtres à Phase Linéaire 3. Méthode du Fenêtrage 4. Échantillonnage en Fréquence

VIII. Analyse spectrale 1. Effets de la troncature2. Caractéristiques des fenêtres3. Influence sur l'analyse

IX. Systèmes multi-cadences 1. Définition2. Décimation3. Interpolation

I-12

Introduction

1. Introduction et problématique2. Applications typiques de TNS

Page 5: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

I-13

Chaîne de traitement C

apte

urs

A

NB

CAN

Filtre passe-bas anti-repliement

T.N.S. CNA

Act

ionn

eurs

0.2360.4210.5630.60.610.6130.611.2360.580.490350.20.20.21

0.2360.4210.5630.60.610.6130.611.2360.580.490350.20.20.21

� �

Actionnumérique

Te

I-14

Traitement Numérique du Signal

• Avantages– Pas de dérive : température, vieillissement, valeur des composants– Précision : garantie par le nombre de bits– Souplesse : plusieurs tâches simultanées possibles– 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

• 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-15

Quelles applications ?

• 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, téléphone, etc.– Réseaux rapides (ADSL, fibre, ethernet), sans-fil (WiFi)

• En mobilité, sur la route– Téléphonie mobile (3G, 4G, 5G), commande vocale, radar, GPS, etc.

I-16

Domaines d'application

• 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 etprotection, transmission de données, télé informatique, annulation d'écho, codage à débitré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• Graphisme et imagerie, rotation 3D, vision, reconnaissance de formes, restauration

d'images, stations de travail, animation, cartographie

Page 6: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

I-17

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 I-18

Introduction

1. Introduction et problématique2. Applications typiques de TNS

I-19

1. Types de signaux

• Signaux médicaux– EEG, ECG, Images IRM, Images scanner, ...

• Signaux sismiques• Données

– Statistiques, Bourse, ...

• Signal de parole• Sons• Images• ...

I-20

Cavité nasaleConduit vocalLarynxLangue

Glotte LèvresCavité buccale

Cavité nasale

Modèle source filtre

Signal de parole

• Processus de phonation– Génération d'une énergie ventilatoire

(poumons+trachée)– Vibration des cordes vocales– Réalisation d'un dispositif articulatoire

(conduit vocal)

Page 7: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

I-21

Un son voisé et son spectre (son “ eu ”)

Signal de parole

Un son non voisé et son spectre (son “ ch ”) I-22

Signal de parole

0-20

-10

0

10

20

30

40

Fe/2Fréquences

Amplitude (dB)

• Signal temporel– Aspects statistiques– Variabilité intra-individuelle– Variabilité inter-individuelle– Masquage temporel– Prosodie

• Signal fréquentiel– Structure formantique

o Fondamental (pitch) o Harmoniques

– Masquage fréquentiel

I-23

2. Applications

• Voie MIC (PCM)– 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)

• 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

P

CBQ DC

Ps(n)

e(n)

eq(n)s(n)

e'q(n)

s' (n)

s' (n)

CB : codeur binaireDC : décodeur binaireP : prédicteurQ : quantificateurQ-1: quantificateur inverse

s(n)

Q-1

Q-1canal de

transmission

I-24

Applications

• Télécommunications : détection de tonalité

Fréquences de tonalité du clavier numérique

Schéma de détection de tonalité

1 2 3

4 5 6

7 8 9

* 0 #

697 Hz

770 Hz

852 Hz

941 Hz

1209 Hz 1336 Hz 1477 Hz

LP Filter

HP Filter

Limiter

Limiter

BP Filter Detector

BP Filter Detector

BP Filter Detector

BP Filter Detector

BP Filter Detector

BP Filter Detector

BP Filter Detector

697 Hz

770 Hz

852 Hz

941 Hz

1209 Hz

1336 Hz

1477 Hz

-3 dB-0 dB

-30 dB

1SF

1PF 2P

F2S

F 2eF

|G| (dB)Gabarit du filtre numérique

Page 8: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

I-25

Applications

• Annulation d'écho– Réseau téléphonique utilisant les satellites géostationnaires (540ms)– Téléphone main libre en voiture (écho + bruit)– Téléconférence

o • Réponse impulsionnelle de la salleo • Effets : écho, Larsen, réverbérationo • Problème de déconvolution

Microphone

Loud speaker

near end speach

AmbientNoise

Reflections

to far end speaker

from far end speaker

+-

Ht Computation of coefficients

Annulateur d'écho par filtrage adaptatifI-26

Applications

• Compact Disc Audio– 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)

Encodeur du système Compact Disc Lecture du système Compact Disc

En pratique : SuréchantillonnageConversion N/A classique

A/DConverter

Parity Coding

MUX Modulator

Control /Display

DemodulError

CorrectionFilter

D / A

BufferMemory

D / A

D/AConverter

LP filter16 bit PCM

Fe = 44.1 kHz

D/AConverter

LP filter16 bit PCM

Fe = 176.4 kHz

4 DigitalLP filter

44.1 kHz

I-27

Applications

• Encodeur MP3– Codage fréquentiel perceptuel

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

I-28

Synoptique de l'encodeur MP3

Quantification & codageTransformation temps-fréquence

Modèle perceptuel

Page 9: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

I-29

« Long-window »

« Start-window »

« Short-window »

« Stop-window »

« Long-window »

Transformation temps fréquence

Polyphase filter MDCT

32 sub-bands

PCM Audio MDCTWindow

Decimation

576 lines

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5-100

-90

-80

-70

-60

-50

-40

-30

-20

-10

0

Gain(dB)

Fréquence normalisée Modified Discrete Cosine Transform (MDCT)

I-30

Modèle perceptuel

• Objectif : déterminer pour chaque bande de fréquence la quantité de bruit maximale

FFTPsycho-acoustic

model

Décomposition en bande de fréquence

Détermination des seuils

Page 10: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

II-1

Implantation d'algorithmes de TNS

1. Caractéristiques des algorithmes de TNS 2. Fonctionnement temps réel

II-2

Exemple filtre FIR

• Équation aux différences

• Graphe Flot de Signal

îíì

=-Î"=

=-=å-

= ailleursavec

0]1,0[

)(*)()(.)(1

0 h(i)Nich(i)

nhnxinxcny iN

ii

)(nx )(nyh

z-1 z-1 z-1

+ + +

0c ´ 1c ´ 1-Nc ´2-Nc ´

)(nx

)(ny

II-3

Fonctions typiques de TS

• Filtrage, convolutiony = y + x.h : MAC (multiplication-accumulation)

• Adaptationyn = yn-1 + x.h : MAD (multiplication-addition)

• FFT, multiplication complexexr = xr.wr - xi.wi xi = xr.wi + xi.wr

• Viterbia1 = x1 + x2; a2 = y1 + y2; y = (a1>a2) ? a1 : a2 : ACS

II-4

Caractéristiques algorithmiques

• Charge de calcul importantemultiplications-accumulations (convolution)multiplications-additions (FFT, DCT, adaptation,...)

• Virgule Fixe ou Flottanteproblèmes liés à la quantification !!!

• Calculs d'adressage complexesaccès linéaire, indexé bit-reverse ou similaire (FFT)vieillissement des données …

• Boucles de traitement courtes

Page 11: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

II-5

Caractéristiques algorithmiques

• Traitement temps réelTemps d'exécution de l'algorithme Tex guidé par acquisition I/OPériode d'échantillonnage Te

Période des sorties Tf (frame period) > Tex

Ni plus vite ... ni plus lentement (not faster ... not slower)

• Signaux numériques : quantité importante de donnéesDonnées scalaires, vectorielles, matricielles, multidimensionnellesOpérations I/O intensives par DMA

e(t)Te

s(t) Algorithme

Tf

ex. s(n) = max(moy(e), s(n-1))

II-6

Implantation d'algorithmes de TNS

1. Caractéristiques des algorithmes de TNS2. Fonctionnement temps réel

II-7

Contraintes temps réel

• Traitement en ligne Phases

• acquisition de l'échantillon x(n0)• traitement (période du traitement : Te)• restitution de l'échantillon y(n0 -1)

eT eT.2 eTn. t

firInput(), output()

idle

acqexece ttT +>

x(n0) T.N.S. y(n0)

y(n)

n.

x(n)

n n0

n0

II-8

Exemple filtre FIR

• Traitement par ligne : code C ...

int main() {

float x[N], y, acc;

int i;

x[0] = Read.Input.Sample();

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 = acc;

Write.Output.Sample(y);

}

Page 12: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

II-9

Contraintes temps réel

• Traitement par bloc Phases

• acquisition de l'échantillon x(n0) et rangement dans le vecteur X• traitement (période du traitement : N.Te)• restitution de l'échantillon y(n0 -N)

eT eT.2 eTn. t

FirBlocInput(), output()

idle

acqexece tNtTN .. +>

T.N.S.

y(n)

n.

x(n)

n n0

x(n0)x(n0-1) x(n0 -2) x(n0 -3) x(n0 -4)

y(n0)y(n0-1) y(n0 -2) y(n0 -3) y(n0 -4)

n0

II-10

Contraintes temps réel

• Traitement par blocs– Les phases d'acquisition d'un traitement au suivant peuvent soit

se recouvrir être jointives être disjointesx(n) x(n) x(n)N points

XnXn+R

Xn+2RXn

Xn+NXn+2N

XnXn+M

II-11

Exemple filtre FIR

• Traitement par blocs : code C ... int main() { /* Filtre de longueur N, blocs de taille M)

float x[N+M], y[M], acc;

int i,j;

for(j=M-1; j>=0; j--) /* Acquisition du vecteur d'entrées */

x[j] = Read.Input.Sample();

for(j=0; j<M; j++) { /* Filtrage du vecteur d'entrées */

acc = 0;

for(i=0; i<N; i++) {

acc = acc + x[i+j]*h[i];

}

y[j] = acc;

}

for(i=0; i<N; i++) x[i+M] = x[i]; /* décalage N derniers échantillons */

for(j=M-1; j>=0; j--) Write.Output.Sample(y[j]); /* Restitution vecteur sorties */

}

x[0] x[1] … x[M-1] x[M] … x[M+N-1]

II-12

Cadence des calculs

• Nv : nombre de voies à traiter en parallèle• Nop : quantité d'opérations élémentaires nécessaires

au TNS• Te : périodicité du calcul

• Puissance de calcul de la machine :

e

opVcalcul T

NNP

.= (en MIPS, MOPS ou MFlOps)

opVcalcul NNBP ...2= B est la bande du signal

Page 13: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

II-1

Analyse des filtres numériques

1. Spécification, classification, représentation 2. Analyse fréquentielle

3. Structures des filtres RII et RIF

II-2

Définition –  Système Linéaire Discret (SLD) modifiant la représentation

temporelle et fréquentielle de signaux

1. Introduction Un filtre numérique peut être représenté par : –  une fonction de transfert en z : H(z) = Y(z) / X(z)

Filtre Numérique x(n) <=> X(z)

y(n) <=> Y(z)

h(n) <=> H(z)

Filtrage Numérique 1 Introduction

H(z) X(z) Y(z)

II-3

H(z) X(z) Y(z)

a) Forme directe

H1(z)

X(z) Y(z)

b) Forme parallèle

H2(z)

HM(z)

. . .

H1(z) X(z) Y(z)

c) Forme cascade

H2(z) HM(z) . . .

Filtrage Numérique 1 Introduction

h(n) x(n) y(n)

∑∞

=

=

−=

−=

0

0

)()()(

])[()()(

k

k

knhkxny

TknhkTxnTy

+

II-4

Filtrage Numérique 1 Introduction

si x(n) = δ(n) alors y(n) = h(n) –  une équation aux différences (récursive ou non récursive)

∑∑==

−−−=N

ii

M

ii inyainxbny

10

)(.)(.)(

Page 14: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

II-5

Filtrage Numérique 2 Spécification d’un filtre numérique 2. Spécification d’un filtre numérique

–  Gabarit fréquentiel Passe-Bas (ou Passe-Haut) défini par sa sélectivité, son ondulation

en BP et son atténuation en BA

f Fe/2 fp

1

|H(f)|

1-δ1

1+δ1

δ2

fa

f

fp

0 dB

|H(f)| (dB)

20log(1-δ1)

20log(1+δ1)

20logδ2

fa

a) Gabarit fréquentiel linéaire b) Gabarit fréquentiel en dB

Bande passante

Bande de transition Bande atténuée

II-6

Filtrage Numérique 2 Spécification d’un filtre numérique

Passe-Bande (ou Réjecteur de Bande) défini par sa fréquence centrale, sa sélectivité, son ondulation en BP et son atténuation en BA

f fe/2 fp+

1

|H(f)|

1-δ1

1+δ1

δ2

fa+ fa- fp-

II-7

Filtrage Numérique 3 Classification des filtres numériques

3 Classification des filtres numériques

Un filtre numérique peut être classé selon :

–  la durée de sa réponse impulsionnelle . finie : les filtres RIF ont leur réponse impulsionnelle à support fini

i.e. h(n) = 0 pour n<0 et n>N

. infinie : les filtres RII ont leur réponse impulsionnelle à support infini

–  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 des sorties précédentes

. non récursifs : la sortie y(n) ne dépend que de l’entrée courante et des entrées

précédentes

II-8

Filtrage Numérique 3.1 Filtres numériques non récursifs

3.1 Filtres numériques non récursifs (ou transversaux)

Les coefficients bn du filtre sont les valeurs de la RI (h(n) = bn). Ceci montre qu'un filtre non récursif est à Réponse Impulsionnelle Finie (RIF).

M est appelée la longueur du filtre.

)()(

)()(

)()()(

)()(

0

00

0

inbnh

znhzbzH

zXzHzY

inxbny

M

ii

M

n

nM

i

ii

M

ii

−=⇒

==⇒

=

−=

∑∑

=

=

=

=

δ

Page 15: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

II-9

Filtrage Numérique 3.1 Filtres numériques non récursifs

•  Principales propriétés

–  Les RIF sont toujours stables (pas de pôles) –  Les RIF peuvent avoir une caractéristique de phase linéaire

•  Retard constant en fréquence (temps de propagation de groupe) •  Pas de distorsion harmonique •  Symétrie de la RI

–  A sélectivité équivalente, ils sont toujours plus coûteux (en temps de calcul) que leur équivalent RII

II-10

Filtrage Numérique 3.2 Filtres numériques récursifs

3.2 Filtres numériques récursifs

En pratique on a N=M, N est l'ordre du filtre

)()(

1)(

)()()(

1

0

10

zDzN

za

zbzH

inyainxbny

N

i

ii

M

i

ii

N

ii

M

ii

=+

=⇒

−−−=

∑∑

=

=

==

II-11

Filtrage Numérique 3.2 Filtres numériques récursifs

–  Si N(z) n'est pas divisible par D(z) (cas général), on a un nombre infini de termes dans la division polynomiale

Les coefficients cn sont les valeurs de la RI (h(n) = cn). Ceci montre

qu'un filtre récursif est, dans le cas général, à Réponse Impulsionnelle Infinie (RII).

–  Si N(z) est divisible par D(z) (cas particulier), on a un nombre fini de

termes dans la division polynomiale. Dans ce cas, le filtre est RIF.

•  Exemple : filtre moyenneur

∑∑∞

=

−∞

=

− ==00

)()(n

n

i

ii znhzczH

II-12

Filtrage Numérique 3.2 Filtres numériques récursifs

–  Si N(z)=1 : filtre tout-pôle –  Si D(z)=1 : filtre RIF

•  Principales propriétés

–  Les RII peuvent être instables : structure à base de pôles et de zéros

–  Bande de transition faible –  Synthèse par réutilisation des méthodes analogiques –  Instabilité numérique due au rebouclage : forme cascade plus stable

)()(

1)(

1

0

zDzN

za

zbzH N

i

ii

M

i

ii

=+

=

=

=

=

=−

−= N

ii

M

ii

MN

pz

zzzbzH

1

10

)(

)()(

Page 16: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

II-13

Filtrage Numérique 4 Analyse fréquentielle

Analyse fréquentielle L'analyse fréquentielle est l'étude du module, de la phase et du temps

de propagation de groupe du filtre H.

Ω est la pulsation relative : Ω = ωT = 2πfT La fonction de transfert en fréquence H(ejΩ) est périodique de période 2π.

Ω 2π

|H(ejΩ)|

π

ΩΩ

== j

j

ezzHeH )()(

II-14

Filtrage Numérique 4 Analyse fréquentielle

Conclusion Trois domaines de représentation –  Temporel h(n), équation aux différences –  Fonction de transfert en z, diagramme des pôles/zéros –  Fréquentiel H(Ω), module, phase

ΩΩ

== j

j

ezzHeH )()(

0 1

( )

( ) . ( ) . ( )M N

i ii i

h n

y n b x n i a y n i= =

= − − −∑ ∑

∑∑∞

=

−∞

=

− ==00

)()(n

n

i

ii znhzczH

TZ TZI

jz e Ω=

TF TFI

II-15

Filtrage Numérique 4 Analyse fréquentielle

Exemple 1

pordre1.avi

( )

1 1

zH zz a

aa

=−

− ≤ ≤

°11

)(

≤≤−

∈−

=

aRa

azzzH

II-16

Filtrage Numérique 4 Analyse fréquentielle

Exemple 2

pzordre1.avi

( )

,0.9 , 0.9

zH zz a

a ba b

=−

− ≤ ≤

°9,0,9,0

,

)(

≤≤−

∈−−

=

baRba

azbzzH

Page 17: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

II-17

Filtrage Numérique 4 Analyse fréquentielle

Exemple 3

paordre2.avi

( )( )( *)

1

zH zz p z p

pp

=− −

£1

*))(()(

−−=

pp

pzpzzzH

C

II-18

Filtrage Numérique 4 Analyse fréquentielle

Exemple 4

prordre2.avi

( )( )( *)

0.9

zH zz p z p

pp

=− −

=

£9.0

*))(()(

=

−−=

pp

pzpzzzH

C

II-19

Filtrage Numérique 5 Structures de réalisation

5. Structures de réalisation –  Filtres RIF

∑=

−=N

ii inxbny

0

)()(

+

+

+

Z-1

Z-1

b1

bN-1

bN

x(n-1)

x(n-N)

x(n) y(n) b0

+

Z-1

+

Z-1

+

Z-1

b1

bN-1

bN

y(n) b0

x(n)

a) Structure directe b) Structure transposée

II-20

Filtrage Numérique 5 Structures de réalisation

–  Filtres RII

∑∑

∑∑

=

−=

==

+×=×==⇒

−−−=

N

i

ii

N

i

ii

N

ii

N

ii

zazb

zDzN

zDzNzH

inyainxbny

1

0

10

1

1)(

1)()()()(

)()()(

RII

Z-1

Z-1

b1

bN-1

bN

x(n-1)

x(n-N)

x(n) y(n) Z-1

Z-1

-a1

-aN-1

-aN

y(n-1)

y(n-N)

+

+

+

+

+

+

Z-1

Z-1

b1

bN-1

bN

x(n) y(n) Z-1

Z-1

-a1

-aN-1

-aN

+

+

+

RIF

a) Structure directe

b0 b0

Page 18: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

II-21

Filtrage Numérique 5 Structures de réalisation

–  Filtres RII

⎪⎪⎩

⎪⎪⎨

−=

−−=

⎪⎩

⎪⎨⎧

=

=

×+

=×=

∑∑

=

=

=

=

N

ii

N

ii

N

i

iiN

i

ii

inwbny

inwanxnw

zWzNzY

zXzD

zW

zbza

zNzD

zH

0

1

0

1

)()(

)()()(

)().()(

)(.)(

1)(

1

1)()(

1)(

x(n) y(n)

RII

Z-1

Z-1

-a1

-aN-1

-aN

+

+

+

+

+

+

Z-1

Z-1

b1

bN-1

bN

RIF

b0 w(n)

II-22

Filtrage Numérique 5 Structures de réalisation

–  Filtres RII

–  Forme cascade de filtres du second ordre b) Structure canonique transposée

+

Z-1

+

Z-1

-a1

-aN-1

-aN

+

+

Z-1

b1

bN-1

bN

y(n) b0

x(n) y(n)

Z-1

Z-1

-a1

-aN-1

-aN

Z-1

b1

bN-1

bN

b0 x(n) +

+

+

+

+

+

w(n)

w(n-1)

w(n-N)

∏∏+

=−−

−−+

= ++

++==

21

12

2,1

1,

22,

11,0,

21

1 1)()(

N

i ii

iii

N

i zazazbzbb

zHizH

H1(z) X(z) Y(z)

H2(z) HK(z) . . .

a) Structure canonique directe

Page 19: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-1

Un exemple pour commencer…

• Monsieur S. se rend à la Banca of Chaotica pour un placement

• Placement initial : p=e-1€ (e=2.718281…)• Première année : p=px1-1€ (frais) • Deuxième année : p=px2-1€ (frais) • ...• Nième année : p=pxN-1€ N > 25 ans

• Calcul banque : 1.201.807.247€ J• Calculatrice : -140.1012 L

• Calcul formel ou précision élevée : 6 centimes...IV-2

Arithmétique virgule fixe

1. Présentation arithmétique virgule fixe 2. Processus de codage en virgule fixe

2.1. Détermination de la dynamique 2.2. Détermination de la position de la virgule 2.3. Détermination de la largeur des données

3. Évaluation de la précision

IV-3

Codage en virgule fixe complément à 2

• Définition :

• m : distance (en nombre de bits) entre la position du bit le plus significatif pMSB et la position de la virgule pV

• n : distance entre la position de la virgule pV et la position du bit le moins significatif pLSB

S bm-1 bm-2 b1 b0 b-1 b-2 b-n+2 b-nb-n+1

b = m+ n+ 1 bits format: (b,m,n)

2-n

2-121 20

Partie entière Partie fractionnaireå-

-=

+-=1

22m

ni

ii

m bSx

x x x bm-1 b-6 b-7 b-nb-n+1

2-n

2-1 2-5 2-6

2m-1

S

2-2 2-3 2-4 2-7 2-8 2-9 2-10

mn

pMSB pLSB

m npMSB

pLSB2m-1

bpv

ex: 0.09472 (8,-3,10)01100001

0.0625+0.03125+2-10

b = 8m = -3n=10

20

-2m

IV-4

Codage en virgule fixe complément à 2

• Domaine de définition du codage :

• Pas de quantification :

• Exemple de codage :– (6,3,2), Q2

6

[ ]nmm --- 22,2

nq -= 2

0111.11 7.750111.10 7.5

0000.11 0.750000.10 0.50000.01 0.250000.00 01111.11 -0.251111.10 -0.51111.01 -0.75

1000.01 -7.751000.00 -8

-7.75 = -8+0.25

-0.5 = -8+7. 5

Page 20: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-5

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 :

Choix d'un format commun (bADD,mADD,nADD)Alignement de la virguleExtension des bits des opérandes a et b

1maxmax

++=

=

=

ADDADDADD

yxADD

yxADD

n m b),n(n n

),m(m m

1

1

++==

îíì

Î+Ï++

=

ADDADDz

ADDz

ADDADD

ADDADDz

n m bn n

DyxmDyxm

m si si

0 1 1 10 1 1 0 x (7.75) format : (7,3,3)

xm xn

1 0 1

ym

1 0 00 0 0 0 1

ym yn

y (1.5) format : (3,1,1)

0 1 010 1 0 0 z (9.25) format : (8,4,3)

zm zn

IV-6

Exemple de calcul

• Addition: z=x+y– Débordement possible si sign(x) = sign(y) = sxy

Débordement présent si sign(z) ¹ sxy

Si il n 'y a pas de débordement la dernière retenue peut être ignorée

Nécessité d'un bit supplémentaire pour coder le résultat

0 1 1 1 1 1 0

1 1 0 0

x (7.75) format : (7,3,3)

y (-0.5) format : (2,0,1)1 1 1

1 1 1 1 1

0 1 010 1 1 z (7.25) format : (7,3,3)

0 1 1 10 1 1 0

0 1 0 0

x (7.75) format : (7,3,3)

y (0.5) format : (2,0,1)0 0 0 0

1 1 1 1

0 1 000 1 0 0 z (8.25) format : (8,4,3)

IV-7

Règles de l'arithmétique virgule fixe

• Multiplication: r = a ´ b– Règle : la représentation de a et b doit être identique – Étapes :

Extension des bits de signe des opérandes a et bDoublement du bit de signe du résultat

• Le bit redondant peut être intégré à la partie entière du résultat

yxz

yxz

yxz

b b b mm m

nn n

+=

++=

+=

1

0 1 x (0.5) format : (2,0,1)

y (1.75) format : (4,1,2)

0 0 0 0

0 0 0 1 11

ym yn

xn

-2-2 2-3

0 0 0 1 1 1 z (0.875) format : (6,2,3)

zm zn

-21 2-2

-20 2-1

IV-8

Exemple de calcul

• Multiplication: r = a ´ bExtension du signe des opérandes

1 1 0 0

0 1 1 0

1 1 1 0 1 0 0 0

Bit de signe redondant

x (-0.5) format : (4,0,3)

y (0.75) format : (4,0,3)

z (-0.375) format : (8,1,6)

2-3

2-62-1

.

1 1 1 1

0 0 0 0

Bit de signe

1 1 10 0 0 00 0 0 0

1 1 0 01 1 11 1 0 01 1

0 0 0 00

Page 21: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-9

Résumé des règles

• Addition– Choix du format commun :

• Multiplication

´x

y

z

+x

y

z

bin

bout

bin

yxz

yxz

yxz

b b b mm m

nn n

+=

++=

+=

1

),m(m mbb),m,m(m mbb

yxADDinout

zyxADDinout

maxmax

=>

==

alors si alors si

Doublement du bit de signe

IV-10

II. Arithmétique virgule fixe

1. Présentation de l'arithmétique virgule fixe 2. Processus de codage en virgule fixe

2.1. Détermination de la dynamique 2.2. Détermination de la position de la virgule 2.3. Détermination de la largeur des données

3. Évaluation de la précision

IV-11

Codage des données

• Codage des données en virgule fixe :– Définir la position de la virgule :

Nombre de bits pour la partie entière et pour la partie fractionnaire

Précision Dynamique

Garantir l'absence de débordement

Maximiser la précision des calculs

RSBQ (Rapport Signal à Bruit de Quantification)

Respecter les règles de l'arithmétique virgule fixe

S bm-1 bm-2 b1 b0 b-1 b-2 b-n+2 b-nb-n+1

2-n2-121 20

Partie entière Partie fractionnairem n

2m-1-2m

IV-12

Les différentes étapes du codage

• Détermination du domaine de définition : D(xi)– Valeur minimale et maximale des données

• Détermination de la position de la virgule mxi– Nombre minimal de bits pour représenter la partie entière permettant

d'éviter les débordements

• Déterminer et optimiser la largeur des données bxi– Utiliser au mieux l'architecture

• Évaluation de la précision de l'algorithme :– Calcul du Rapport Signal à Bruit de Quantification (SQNR)

Page 22: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-13

Méthodologie de codageApplication

Détermination de laposition de la virgule

Déterminationde la dynamique

Évaluationde la précision

RSBQSynthèse de

l'architecture

SelectionSchedulingAllocation

Optimisationde la largeur des données

Code VHDL Code assembleur

Génération de code

Instruction selectionRegister allocation

SchedulingOptimisation

Optimisationdu format des

données

RSBQmin

Contrainte de précision associée a l'application

Implantation matérielle : FPGA, ASIC Implantation logicielle : DSP, µCIV-14

Fil rouge : filtre FIR

float Input[N] = {0.123, -0.569,...} /* Définition du signal d 'entrée du filtre */float h[N] = {0.2,…, 0,48 ,…, 0.2 }; /* Définition des coefficients du filtre*/

int main()

{

float x[N], y[M], acc;

int i,j;

for(j=0; j<M; j++) /* Filtrage du vecteur d'entrée input */

{

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[j] = acc;

}

}

IV-15

Fil rouge : filtre FIR

• Graphe Flot de Signal du filtre FIR

z-1 z-1 z-1

+ + +

0c ´ 1c ´ 1-Nc ´2-Nc ´

)(nx

)(ny

IV-16

Largeur des données dans un DSP

• Architecture simple/double précision – Simple: badd = bmult = bmem

– Double: badd = bmult = 2.bmem pas d’erreurs dues aux multiplications

• Bits de garde– badd = bg + bmult

– Réduit l’overflow en étendant la partie entière

+

Reg C

´

Reg A Reg B

Saturation /Rounding / Shifter

bmem

bmult

badd

Reg C

bmem

bmem

bmem

Guard Bits ACCH ACCL

2.bmembg

16

Page 23: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-17

II. Arithmétique virgule fixe

1. Présentation de l'arithmétique virgule fixe2. Processus de codage en virgule fixe

2.1. Détermination de la dynamique2.2. Détermination de la position de la virgule 2.3. Détermination de la largeur des données

3. Évaluation de la précision

IV-18

Détermination de la dynamiqueDétermination de laposition de la virgule

Déterminationde la dynamique

Détermination et optimisation de de lalargeur des données

Format des données: (b,m,n)

But: déterminer le nombre de bits minimal pour représenter la partie entière (mxi)

S bm-1 bm-2 b1 b0 b-1 b-2 b-n+2 b-nb-n+1

2-n

2-121 20

Partie entière Partie fractionnairem n

pMSB

pLSB2m-1-2m

( )( )ë û 1maxlog2 += ix xmi

IV-19

Méthodes pour déterminer D(xi)

• Méthodes statistiques – Simulation de l'algorithme en virgule flottante– Détermination de la dynamique à partir des paramètres statistiques

du signal

ð Estimation précise mais dépendante du signal d'entrée

• 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-20

Méthodes analytiques

• Normes dans le cas des systèmes linéaires – Norme L1:

– Norme Chebychev

– Norme L2

( ) å¥

-¥=

=m

n mhnxy )(.)(max1max

( ) ( ))(max)(max2max ww Hnxy n=

( ) å¥

-¥=

=m

n mhnxy 23max )(.)(max

Ø Méthode garantissant l'absence de débordement

Ø Méthode garantissant l'absence de débordement pour un signal d'entrée à bande étroite ( x(n)=cos(nwTe) )

Ø Méthode limitant la probabilité de débordement

1max2max3max yyy ££

H(z)X(z) Y(z)

Page 24: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-21

Filtre FIR

• Propagation de la dynamique des entrées au sein du GFS représentant l'application

• Normes L1 ( ) ( ) 65.10)(.)(max)(max

1

0

=== åå-

=

¥

-¥=

N

mi

mnn cmhnxny

z-1 z-1 z-1

+ + +

0c ´ 1c ´ 1-Nc ´2-Nc ´

)(nx

)(ny

[1,1]-

[,] 00 cc- [,] 11 cc- [,] 22 --- NN cc [,] 11 --- NN ccêë

éúû

ù- åå

-

=

-

=

1

0

1

0

,N

ii

N

ii cc

IV-22

Dynamique dans un système cascadé

• Dynamique de la sortie y2

H1(z) H2(z)x(n)

)(1 zH

H(z) =H1(z).H2(z)

y1(n) y2(n)

( )WjeH 2( )WjeH1

( ) ( )WW = jj eHHeH 2112

IV-23

Dynamique dans un filtre IIR

• Sources de débordement : additionneurs– Filtre IIR forme directe II: 2 sources ADD0 et ADD1

-a2 b2

Forme directe II

xn ynwn+ +

´

´-a1

´b0

´b1

´

z-1

z-1

ADD 0ADD 1

w(n) = x(n)−a1w(n −1)−a2w(n − 2)

wmax1 = xmax. hD(m)m=−∞

HD(z) =1

1+a1z−1 +a2z

−22

21

1

22

110

max1max

1)(

)(.

--

--

¥

-¥=

++++

=

= å

zazazbzbbzH

mhxym

IV-24

Exemple : filtre IIR directe II

• Filtre H(z)

• Norme L1

• Norme Chebychev

21

1

8417.085.015.02428.05.0)( --

-

+-+-

=zz

zzH

H(jw)

HD(jw)

Fonction de transfert desfiltres H(z) et HD(z)

49)(

25645.2)(

max

max

=¾®¾=

=¾®¾=

å

å¥

-¥=

¥

-¥=

wm

D

ym

mmhx

mmhx

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5

2Filtre1 Num (z )/Den(z )

0 0.5 1 1.5 2 2.5 3 3.50

2

4

6

8Filtre 1/Den(z )

Page 25: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-25

Exemple : filtre IIR directe II

• Comparaison des différentes méthodes Méthodes G1.max N1 G2.max N2

Méthodes analytiques

Norme L1 2,56 2 9 4

Norme Chebychev 1.687 1 7,13 3

Méthodes statistiques

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

( )é ù

( )é ùmax222max

maxmax2

max121max

maxmax1

log

log

GNxwG

GNxyG

==

==

IV-26

II. Arithmétique virgule fixe

1. Présentation de l'arithmétique virgule fixe 2. Processus de codage en virgule fixe

2.1. Détermination de la dynamique 2.2. Détermination de la position de la virgule2.3. Détermination de la largeur des données

3. Évaluation de la précision

IV-27

• Objectifs du codage en virgule fixe – Respect des règles de l'arithmétique virgule fixe

Alignement de la virgule des opérandes sources d'une addition ou d'une soustraction

Format commun pour les opérandes sources

– Prévenir les débordementsRecadrage des données : adapter le format des données à la dynamique des

donnéesDébordement possible lors d'une addition ou d'une soustraction

Nécessité d'introduire des bits supplémentaires

Détermination de laposition de la virgule

Déterminationde la dynamique

Détermination et optimisation de de lalargeur des données

Obtention de la position de la virgule

IV-28

Règles pour la position de la virgule

• Donnée x :

• Multiplication : format de la sortie

• Addition : choix d'un format commun

),,max( zyxADD mmmm =

1++= yxz mmm

( )( )ë û 1)(maxlog2 += nxm nx

Page 26: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-29

Règles pour la position de la virgule

• Additionneur avec bit de garde– Changement de référentiel

zzz gmm -=¢yyy gmm -=¢

'ym

ym : position de la virgule de y par rapport au

bit le plus significatif de y

: position de la virgule de y dans le référentiel communbmy-1 b0 b-1 b-2 b-nSy Sy Sy

bmz-1 b0 b-1 b-2 b-nSz Sz

'zmzgzm

yg 'ymym

gB

Nombre de bit de

garde disponible x

y

z

xm ¢

Sx bmx-1 b0 b-1 b-2 b-n

),,max( gzyyxxADD Bmgmgmm ---=

IV-30

Cas du filtre FIR

• Architecture sans bit de garde

z-1

+

ic ´

)(ny

)( inx -

0=MULTm

0=xm

1-=cm

4=ADDm

S

S

S S

S S SS S S

S

S

×

>> 4

+

S S SS S S

>>

S

S

S S

SS

Renvoi en mémoireen simple précision

IV-31

Cas du filtre FIR

• Architecture avec 8 bits de garde

z-1

+

ic ´

)(ny

)( inx -

0=MULTm

0=xm

1-=cm

4=ADDm

S

S

S S

×

+

S

S

S S

SS SS S

SS SS S

Ng = 8 (8 bits de garde)

SS SS S

4=ACCm4=ACCg

S

>> 4Renvoi en mémoireen simple précision

IV-32

Arithmétique virgule fixe

1. Présentation de l'arithmétique virgule fixe 2. Processus de codage en virgule fixe

2.1. Détermination de la dynamique 2.2. Détermination de la position de la virgule 2.3. Détermination de la largeur des données

3. Évaluation de la précision

Page 27: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-33

• Implantation logicielle– Architectures traditionnelles : opérateurs de largeur unique

– Architectures évoluées : différents types de données sont supportés

• Implantation matérielle– Objectif : optimiser la largeur des opérateurs

Détermination de laposition de la virgule

Déterminationde la dynamique

Détermination et optimisation de de lalargeur des données

Optimisation de la largeur

IV-34

Cas du filtre FIR

• Architecture double précision (sans bit de garde) +

Accumulateur

´

A B16 bits

32 bits32 bits

32 bits

z-1 z-1 z-1

+ + +

0c ´ 1c ´ 1-Nc ´2-Nc ´

)(nx

)(nyQ

16 bits

16 bits

>>

32 bits

>> >>>>

(16,0,15)

(16,-1,16)

(32,0,31)

(32,4,27)

(32,4,27)

(16,4,11)16 bits

32 bits

Déplacement vers les coefficients

Déplacement vers l'entrée

32 bits

IV-35

Recadrage des données dans un FIR

´b0

+

z-1 z-1 z-1

´b1

+

´bN-2

+

´bN-1

+Filtre FIR

x (n)

y (n)

>>

>> >> >> >>

>>

>> >> >> >>

� Recadrage externe

� Recadrage interne

Renvoi en mémoire

du résultat

� Recadrage des coefficients

IV-36

Filtre FIR : code C virgule fixeint Input[M] = {4030,..., ...} /* Signal x, codage (16,0,15)*/

int c[N] = {13107, 14336, 15565, ..., 13107, 14336}; /* Coefficients (16,-1,16) */

int main()

{

int x[N]; y[M];

long acc;

int i,j;

for(j=0; j<M; j++) /* Filtrage du vecteur d'entree input */

{

x[0] = Input[j];

acc = (long)(x[0]*c[0]) >> 4;

for(i=N-1; i>0; i--)

{

acc = acc + ((long)(x[i]*c[i]) >> 4); /* Calcul d'une cellule du filtre */

x[i] = x[i-1]; /* 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)

Recadrage de la sortie de la multiplication : changement de format : (32,0,31) ð (32,4,30)

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

Page 28: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-37

Arithmétique virgule fixe

1. Présentation de l'arithmétique virgule fixe 2. Processus de codage en virgule fixe

2.1. Détermination de la dynamique 2.2. Détermination de la position de la virgule 2.3. Détermination de la largeur des données

3. Évaluation de la précision

IV-38

Quantification1 Bruit de conversion A/N

xQ(n) = Q[x(n)]

e(n) = xQ(n) - x(n)

|e(n)| £ q/2

Quantification en conversion A/N Quantification d'une sinusoïde

n

x(n)

3q2qq

n

xQ(n)

3q2qq

n

e(n)q/2

- q/2CAN

x(n) xQ(n)

IV-39

Qx(n) xQ(n) = Q[x(n)] = k.q x(n) xQ(n)

+

e(n) = Q[x(n)] - x(n)

Quantification2 Modèle de bruit

• Modèle bruit additif

– Définition : approximation de chaque valeur d'un signal x(n) par un multiple entier du pas de quantification élémentaire q.

– e(n) est l'erreur de quantification

• Sources de bruit– Bruit de conversion A/N– Limitation des chemins de données de l'architecture cible

Élimination de bits lors d'un changement de format

IV-40

Quantification2 Caractéristiques de quantification

. ArrondiQ(x) = k.q si (k-1/2).q £ x < (k+1/2).q

. TroncatureQ(x) = k.q si k.q £ x < (k+1).q

Etude statistique

• {e(n)} est une séquence d'un processus aléatoire continu et stationnaire

• {e(n)} est décorrélée de {x(n)}

• {e(n)} est un bruit blanc additif

• la distribution de probabilité de {e(n)} est uniforme sur l'intervalle de quantification

• ergodicité : moyennes temporelles = moyennes statistiques

• moyenne µe = moyenne

• variance se2 = q2/12 : puissance du

bruit

x

fQ(x)

ui+1ui

xi

x

e(x)

ui+1uixi

2q

2q-

e(x)

xui+1ui

q

q-x

fQ(x)

ui+1ui

x

P(e)

q

1/q

x

P(e)

q 1/q

120

22 qee == sµ

122

22 qqee == sµ

Page 29: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-41

Quantification2 Caractéristiques de quantification

• Bruit lié à l'élimination de k bits

• Processus aléatoire discret

• Moments

S bm-1 b0 b-1 b-n+2 b-nb-n+1b-j-1b-j

2-n2-120

n

2m-1 2-j-12-j

j k

Bits restants Bits supprimés

)(ep

ne 2.

)(ep

ne 2.

(a) Arrondi (b) Troncature

( )kbbq 22

2 2112

0 --== sµ ( ) ( )kbk

bqq 22

2 2112

212

-- -=-= sµ

( )jq -= 2

IV-42

Quantification2 Caractéristiques de dépassement

Dx(n) D[x(n)]

– Valeurs de x(n) lorsqu'il sort de la dynamique de codage

Saturation– Complexe– Moins d'effets indésirables

Modulaire– Effets indésirables

Xmin

Xmin

Xmax

Xmax

x

fD(x)

Xmin

Xmin

Xmax

XmaxfD(x)

IV-43

A N

Filtrage d'un bruit de quantification

• Filtrage du bruit de conversion

• En entrée du filtre– Signal x(n) + Bruit de conversion e(n)

Le RSB augmente de 6dB par bit ajouté

2

2)1(22

2

2

2

22

2

log1077.402.6log10

2.1212/

',12

xdB

xbx

e

x

xe

bRSBRSB

qRSB

entréedsignaldupuissanceq

s

ssss

ss

++==

===

=

-

x(n) x(n) xQ(n)+

e(n)

H(z)xQ(n) y(n) Filtre

H(z)

y(n)Filtre

IV-44

Filtrage d'un bruit de quantification

• Moments du bruit en sortie

x(n) xQ(n)+

e(n)

H(z)y(n)+f(n)

Filtre

( )

( ) W==

==

òå

å

-

W¥+

-¥=

-¥=

deHnh

eHnh

je

nef

je

nef

22222

0

2)(

)(

p

ppsss

µµµ

)(*)()( nhnenf =

bruit signal

Page 30: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IV-45

Sources de bruit dans un FIR

´b0

+

z-1 z-1 z-1

bg mem

+bgm0

+bx

Db0

+ ´b1

+

+bgm1

Db1

+ ´bN-2

+

+bgm N-2

Db N-2

+ ´bN-1

+

+bgm N-1

Db N-1

+

+

Filtre FIR

x (n)

y (n)

s Bruit de quantification associé à l'entrées Bruit lié au recadrage externe �

s Bruit lié au recadrage interne �s Biais lié au codage des coefficients �

s Bruit lié au renvoi en mémoire du résultat

IV-46

Exemple du filtre FIR

• Sources de bruit :

´c0

+

z-1 z-1 z-1

bg mem

+bgm0

+bx

´c1

+

+bgm1

´cN-2

+

+bgm N-2

´cN-1

+

+bgm N-1

+

x (n)

y (n)

)(nx )(nyh+

bx

bg mem

+

N.bgm

IV-47

Exemple du filtre FIR

• Puissance du bruit en sortie (arrondi)

å-

=¢ ++=

1

0

2222.

N

ibbbb igmmemey

ssss

åå-

=

-¥=

++=1

0

22222.

)(N

ibb

mbb igmmemey

mh ssss

12.

1212

221

0

22

2 mimemN

mm

eb

qNqcqy

++= å-

=

s

Page 31: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

V-1

Transformées en TNS

1. TFD, convolution linéaire 2. TFR : Transformée de Fourier Rapide

V-2

Transformées en TNS 1 Rappels

•  TFSD : Transformée de Fourier d'un Signal Discret

x(nT) non périodique

•  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

⎪⎪

⎪⎪

Ω=

=

=

Ω

Ω

−∞=

Ω−Ω

−∞=

deeXnTx

enTxeX

enTxeX

jnj

n

jnj

n

TjnTj

π

π

ωω

π)(

21)(

)()(

)()(

V-3

Transformées en TNS 2 Transformée de Fourier Discrète

•  TFD –  En pratique, on prend seulement un nombre fini d'échantillons de

x(nT). On ne peut donc obtenir qu'un nombre fini d'échantillons fréquentiels de X(ejΩ).

⎪⎪

⎪⎪

−==

−==

∑−

=

+

=

1

0

2

1

0

2

1..0)(1)(

1..0)()(

N

k

Nnkj

N

n

Nnkj

NnekXN

nx

NkenxkX

π

π 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)

n

x(n)

N-1 Pas temporel : T=1/Fe

k

X(k)

N-1 Pas fréquentiel : 1/NT=Fe/N

TFD

V-4

Transformées en TNS 2 Transformée de Fourier Discrète

•  Propriétés –  Linéarité

–  Décalage en temps/fréquence –  Produit de convolution en temps/fréquence

•  Convolution discrète •  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

–  Cas général ?

Page 32: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

V-5

TFD

X(k) ⇔x(n)

x(n) et X(k) sont, dans le cas général, des nombres complexes.

X = W . x (2)

X(0)X(1)

.

.X(N-1)

=

1 1 . . 1

1 WN1 WN

2 . WNN-1

. WN2 WN

4 . WN2(N-1)

. . . . .

1 WNN-1 WN

2(N-1) . WN(N-1) 2

×

x(0)x(1)

.

.x(N-1)

•  Définition

•  Forme Matricielle

Transformées en TNS 2 Transformée de Fourier Discrète

⎪⎪

⎪⎪

−==

−==

∑−

=

+

=

1

0

2

1

0

2

1..0)(1)(

1..0)()(

N

k

Nnkj

N

n

Nnkj

NnekXN

nx

NkenxkX

π

π

nkNj

knN

Nj

N

eW

eWπ

π

2

2

=

=

V-6

Transformées en TNS 2 Transformée de Fourier Discrète

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.

Complexité de calcul

–  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)

Wk(N-n)N = (Wkn

N )* (3.1)

WknN = Wk(n+N)

N = W(k+N)nN (3.2) Périodicité

Wn+N/2N = -Wn

N (3.3) Symétrie

W2knN = Wkn

N/2 (3.4)

Propriétés des W  n N = e -2jπ n

N

V-7

En exploitant la propriété 3.4, on obtient :

(4)

où G(k): TFD sur N/2 points d'indices pairs,H(k): TFD sur N/2 points d'indices impairs.

X(k) = x(n).WNnk

n pair∑ + x(n).WN

nk

nimpair∑

X(k) = x(2n)n=0

N/2−1∑ .WN

2nk + x(2n +1)n=0

N/2−1∑ .WN

(2n+1)k

X(k) = x(2n)n=0

N/2−1∑ .WN /2

nk +WNk. x(2n + 1)

n=0

N/2−1∑ .WN/2

nk

X(k) = G(k) + WNk .H(k) k = 0,1,.. .., N −1

X(k + N2) = x(2n)

n=0

N/2−1∑ .WN/2

n(k+N/2) +WNk+N/2. x(2n +1)

n=0

N/2−1∑ .WN/2

n(k+N/2)

X(k + N2) = G(k)−WN

k.H(k)

Transformées en TNS 3 Transformée de Fourier Rapide

•  TFR (FFT) partagée dans le temps (DIT)

V-8

••• TFR DIT •••

x(0)

x(2)

x(4)

x(6)

x(1)

x(3)

x(5)

x(7)

TFD

N/2 pts

TFD

N/2 pts

X(0)

X(1)

X(2)

X(3)

X(4)

X(5)

X(6)

X(7)

W80

W81

W82

W83

W84

W85

W86

W87

O(N )2 O(N)

Xm(p)

Xm(q)

Xm+1(p)

Xm+1(q)

-1WNr

Xm+1(p) = Xm(p) + WrN Xm(q)

Xm+1(q) = Xm(p) - WrN Xm(q) (6)

Complexité d'un papillon : 1 multiplication complexe, 2 additions/soustractions complexes

Papillon DIT

N/2 papillons 2 TFD de taille N/2

Page 33: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

V-9

••• TFR DIT •••

X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)X(8)X(9)X(10)X(11)X(12)X(13)X(14)X(15)

sort

ie o

rdre

nor

mal

X(0)

X(1)

X(2)

X(3)

X(4)

X(5)

X(6)

X(7)

X(8)

X(9)

X(10)

X(11)

X(12)

X(13)

X(14)

X(15)

entr

ée o

rdre

bit-

reve

rsed

0

0

0

0

0

0

0

0

0 1 2 3 4 5 6 7

0 2 4 6

0 2 4 6

0 2

FFT DIT RADIX-2 en place sur 16 points

A

B

A'

B'

FFT FFT inverse

A' = A + BW B' = A - BW W= e

A' = A + BW B' = A - BW W= e

k -kk

k -k

DIT:

(Décimation en

temps)-2j π N

-2j π N

0 2

0 2

0 2

N2 log2N multiplications de nombres complexes,N log2N additions/soustractions de nombres complexes, ou,

2 N log2N multiplications de nombre réels,3 N log2N additions/soustractions de nombre réels.

V-10

••• TFR DIF •••

X(0)

X(2)

X(4)

X(6)

X(1)

X(3)

X(5)

X(7)

TFD N/2 pts

TFD N/2 pts

x(0)

x(1)

x(2)

x(3)

x(4)

x(5)

x(6)

x(7)

W80

W81

W82

W83

Xm(p)

Xm(q)

Xm+1(p)

Xm+1(q)-1 WN

r

Xm+1(p) = Xm(p) + Xm(q)Xm+1(q) = [Xm(p) - Xm(q)] Wr

N (8)

•  TFR (FFT) partagée dans les fréquences (DIF)

(7)

X ( k ) = x ( n ) n = 0

N / 2 - 1

∑ . W N nk + x ( n )

n = N / 2

N - 1

∑ . W N nk

X ( k ) = x ( n ) n = 0

N / 2 - 1

∑ . W N nk + W N

k . N / 2 . x ( n + N 2

) n = 0

N/2-1

∑ . W N nk

X ( k ) = x ( n ) + ( - 1 ) k . x ( n + N 2

) n = 0

N / 2 - 1

∑ W N nk [ ]

V-11

••• TFR DIF

A

B

A'

B'

FFT FFT inverse

A' = A + B B' = (A-B) W W= e

A' = A + B B' = (A-B) W W= e

k -k k-2j π N

-2j π N

X(0)

X(1)

X(2)

X(3)

X(4)

X(5)

X(6)

X(7)

X(8)

X(9)

X(10)

X(11)

X(12)

X(13)

X(14)

X(15)

X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)X(8)X(9)

X(10)X(11)X(12)X(13)X(14)X(15)

0 1 2 3 4 5 6 7

0 2 4 6

0 2 4 6

0 4

0 4

0 4

0 4 0

0

0

0

0

0

0

0

FFT DIF RADIX-2 en place sur 16 points

entr

ée:

ord

re n

orm

al

sort

ie: ord

re b

it-r

ever

sed

DIF: (Décimation en

fréquence)

V-12

Transformée de Fourier Rapide

X(0)X(1)X(2)X(3)X(4)X(5)X(6)X(7)X(8)X(9)

X(10)X(11)X(12)X(13)X(14)X(15)

0 0 0 0 0 0 0 0

4 4 4 4

0 0 0 0

7

3

5

1

6

2

4

0

6 6

2 2

4 4

0 0

X(0)

X(1)

X(2)

X(3)

X(4)

X(5)

X(6)

X(7)

X(8)

X(9)

X(10)

X(11)

X(12)

X(13)

X(14)

X(15)

entr

ée: o

rdre

nor

mal

sort

ie: o

rdre

bit-

reve

rsed

FFT DIT RADIX-2 en place sur 16 points

A

B

A'

B'

FFT FFT inverse

A' = A + BW B' = A - BW W= e

A' = A + BW B' = A - BW W= e

k -kk

k -k

DIT:

(Décimation en

temps)-2j π N

-2j π N

Page 34: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

V-13

Transformée de Fourier Rapide

A

B

A'

B'

FFT FFT inverse

A' = A + B•W B' = A - B•W W= e

A' = A + B•W B' = A - B•W W= e

k -k

-2jš N

FFT GEOMETRIE CONSTANTE sur 16 points

entr

ée:

ord

re b

it-r

eve

rsed

sort

ie: ord

re n

orm

al

Géométrie Constante

X(0)

X(1)

X(2)

X(3)

X(4)

X(5)

X(6)

X(7)

X(8)

X(9)

X(10)

X(11)

X(12)

X(13)

X(14)

X(15)

k-2jš N

X(0)X(1)

X(2)

X(3)X(4)

X(5)

X(6)X(7)

X(8)

X(9)X(10)

X(11)

X(12)X(13)

X(14)

X(15)

0

0

0

0

0

0

0

0

0

0

0

0

4

4

4

4

0

2

4

6

0

2

4

6

0

1

2

3

4

5

6

7

k -k

V-14

Transformée de Fourier Rapide

X(0)

X(1)

X(2)

X(3)

X(4)

X(5)

X(6)

X(7)

X(8)

X(9)

X(10)

X(11)

X(12)

X(13)

X(14)

X(15)

X(0)

X(1)

X(2)

X(3)

X(4)

X(5)

X(6)

X(7)

X(8)

X(9)

X(10)

X(11)

X(12)

X(13)

X(14)

X(15)

FFT DIF RADIX-4 en place sur 16 points

entr

ée: ord

re n

orm

al

sort

ie: ord

re b

it-r

ever

sed

0

1

2

3

0

0

0

0

FFT FFT inverse

A' = A+B+C+D B' = (A-jB-C+jD)W C' = (A-B+C-D)W D' = (A+jB-C-jD)W W = e

k

2k

-2jš N

A

D

B

C

A'

D'

B'

C'k

2k

3k

3k

A' = A+B+C+D B' = (A-jB-C+jD)W C' = (A-B+C-D)W D' = (A+jB-C-jD)W W = e

-k

-2k

-2jš N

-3k

V-15

4 Convolution et corrélation 1 Définitions

•  Corrélation –  Soit x1 et x2, 2 signaux de durée finie [0 ... N-1], la corrélation est :

•  Convolution linéaire –  Soit x et h, 2 signaux de durée finie respectivement N et M, la

convolution est définie par :

Le signal y(n) est de durée [0 ... N+M-2]

∑−

=

+=1

021 )()()(

N

inixixny

∑∑∞

=

=

−=−=

∗=

00)()()()()(

))(()(

iiinxihinhixny

nhxny

V-16

4 Convolution et corrélation 1 Définitions

•  Exemple de convolution N > M

i

x(i)

N-1 i

h(i)

M-1

i

h(-i)

*

∑=

−=n

iinhixny

0

)()()(

n

y(n)

i n

h(n-i)

n-M+1

N+M-2

∑∞

=

−=0

)()()(i

inhixny

Page 35: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

V-17

4 Convolution et corrélation 1 Définitions

•  Propriétés –  Y(z) = H(z) X(z) (TZ)

–  Y(k) ≠ H(k) X(k) (TFD)

•  Vue matricielle de la convolution

è  O(N2)

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

×

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

−=

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

−+ )1(..)1()0(

)1(..00)0(...00...)1(0..)0(.0..0)0(

)2(..)1()0(

Nx

xx

Mhh

Mhh

h

MNy

yy

V-18

4 Convolution et corrélation 2 Convolution circulaire

•  Convolution circulaire –  Soit x et h, 2 signaux périodiques de période N, la convolution

circulaire est définie par :

Le signal y(n) est de période N h(n-i) est évalué modulo N

TFD : Y(k) = H(k).X(k)

)()()(

)()()(1

0

nhnxny

inhixnyN

i

∗=

−=∑−

=

V-19

4 Convolution et corrélation 2 Convolution circulaire

•  Convolution circulaire –  On passe de la convolution circulaire à la convolution linéaire en

remplissant de zéros chaque séquence jusqu'à M+N-1

*

{x(n)}{0….0}

N+M-1

{h(n)}{0….0}

{y(n)}

V-20

4 Convolution et corrélation 3 Convolution rapide

•  Convolution rapide –  Passer dans le domaine de Fourier par une TFD : la convolution se

transforme en produit –  Utiliser la FFT sur P points pour accélérer les calculs

–  Compléter les suites x(n) et h(n) par des zéros jusqu’à P > N+M-2, avec P = 2p.

è  O(Plog2P)

X

{x(n)}{0….0}

Longueur P

{h(n)}{0….0}

{y(n)}

FFT

FFT

FFT-1

Page 36: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

V-21

4 Convolution et corrélation 3 Convolution rapide

–  Problème : h(n) et x(n) doivent être de durée finie –  Application : FIR rapide

•  h(n) de durée M : H(k) peut être calculé une fois pour toute •  x(n) de durée infinie

•  Convolution sectionnée –  x(n), de durée infinie, est découpé en blocs xk de taille M

∑∞

−∞=

−∞=

=

=

⎩⎨⎧ +<≤

=

kk

kk

k

nyny

nxnhny

ailleursOMknkMpournx

nx

)()(

)(*)()(

)1()()(

V-22

4 Convolution et corrélation 3 Convolution rapide

• Méthode OLA (Overlap Add) –  Blocs xk de taille M

–  Addition des recouvrements entre les yk

• Méthode OLS (Overlap Save) –  Blocs xk de taille N+M avec recouvrement –  Troncature des yk sur M points, addition entre les yk

Page 37: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VI-1

Synthèse des filtres numériques RII

1. Introduction2. Rappels sur la synthèse des filtres analogiques3. Invariance impulsionnelle4. Transformation bilinéaire

VI-2

Synthèse des filtres RII1 Introduction

• Recherche de H(z) correspondant aux spécifications (gabarit)

– Transposition des méthodes de synthèse applicables aux filtres analogiques, puis transformation de H(p) vers H(z)

Invariance impulsionnelleTransformation bilinéaire

– Synthèse directe en z– Méthodes d'optimisation : minimiser un critère d'erreur entre courbe

réelle et courbe idéale

VI-3

Synthèse des filtres RII2 Synthèse de filtre analogique

SpécificationGabarit analogique

Gabarit normalisé

Normalisation

Ordre du filtre

HNorm(p)

Approximation de H(p)

Types de filtre (Butterworth, Chebyshev,...)

H(p)

Dénormalisation

Filtrage numérique Filtrage analogique

Transformation p=f(z)

invariance impulsionnelle, bilinéaire

Choix d’une structure Rauch, Sallien-Key,

Biquadratique VI-4

Synthèse des filtres RII2 Synthèse de filtre analogique

• Normalisation– Calcul de la sélectivité s

w1

1

|HNorm(p)|

1-d1

1+d1

d2

1/s

w0

|HNorm(p)| (dB)

-D1

D1

D2

a) Gabarit prototype linéaire b) Gabarit prototype en dB

1 1/s

Page 38: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VI-5

Synthèse des filtres RII2 Synthèse de filtre analogique

• Ordre du filtre et fonction de transfert normalisée

– Butterworth, Chebyschev, Elliptique, Bessel, Legendre, ...– HNORM(pN)

• Dénormalisation– Passe-bas : pN = p / wc

– Passe-haut : pN = wc / p– Passe-bande : pN = 1/B (p / w0 + w0 / p)

• On obtient une fonction de transfert H(p) respectant le gabarit analogique spécifié

Þ Passage vers H(z)VI-6

Synthèse des filtres RII3 Invariance impulsionnelle

• Le filtre numérique et le filtre analogique ont la même réponse impulsionnelle

t

ha(t)

Ha(p)x(t) y(t)

filtre analogique

t

h(nT)

H(z)x(nT) y(nT)

filtre numérique

T

h(nT) = ha(t) / t = nT

VI-7

Synthèse des filtres RII3 Invariance impulsionnelle

• Le filtre numérique et le filtre analogique ont la même réponse impulsionnelle

– Conserve la réponse temporelle et la stabilité– Phénomène de recouvrement de spectre du à l'échantillonnage– Non respect de la spécification fréquentielle

{ }å úû

ùêëé-

=

¾®¾¾¾®¾¾®¾

-

=-

)(1 ,

1)()(

)()()()(1

pHdeppôlesipT

a

TznTta

La

ai

pezpHRésiduszH

directenformulatioouzHnThthpH

( )å +=W

kTk

aj jjH

TeH pw 21)(

VI-8

• Réponse fréquentielle

– Normalisation(xT) ou (/H(0))

Synthèse des filtres RII3 Invariance impulsionnelle

1Ha(p)

1/T

p

W

2P-2P P

H(W)

Page 39: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VI-9

Synthèse des filtres RII4 Transformation bilinéaire

• Approximation d'une intégrale par la méthode des rectangles1

1

1

112

-

-

+-

=zz

Tp

t

e(nT)

nT(n-1)T

s(n) = s(n-1) + T[e(n) + e(n-1)]/2

H(z)e(n) s(n) 1/p

e(t) s(t)

Intégrateuranalogique

Intégrateurnumérique

1Appelée également, selon les sources, méthode des trapèzes VI-10

Synthèse des filtres RII4 Transformation bilinéaire

– Conservation de la stabilité

– Relation entre fréquences numériques et analogiques

plan p

p = jwa

plan z

z = ejwT

p 0

VI-11

Synthèse des filtres RII4 Transformation bilinéaire

– Distorsion en fréquence connue

fe/2

filtre analogique filtre numérique

fe/2

p

p/Twa

wT

-p

÷øö

çèæ=

22TtgT

numériqueanalogique ww

VI-12

Synthèse des filtres RII4 Transformation bilinéaire

• Procédure de synthèse

– A partir du gabarit en fréquence numérique wn

– Effectuer une prédistorsion en fréquence

– Synthèse de H(p) par méthodes vues en Electronique du signal– Transformation bilinéaire

÷øö

çèæ=

22TtgT

na ww

1

1

112

)()(-

-

+-

==

zz

Tp

pHzH

Page 40: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VI-13W

pWp

1|H(ejW)|1-d1

1+d1

d2

Wa

wa

p

1

|Ha(jw

a)|

1-d 1

1+d 1 d 2

wa

a

p

wawa

W

wa=2/T tan(W/2)

2p VI-14

Synthèse des filtres RIIExemple

• Filtre numérique analogique du premier ordre

– Invariance impulsionnelle : Hi(z)

– Transformation bilinéaire : Hb(z)

CR

ppH

c

c

.1

1

1)(

=

+=

w

w

fc = 1 KHz, fe = 10 Khz

Page 41: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VII-1

Synthèse des filtres numériques RIF

1. Introduction

2. Filtres à Phase Linéaire

3. Méthode du Fenêtrage

4. Échantillonnage en Fréquence

VII-2

Synthèse des filtres RIF 1 Introduction

• Recherche de H(z) correspondant aux spécifications (gabarit)

–  Synthèse directe en z

–  Filtres à phase linéaire ou minimale

•  3 méthodes de synthèse – Méthode du fenêtrage – Méthode de l'échantillonnage fréquentiel – Méthodes d'optimisation : minimiser un critère d'erreur entre courbe

réelle et courbe idéale

VII-3

Synthèse des filtres RIF 2 Phase linéaire

•  Filtre à phase minimale –  Zéros dans le cercle unité

•  Filtre à phase linéaire

–  Condition pour avoir une phase linéaire Symétrie ou antisymétrie par rapport à α = (N-1)/2

⎩⎨⎧

Ω−=Ω

−Ω

Ω= ΩΩ

αβϕ

ϕ

)()(:)(

).()( )(

amplitudemodulepseudoAavec

eAeH jj

VII-4

Synthèse des filtres RIF 2 Phase linéaire

réponse impulsionnelle symétrique β=0

réponse impulsionnelle antisymétrique β=±π/2

N impair α entier

N pair α non entier

h(n)

α N-1

h(n)

α N-1

h(n)

α N-1

h(n)

α N-1

Type I

Type II

Type III

Type IV

Page 42: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VII-5

Synthèse des filtres RIF 2 Phase linéaire

N impair

N pair

ααα

αα

…1),(2),(

)cos()(

0

0

=−==

Ω= ∑=

Ω−Ω

nnhaha

naeeH

n

nn

jj

0)(2/1),2/(2

])cos[()(2/

12/1

=

=−=

Ω−= ∑=

Ω−Ω

π

α

HNnnNhb

nbeeH

n

N

nn

jj

0)()0(1),(2

)sin()(1

2

==

=−=

Ω= ∑=

Ω−Ω

π

αα

αα

π

HHnnhc

nceeeH

n

nn

jjj

0)0(2/1),2/(2

])sin[()(2/

1

2 2/1

=

=−=

Ω−= ∑=

Ω−Ω

HNnnNhd

ndeeeH

n

N

nn

jjj

απ

Tout filtre

Passe Haut

Passe Bande Dérivateur

Passe Haut Dérivateur

Type I

Type II

Type III

Type IV

Réponses fréquentielles

VII-6

Synthèse des filtres RIF 2 Phase linéaire

N impair

N pair Tout filtre

Passe Haut

Passe Bande Dérivateur

Passe Haut Dérivateur

π 2π

Type I

Type II

Type III

Type IV

π 2π

π 2π

π 2π

Réponses fréquentielles

VII-7

Synthèse des filtres RIF 3 Méthode du fenêtrage

• Développement en série de Fourier du filtre idéal

–  Filtre non causal, de type RII

•  Passage de h(n) idéal au RIF approché par fenêtrage de h(n)

∫−ΩΩ Ω=

π

ππdeeHnh jnj ).(

21)(

∑∞

−∞=

Ω−Ω =n

jnj enheH )()(

)().()( nwnhnha =

VII-8

Synthèse des filtres RIF 3 Méthode du fenêtrage

•  Exemple : filtre passe-bas idéal

Filtre passe-bas idéal

c

cc

nnnhΩ

ΩΩ=

)sin()(π

Ω π Ωc

1

-Ωc -π

|H(ejΩ)|

Page 43: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VII-9

Synthèse des filtres RIF 3 Méthode du fenêtrage

•  Prise en compte d'une condition de phase linéaire par décalage de α

•  Fenêtrage de h(n) )()()()().()( ΩΩΩ ∗=⇔= jjj

aa eWeHeHnwnhnh

H(Ω) W(Ω) *

=

|Ha(Ω)|

VII-10

ΔΩ

ΔA

1+ΔA H(Ω) ^

H(Ω)

W(Ω)

1 1-ΔA

Synthèse des filtres RIF 3 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

VII-11

Synthèse des filtres RIF 3 Méthode du fenêtrage

•  Fenêtres usuelles –  Rectangle, Triangle, Hanning, Hamming, Blackman, Kaiser, ...

–  Réponses temporelles

VII-12

Synthèse des filtres RIF 3 Méthode du fenêtrage

•  Fenêtres usuelles –  Réponses fréquentielles (linéaire, dB)

Page 44: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VII-13

Synthèse des filtres RIF 3 Méthode du fenêtrage

•  Influence de la fenêtre

–  Le type de fenêtre influe sur ΔA et ΔΩ –  Le nombre de points influe sur ΔΩ

Fenêtre Lobesecondaire

Demi largeur dulobe principal

Atténuationminimum

Rectangulaire -13dB 2π/N -21dBTriangulaire -25dB 4π/N -25dBHanning -31dB 4π/N -44dBHamming -41dB 4π/N -53dBBlackman -57dB 6π/N -74dB

VII-14

Synthèse des filtres RIF 4 Méthode de l'échantillonnage

•  Échantillonnage en fréquence –  Échantillonnage du filtre idéal

–  TFD inverse de H(kΩe)

– Méthode valable pour tout type de filtre

–  Possibilité d'utiliser un fenêtrage

Ω π Ωc

1

H(ejΩ) H(kΩe)

∑−

=

Ω=1

0

.2

)(1)(N

k

knNj

e ekHN

nhπ

Page 45: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VIII-1

Analyse spectrale

1. Effets de la troncature

2. Caractéristiques des fenêtres

3. Influence sur l'analyse

VIII-2

Analyse spectrale 1 Définition

•  Analyse spectrale de signaux continus –  Etude du contenu fréquentiel (spectre) d'un signal continu xc(t)

–  Nombre limité d'échantillons du signal d'entrée pour la TFD

•  Troncature temporelle –  xN(n) = x(n) . wN(n) avec wN(n) fenêtrage sur N points –  T0 = N.T : horizon d'observation

xc(t) Filtre P.Bas anti-repliement

Ωc = π

CAN Fe

x(n) x

fenêtre wN(n)

xN(n) FFT

||2

φ

VIII-3 VIII-4

Page 46: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VIII-5

Analyse spectrale 2 Troncature temporelle

•  Troncature temporelle –  xN(n) = x(n) . wN(n) avec wN(n) fenêtrage sur N points

•  Influence sur le spectre –  Convolution fréquentielle

•  TFD du signal tronqué

Lk

jNN

L

n

Lnkj

NN

eXkX

NL

LkenxkX

/2

1

0

2

)()(

1..0)()(

π

π

Ω

=

=

−==∑

)(*)()( ΩΩΩ = jN

jjN eWeXeX

VIII-6

Analyse spectrale 2 Troncature temporelle

•  Exemple –  Fenêtre rectangulaire, N=31

VIII-7

Analyse spectrale 3 Influence de la fenêtre

–  fonction cosinus fenêtrée sur N=32 points

VIII-8

•  Influence de la fenêtre

–  Le type de fenêtre influe sur λ et ΔΩm –  Le nombre de points influe sur ΔΩm

Analyse spectrale 3 Influence de la fenêtre

Fenêtre Lobe secondaire λdB = 20log|W(fs)/W(0)|

Lobe secondaire λ = |W(fs)/W(0)|

Largeur du lobe principal LLP = ΔΩm

Rectangulaire -13dB 4.5-1 4π/N Triangulaire -25dB 17.8-1 8π/N

Hanning -31dB 35.5-1 8π/N Hamming -41dB 112.2-1 8π/N Blackman -57dB 708-1 12π/N

W(Ω)

Ω

f ΔΩm

ΔΩm/2

λ

fs 1/NT

π

fe/2

Page 47: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VIII-9

Analyse spectrale 3 Influence de la fenêtre

•  Fenêtres usuelles –  Rectangle, Triangle (Bartlett), Hanning, Hamming, Blackman, Kaiser, ...

–  Réponses temporelles

VIII-10

Analyse spectrale 3 Influence de la fenêtre

•  Fenêtres usuelles –  Réponses fréquentielles (linéaire, dB)

VIII-11

Analyse spectrale 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 –  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-12

Analyse spectrale 4 Paramètres de l'analyse

Fenêtre rectangulaire

Page 48: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

VIII-13

Analyse spectrale 4 Paramètres de l'analyse

VIII-14

Analyse spectrale 5 Zero-padding

–  Ajout de L-N zéros à la suite de x(n) avant TFD sur L points

Page 49: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IX-1

Systèmes multi-cadences

1. Définition 2. Décimation

3. Interpolation

IX-2

Systèmes multi-cadences 1 Définition

•  Systèmes multi-cadences –  Systèmes dans lesquels on pourra avoir plusieurs fréquences

d'échantillonnage dans une même chaîne de traitement –  Ils tirent partie de la forme spectrale d'un signal en gardant Fe

toujours à sa valeur optimale -> Réduction de la complexité

ω ω0

1

-ω0

Xc(ω)

t

xc(t)

IX-3

Systèmes multi-cadences 1 Définition

t

x(nT)

T ω ω0

1/T

-ω0

X(ejΩ)

π/T -π/T

t

xd(nT')

T' ω

1/T' Xd(ejΩ)

π/T' -π/T'

IX-4

Systèmes multi-cadences 2 Décimation

• Décimation d'un facteur M

–  Pour éviter le recouvrement de spectre, le signal xc(t) doit être à bande limitée et respecter le théorème de Shannon par rapport à T'

↓ M x( nT ) x d ( nT ')

T' = MT

↓ M x( nT ) x d ( nT ')

T' = MT F'e = Fe/M

t t

∑−

=

−ΩΩ =

=1

0

)/2/( )(1)(

)()(M

i

MiMjjd

d

eXM

eX

nMxnx

π

Xc (ω) = 0 pour ω ≥ω0

et π /T' = π /(MT) ≥ω0 ou F 'e = Fe /M ≥ω0 / π

Page 50: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

IX-5

•  Filtres à décimation –  Filtre suivi d'un décimateur

T' = MT

• Optimisation du filtre à décimation

Systèmes multi-cadences 2 Décimation

x(nT) Filtre Passe Bas Gain = 1 Ωc = π/M

↓M v(nT) y(nT')

x(nT) T T T

b1

+

b2

+

b3

+

b0

↓2 v(nT) y(nT')

IX-6

Systèmes multi-cadences 3 Interpolation

•  Interpolation d'un facteur L –  Objectif : augmenter la fréquence d'échantillonnage d'un signal x(n)

échantillonné à la période T d'un facteur L

•  Elévateur de fréquence –  Ajout de L-1 zéros entre 2 échantillons de x(n)

xi (nT ') = x(nT / L) = xc (nT '), avecT ' =T / L

↑L x(nT) xe(nT')

t t

)()(

)()(

0...,2,,0),/(

)(

'

Ljje

TjTje

e

eXeXeXeX

ailleursLLnLnx

nx

ΩΩ =

=

⎩⎨⎧ ±±=

=

ωω

Pas d'effet sur le spectre

IX-7

Systèmes multi-cadences 3 Interpolation

•  Interpolateur –  Succession d'un élévateur de fréquence et d'un filtre passe-bas idéal

de gain L, de période d'échantillonnage T' et de fréquence de coupure Fc = 1/2T (i.e. Ωc = π/L).

ω

1/T X(ejΩ)

π/T -π/T t

t ω

1/T' Xe(ejΩ)

π/T -π/T π/T' -π/T'

↑L x(nT) xe(nT') Filtre Passe Bas

Gain = L Ωc = π/L

xi(nT')

IX-8

Systèmes multi-cadences 3 Interpolation

• Optimisation du filtre à interpolation

• Multiplication de Fe par un facteur rationnel R=L/M

–  T' = T.M/L

x(nT) T T T

b1

+

b2

+

b3

+

b0

↑2 v(nT')

y(nT')

↓M y(nT')

↑L x(nT) Filtre Passe Bas

Gain = L Ωc = min(π/L, π/M)

Page 51: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-1

Processeurs de Traitement du Signal (PTS) Digital Signal Processor (DSP)

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. Exemples de processeurs 4. Outils de développement III-2

Solutions architecturales

• Applications embarquées et « grand public »– Très faible coût

Le coût est proportionnel à la surface du circuit

– Faible consommationPmoy = a . C . Vdd

2 . F• a: facteur d'activité défini comme le nombre moyen de transitions (0 à 1) pendant une

période d'horloge.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éelImplémentation efficace des applications de TS

– Sûreté de fonctionnement

III-3

Solutions architecturales

EmbeddedFPGA

EE : Efficiency : MIPS / Watt

ReconfigurableProcessor

EmbeddedProcessor

SA1100.4 MIPS/mW

Alpha0.007 MIPS/mW

DSP

2 V DSP3 MOPS/mW

Pleiades10-50 MOPS/mW

ASIC

100-1000 MOPS/mW

• Compromis performance - flexibilité

1100

Flex

ibili

ty)/( mWMIPSCPE c

E =

Efficacité énergétique :

10

ASIP

III-4

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 traitement (DP : Data Processor) : UF qui modifie ou transforme les données

• Unité de mémorisation:– IM : Instruction Memory : stocke les instructions– DM : Data Memory : stocke les données traitées par le DP

• Unité de communication (EIU : External Interface Unit) : contrôle les accès aux données ou instructions externes, ou à d'autres processeurs

Page 52: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-5

Modélisation d'un processeur

Unité de traitement

D.P.

Unité de contrôle : I.P.

Unité de mémorisationI.M. + D.M.

Unité de communication : E.I.U

III-6

FIR sur machine Von Neumann

• Problèmes :– Bande passante avec la mémoire

Lecture des échantillons Vieillissement des échantillons

– Gestion des pointeurs d'adresse

loop:mov *r0,x0mov *r1,x1mpy x0,x1,aadd a,bmov x1,*r2inc r0inc r1inc r2dec ctrtst ctrjnz loop

Exécution en 15 à 20 cycles

Lecture des opérandes sources

Opération MAC

Vieillissement de l'échantillon

Gestion des pointeurs d'adresse

Gestion de la boucle

Data Path Memory

III-7

Inadéquation des processeurs généralistes

• Unité de traitement – Opérateur arithmétique peu performant (multiplication lente)– File de registres

• Unité de mémorisation – Bande passante avec la mémoire faible – Gestion peu efficace des pointeurs d'adresse

• Unité de contrôle – Gestion peu efficace des boucles

III-8

Objectifs

• Unité de traitement :– Réaliser efficacement les traitements typiques en TNS

1 MAC par cycle

• Unité de mémorisation : – 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 :– 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

Page 53: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-9

Le tout dans un environnement temps réel

Propriétés du traitement numérique du signal

Calculs intensifs et répétitifs

Primitives simples

Conséquences sur les architectures

s Unités de traitement spécialisées câblées

s Gestion complexe de l'adressage

s Fonctionnement pipelines Architecture Harvards Structures de contrôle

évoluées

Caractéristiques des DSP

?

III-10

Le marché des processeurs DSP

@ForwardConceptInc.

III-11

Les différentes générations

1

10

100

1000

10000

1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002

TMS320C20 (5 MIPS)TMS320C10 (2.5 MIPS)

DSP56001 (13MIPS)ADSP21xx (13MIPS)

TMS320C50

DSP16210 (100 MIPS)

DSP56301TMS320C54x (50-100MIPS)

ADSP2183 (50MIPS)

StareCore(300MHz)TMS320C62x (300MIPS)

Carmel (300 MHz)

1ère génération

2ème génération

3ème génération

4ème génération

Perf

orm

ance

s no

rmal

isée

s

Année

Architectureconventionnelle

Architecture conventionnelle

améliorée

Architecture VLIWsuperscalaire

III-12

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. Exemples de processeurs4. Outils de développement

Page 54: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-13

Cellule

Exemple Fil Rouge

• Filtre numérique FIR sur N points

å-

=

*=-=1

0

)()()().()(N

inhnxinxihny

y(n)+

x

+

x

+

x

+

xxx(n)

h(0) h(1) h(2) h(3) h(4)

D D D D

ð Objectif : traitement d'une cellule par cycleIII-14

Représentation des données

• Virgule fixe– Le format d'une donnée ne varie pas au cours du temps– Représentation : partie entière - partie fractionnaire

• Virgule flottante– Représentation : exposant - mantisse

22)2(1

CAbSxm

ni

ii

m å-

-=

+-=

å

å-

=

=

-

-=

÷ø

öçè

æ+-=

1

1

1

1

2)1(

221)1(2

E

i

ii

S

M

i

ii

Su

duavec

Cx

E

E

S bm-1 bm-2 b1 b0 b-1 b-2 b-n+2 b-nb-n+1

2-n2-121 20

Partie entière Partie fractionnaire

2m-1 2-2

S dE-1 d1 d0 cM-1 c2 c0c1

MantisseExposant

III-15

DSP virgule fixe

• Arithmétique : – Dynamique limitée : [-Xmax et Xmax]

Possibilité de débordement ð nécessité de recadrer les données

• Développement : – Temps de développement plus long

Étude la dynamique des données, détermination du codage et des recadrages

• Architecture : – Opérateurs plus simples– Largeur des données bnat : 16 bits

Efficacité énergétique plus importante, consommation moins importanteProcesseur plus rapideProcesseur moins cher (surface du circuit moins importante)

• Marché : applications grand public – 95% des ventes en 96

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

III-16

DSP virgule flottante

• Arithmétique :– Dynamique importante : 1500 dB pour 32 bits

• Développement– Temps de développement plus court

Recadrage des données assuré par le processeur Compilateur de langage de haut niveau plus efficace : plus grande portabilité

• Architecture : – Largeur des données : 32 bits– Opérateurs plus complexes (gestion de la mantisse et de l'exposant)

Processeur plus cher et consommant plus

• Marché– Applications nécessitant une grande dynamique : audionumérique – Applications avec des faibles volumes

TMS320C67x :- fCLK : 300 MHz (100 MHz - 300 MHz)- On Chip Memory 72 Kbytes ð 264 Kbytes- Price : $14 ð 105

Page 55: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-17

Eléments de l'UT

• Opérateurs – Multiplieur câblé

Multiplication en 1 cycle ou pipelinée (1 résultat de multiplication par cycle) Le résultat est fourni directement à l'UAL ou il est stocké dans un registre (P register)Largeur des opérandes source : bnat

résultat : bmult = 2.bnat

– U.A.L.Opérations arithmétiques : addition, soustraction, incrémentation, négationOpérations logiques : and, or, notLargeur des opérandes sources et destination identique badd ³ 2.bnat

– Additionneur indépendant de l'UAL– Registres à décalage (recadrage des données)

spécialisé : réalisation de quelques décalages prédéfinis en //en barillet : réalisation d 'un décalage quelconque en 1 cycle

III-18

Éléments de l'UT

– Unités de saturation ou d'arrondi – Unités spécifiques

Unité de manipulation de bit, Viterbi, ...

• Unités de stockage de l'UT– Registres opérandes

Stockage des opérandes sources ou des résultats intermédiaires

– Registres d'accumulation Stockage du résultat de l'additionneurNombre de registres d'accumulation limité (1 à 4) Données stockées en double précisionPossibilité de bits de garde pour stocker les bits supplémentaires issus d 'accumulations successives

badd = bmult + bg

Bits de garde ACCH ACCL

2.bnatbg

III-19

Structure de l'UT de type MAC

+

Accumulateur

´

A B

Sat /Arr

bnat

bmult

badd

MACP

Interconnexions registres - opérateurs spécialiséesð Structure hétérogèneð Bonnes performances en terme

de consommation et de surface

bnat

Opérateurs Nbits Entrées Nbits Sortie

Multiplieur bnat 2 bnat

Additionneur/ UAL 2 bnat

2 bnat +bg

2 bnat

2 bnat +bg

Saturation/Arrondi 2 bnat

2 bnat +bg

bnat

bnat

Registre Nbits

Opérande source bnat

Accumulateur 2 bnat

2 bnat +bg

III-20

Exemple : TMS320C54xDB PBCBDB CB DB CB EBDB � 1 multiplieur 16*16 bits

� Op source 1 : registre T� Op source 2 : mémoire � Op destination :

� 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

Page 56: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-21

Processeurs de traitement du signal

1. Introduction 2. Description des différentes unités

2.1. Unité de traitement2.2. Unité de mémorisation2.3. Unité de contrôle

2.4. Unité de communication

3. Exemple de processeurs4. Outils de développement III-22

Exemple FIR Fil Rouge

• Les différents accès à la mémoire– Recherche de l'instruction– Lecture de la donnée xn-k

– Lecture du coefficient hk

– Vieillissement des données xn-k-1 = xn-k

TAP

y(n)+

x

+

x

+

x

+

xx

x(n)

h(0) h(1) h(2) h(3) h(4)

D D D D

III-23

Localisation des opérandes

Mémoire

Opérateur

R

A

texec

tacc

Mémoire

RX

Opérateur

RY

A

texec

tacc

• Modèle registre-mémoire – Opérandes situées en mémoire et dans les registres

Temps d'exécution de l'instruction

tinst = tacc+ texec

• Modèle « Load-Store » – Opérandes situées uniquement dans des registres

Temps d'exécution de l'instruction

tinst = max(texec,,tacc)

III-24

DM

DP

IM

IP

[Classification de E. Lee (1989)]

Ex: TMS320C10

Architecture Harvard de base

• Architecture Harvard : séparation de la mémoire données et de la mémoire programmeðFetch d'instruction pipeliné avec fetch opérande

Page 57: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-25

Modification 1

• Autorisation de mémorisation de données dans l'IM

• En un cycle si 2 accès mémoire par cycle (tacc = 1/2.tinst) :

– fetch de l'instruction– fetch deux opérandes de la mémoire– exécution d'un MAC– écriture du résultat en I/O ou mémoire

DM

DP

IM/DM

IP

1-vers-2

AT&T DSP32 et DSP32C

III-26

Modification 2

• DM est une mémoire multi-ports, plusieurs accès aux données par cycle

• Utilisable pour des mémoires internes au CI

Fujitsu MB86232 (3 ports en mémoire interne)

DM

DP

IM

IP

III-27

Modification 3

• Cache pour charger les instructions fréquentes

• Évite les conflits d'accès données et instructions de la modification 1

TMS320C25 : cache 1 instruction pour les bouclesDSP16 : cache 15 instructionsADSP-2100 : cache 16 instructions

DM

DP

IM/DM

IP

1-vers-2 cache

III-28

Modification 4

Motorola DSP 56001 et 96002TMS320C30 et C40

DM 1

DP

IM

IP

1-vers-2

DM 2

• Deux mémoires données DM séparées

• En un cycle : – fetch de l'instruction– fetch de deux opérandes (si les

temps d 'accès aux mémoires DM1, DM2 et IM sont identiques)

Page 58: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-29

Modèle du C54x

• Bus et mémoires internes

Program

Dataread

Dataread

Datawrite

Mémoire interne

ROM : - Bootloader- Utilisation dans l'espace dataou program

DARAM (Dual Acces RAM) - 1 lecture + 1 écriture par cycle

SARAM (Single Acces RAM) - 1 lecture ou 1 écriture par cycle

III-30

Modes d'adressage

• Adressage immédiat : la donnée est stockée directement dans l'instruction – Exemple C54x : LD #75h, A

Adressage court (instruction sur 1 mot) : valeur spécifiée sur 3,4,8 ou 9 bits Adressage long (instruction sur 2 mots) : valeur spécifiée sur 16 bits

– Utilisé pour l'initialisation des registres – Inconvénient : augmentation du temps d'exécution et de la taille du code

• Adressage registre directe : les données sont stockées dans des registres – Exemple C54x SUB A, B

A = 75h

III-31

Modes d'adressage

• 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

C54x les adresses sont sur 16 bits L'instruction doit être codée sur plusieurs mots

– Adressage paginé : pour limiter le nombre de bits stockés dans l'instruction l'adresse est composée de deux parties :

a11 A10 a9 a8 a0a15

Partie stockée dans un registre. pointeur de page: DP. pointeur de pile: SP

Partie stockée dans l'instruction

9 bits TMS320C54x 7 bits

III-32

Modes d'adressage

• Adressage indirecte par registre :– Registre d'adresse (AR) pointant sur les données

LD *AR1, A

– Possibilités de post modifications :linéaire : AR:= AR ± 1 LD *AR1+, A

indexé : AR:= AR ± MR LD *AR1+0, A

– MR: registre d'index

modulo : (AR:= AR ± 1)N LD *AR1+% ,A

bit-reverse : FFT LD *AR1+0B ,A

x0 x1

x2

x3x5

addr = AR1AR1 = AR1 + 1

addr = AR1AR1 = AR1 + AR0

addr = AR1AR1 = (AR1 + 1) modulo BK

(BK) specifies the size of the circular buffer.

addr = AR1 (Aï *AR1)

addr = AR1AR1 = bitrev(AR1 + AR0)

After access, AR0 is added to ARx with reverse carry (rc) propagation.

Page 59: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-33

Buffer circulaire et bit-reverse

– Buffer circulaire :Vieillissement automatique des données

– Bit-Reverse :. Adressage des données en entrée ou en sortie de la FFT. Attention à l 'adresse de début du tableau : xxxx0000

Index bit bit reverse index bitreverse

0 000 000 01 001 100 42 010 010 23 011 110 64 100 001 15 101 101 56 110 011 37 111 111 7

xn-4 xn-3xn-2

xn-1xn-6N=8

xn

*AR1

xn-2

xn-1

xn

xn-7

xn-3

xn-6

xn-5

xn-4

Élément courant du buffer

Premier élément du tableau

Dernier élément du tableau

xn-1

xn

xn+1

xn-6

xn-2

xn-5

xn-4

xn-3

Élément courant du buffer

III-34

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

III-35

Processeurs de traitement du signal

1. Introduction 2. Description des différentes unités

2.1. Unité de traitement 2.2. Unité de mémorisation2.3. Unité de contrôle

2.4. Unité de communication

3. Exemple de processeurs4. Outils de développement III-36

Pipeline

• Exécution de l'instruction en plusieurs phases :– 1. Recherche de l'instruction– 2. Décodage de l'instruction – 3. Recherche des opérandes – 4. Exécution

Inst n-1

i+1i i+2 i+3 i+4

Inst n+1Inst n

Inst n-1 Inst n Inst n+1

Inst n-1 Inst n Inst n+1

Recherche Instruction

Recherche Opérande

DécodageInstruction

Inst n-1 Inst nExécution

Page 60: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-37

Codage des instructions

• Stationnarité temporelle:– Une instruction définit l'ensemble des opérations à réaliser pour chaque

unité fonctionnelle

MULT R1,R2,T ADD T,A,A LD R1,AR1 LD R2,AR2

LOAD

i+1i i+2 i+3 i+4

LOADLOAD

MULT MULT MULT

ADD ADD ADD

Transfertmémoire .U.T.

UnitéAccumulateur

UnitéMultiplieur

III-38

Codage 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

LOAD

i+1i i+2 i+3 i+4

LOADLOAD

MULT MULT MULT

ADD ADD ADD

Transfertmémoire .U.T.

UnitéAccumulateur

UnitéMultiplieur

III-39

Format des instructions

• Format encodé: largeur minimale (16 à 32 bits)– Restrictions:

nombre d'opérations disponibles modes d'adressageopérandes sources et destination

– Utilisation de bits de mode

÷ Compromis øMinimiser la largeur des instructions

òDiminuer la consommation

et la surface mémoire & busò

Abaisser les coûts

Maximiser le parallélisme

òAugmenter l'efficacité

du processeur

Jeu d'instructionshétérogène

III-40

Structures de contrôle

• Boucle matérielle– Optimiser le traitement des boucles de petite taille

Initialisation des paramètres de la boucle en 1 instruction Pas d'instructions supplémentaires pour la gestion de la fin de la boucle

– Exemple boucle mono-instruction

– Exemple boucle multi-instruction

MOVE #16,BLOOP MAC (R0)+,(R4)+,A

DEC BJNE LOOP

RPT #16MAC (R0)+,(R4)+,A

Bouclelogicielle

Bouclematérielle

C5x

DO #16,End... Loop bodyEnd

SPLK #16RPTB End-1... Loop bodyEnd

DSP 56000 C5x

Page 61: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-41

Structures de contrôle

• Instructions de branchement– Branchement multi-cycles : ajout de NOP entre BR et 1ère instruction– Branchement retardé : déplacement de l'instruction de branchement BR

• Instructions à prédicat– Instructions conditionnelles du type :

• Instructions de mode– Définir un mode de fonctionnement spécifique

exemple : contrôle d'un registre à décalage, d'une unité de saturation, ...

INF R1,R5,10[R1] ADD R3,R2,3[!R1] ADD R3,R2,3

If Then Else

III-42

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

• Gestion des boucles • RPTC: repeat instruction• BRCR: repeat bloc

• Interruptions : • IMR: masque interruptions• IFR: flags interruptions

• BMAR: bloc move• GREG: mémoire globale

III-43

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. Exemples de processeurs4. Outils de développement

III-44

Périphériques

• Périphériques intégrésports sériesports parallèlestimersDMAgénérateur de wait statehost portPLL

• Connexion aisée aux CAN et CNA– les CAN/CNA ne sont généralement pas intégrés dans les DSP afin de pouvoir

choisir un CAN/CNA en adéquation avec l'application

Page 62: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-45

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. Exemples de processeurs4. Outils de développement III-46

DSP conventionnels

• 16-24 bits en virgule fixe, accumulation 40-60 bits• 32 bits en virgule flottante• 16 à 32 bits d'instructions• Une instruction par cycle, jeu d'instructions

complexe• Architecture non orthogonale, fortement contrainte• Mémoire à accès multiples "on-chip"• Unités dédiées de gestion des adresses• Matériel dédié pour la gestion des boucles

Des milliards de produits intègrent ces DSP

III-47

Panorama des DSP

• Texas Instrument– C2000 : virgule fixe 16 bits : contrôle moteur– C5000 : virgule fixe 16 bits : faible consommation

OMAP : C55x + µP ARM

– C6000 : virgule fixe 16 bits (C67 flottant) : hautes performances

• Analog Device– ADSP21xx : virgule fixe 16 bits – SHARC : virgule flottante 32 bits

• Motorola– DSP560xx, DSP563xx : virgule fixe 24 bits : audionumérique– DSP566xx, DSP568xx : virgule fixe 16 bits – StareCore : virgule fixe 16 bits, hautes performances

III-48

Exemple : TMS320C54xDB PBCBDB CB DB CB EBDB � 1 multiplieur 16*16 bits

� Op source 1 : registre T� Op source 2 : mémoire � Op destination :

� 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

Page 63: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-49

C5000 instruction MAC

Syntax Execution Example

MAC[R] Smem, src (Smem) x (TREG) + (src) --> src MAC *AR5, A

MAC[R] Xmem, Ymem, src [,dst] (Xmem) x (Ymem) + (src) --> src or [,dst] (Xmem) --> TREG

MACR *AR5+, *AR6+, A, B

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] (Smem) --> TREG

MAC *AR5+, #1234h, A

Description 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: Single data-memory operand Xmem, Ymem: Dual data-memory operands src, dst: A (accumulator A), B (accumulator B) lk: 16-bit long-immediate value

III-50

C5000 instruction FIRS

Syntax Execution Example

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

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.

III-51

C5000 instruction LMS

Syntax Execution Example

LMS Xmem, Ymem

(A) + (Xmem) << 16 + 2^15 --> A (B) + (Xmem) x (Ymem) --> B

LMS *AR3+. *AR4+

Description 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.

III-52

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. Exemples de processeurs4. Outils de développement

Page 64: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-53

Cycle de développement (1)

Besoin

Spécificationstechnologiques

Spécificationsopératoires

Spécificationsfonctionnelles

Contraintes temps réel,

Consommation d'énergie,Flexibilité

Coût

Spécification

Implantation

ImplantationLogicielle

ImplantationMatérielle

Partitionnement

Performances

Conception fonctionnelle

Définition de l'algorithme Simulation

Description de l'algorithme

Spécificationsfonctionnelles

Vecteurs de test

Génération manuelle ou automatique

III-54

Cycle de développement (2)

Conversion en virgule fixe

Vecteurs de test

Code C virgule flottante

Modélisation de haut niveau

Code C virgule fixe

#def ine pi 3.1416#def ine pi 3.1416

main(){

f loat x,h,zfor(i=1;i<n;i++)

{

*z= *y++ + *h++}

for(i=1;i<n;i++){

*z= *y++ + *h++

}

Correlator.C

#def ine pi 3.1416#def ine pi 3.1416

main(){

f loat x,h,zfor(i=1;i<n;i++)

{

*z= *y++ + *h++}

for(i=1;i<n;i++){

*z= *y++ + *h++

}

Correlator.C

#def ine pi 3.1416#def ine pi 3.1416

main(){

f loat x,h,zfor(i=1;i<n;i++)

{

*z= *y++ + *h++}

for(i=1;i<n;i++){

*z= *y++ + *h++

}

Correlator.C

Génération manuelle ou automatique Génération manuelle

#def ine pi 3.1416#def ine pi 3.1416

main(){

f loat x,h,zfor(i=1;i<n;i++)

{

*z= *y++ + *h++}

for(i=1;i<n;i++){

*z= *y++ + *h++

}

Correlator.C

#def ine pi 3.1416#def ine pi 3.1416

main(){

f loat x,h,zfor(i=1;i<n;i++)

{

*z= *y++ + *h++}

for(i=1;i<n;i++){

*z= *y++ + *h++

}

Correlator.C

#def ine pi 3.1416#def ine pi 3.1416

main(){

f loat x,h,zfor(i=1;i<n;i++)

{

*z= *y++ + *h++}

for(i=1;i<n;i++){

*z= *y++ + *h++

}

Correlator.C

Génération de code(compilateur - linker)

Test & Debug(Simulateur -

Emulateur HW)

Bruit blanc gauss ien

Chirp (0 ® Fe/2)

( ) 4.2)(max =nyn

( ) 3.9)(max =nyn

Bruit blanc uniforme

( ) 4.3)(max =nyn

AnalysePerformances

III-55

Cycle de développement (3)

• Conception fonctionnelle– Spécifications du flot de données du TS,– Simulation, validation– Prototypage rapide

Matlab/Simulink (Mathworks), SPW (CoWare), Cossap (Synopsys), Ptolemy(Université de berkley)

• Développement du code– Implantation matérielle : code VHDL– Implantation logicielle : code C

III-56

Cycle de développement (4)

• Implantation matérielle – Synthèse du circuit – Simulation VHDL et validation– Analyse des performances– Test

• Implantation logicielle – Génération de code (compilateur C/ass, linker)– Test & Debug : validation du code – Analyse : mesure des performances

Page 65: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-57

Cycle de développement (5)

• Mise au point du logiciel - Debugging– Simulateur au niveau instruction

Mise au point avant que le matériel soit disponible

– Emulation du HardwareOn-chip debugging/emulation : IEEE 1179.1 JTAG standard

– Carte de développementVérification temps réel de l'algorithmeSystème avec des faibles volumes de production

III-58

Développement logiciel

[Bier97]

Assembler

C Compiler

Linker

Simulator

DSP Development Board

Hardware Emulator

Final Product

Debugger

BinaryExecutable

Object CodeLibraries

Object Code

AssemblyLibraries

AssemblyCode

C/C++Libraries

C/C++Code

III-59

Code Composer Studio

. Choix de la cible

. Configuration de l'OS DSP/BIOS

. Librairies : - DSPLib- TMS320 DSP Algorithm Standard

. IDE

. Générateur de code . Compilateur C . Compilateur assembleur . Linker

. Gestionnaire de projet

Code & Build

Application design

III-60

Analyse

Debug

. Visualisation de signaux

. Profiler (mesure du temps d'exécution du code)

. Analyse temps réel (visualisation des tâches du DSP/BIOS)

Simulateur Émulateur HW

Exécution pas à pas Analyse de variables Déclenchement sur événements

Code Composer Studio

Page 66: Traitement Numérique du Signalpeople.rennes.inria.fr/Olivier.Sentieys/teach/SlidesTNS.pdf · Supports de cours magistraux ... Synthèse de filtre IIR Synthèse de filtre FIR

III-61

Inefficacité des compilateurs C

• Analyse du surcoût associé au compilateur C : DSPStone

– Meilleurs performances pour les DSP plus généraux et les DSP virgule flottante / architecture homogène

0

200

400

600

800

1000

1200

Sur c

oût (

%)

ADSP21xx/ADI

DSP56002/Motorola

TMS320C51/TI

TMS320C54/TI

TMS320C62/TI

Processeurs

Sur coût temps d'execution

ANSI C

C modifié

-100

-50

0

50

100

150

200

250

300

350

400

Sur c

oût (%

)ADSP21xx/

ADIDSP56002/

MotorolaTMS320C51/

TITMS320C54/

TITMS320C62/

TIProcesseurs

Sur coût taille du code

ANSI C

C modifié

[Ropers99]

III-62

Les raisons de l'inefficacité

• Inadéquation du langage C pour décrire des applications TNS– Absence de support pour l'arithmétique virgule fixe

Extensions du langage C Langage orienté signal

• Inefficacité des techniques classiques de développement des compilateurs (développement du DSP puis du compilateur)

• Inefficacité des techniques classiques de compilation qui ont été développées pour les architectures homogènes

– Les architectures des DSP conventionnels sont hétérogènes

• Absence de support pour les spécificités des DSP– Registres d'état, modes d'adressage (modulo, bit inversé)...

III-63

Développement en C ou en assembleur

• Développement en assembleur : – Le code est optimisé– Le code n'est pas portable - demande du savoir faire

• Développement en C :– Plus abordable rapidement– Beaucoup moins performant et pas aussi simple ...– Conseils :

ne pas déclarer ses variables en float (chaque opération fera appel à des routines de la bibliothèque de calcul en flottant)

déclarer les variables en int et les recadrages sont gérés par des décalages :• 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